86 lines
2.0 KiB
C#
86 lines
2.0 KiB
C#
namespace TPSBR
|
|
{
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using Fusion.Addons.InterestManagement;
|
|
|
|
public class AgentInterestProvider : MonoBehaviour, IInterestProvider
|
|
{
|
|
public int SortOrder;
|
|
public EInterestMode InterestMode;
|
|
public List<InterestShape> Shapes = new List<InterestShape>();
|
|
|
|
public Transform Transform { get { if (ReferenceEquals(_transform, null) == true) { _transform = transform; } return transform; } }
|
|
|
|
int IInterestProvider.Version => _version;
|
|
int IInterestProvider.SortOrder => SortOrder;
|
|
EInterestMode IInterestProvider.InterestMode => InterestMode;
|
|
|
|
private Transform _transform;
|
|
private int _version;
|
|
|
|
public void Release()
|
|
{
|
|
++_version;
|
|
}
|
|
|
|
public bool RegisterProvider(IInterestProvider interestProvider, float duration = 0)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public bool UnregisterProvider(IInterestProvider interestProvider, bool recursive)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public void GetProviders(InterestProviderSet interestProviders, bool recursive)
|
|
{
|
|
}
|
|
|
|
public bool IsPlayerInterested(PlayerInterestView playerView)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
public void GetProvidersForPlayer(PlayerInterestView playerView, InterestProviderSet interestProviders, bool recursive)
|
|
{
|
|
}
|
|
|
|
public void GetCellsForPlayer(PlayerInterestView playerView, HashSet<int> cells)
|
|
{
|
|
if (InterestMode == EInterestMode.Override)
|
|
{
|
|
cells.Clear();
|
|
}
|
|
|
|
for (int i = 0, count = Shapes.Count; i < count; ++i)
|
|
{
|
|
InterestShape shape = Shapes[i];
|
|
if (shape != null)
|
|
{
|
|
shape.GetCells(playerView, cells, InterestMode);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void DrawGizmosForPlayer(PlayerInterestView playerView)
|
|
{
|
|
for (int i = 0, count = Shapes.Count; i < count; ++i)
|
|
{
|
|
InterestShape shape = Shapes[i];
|
|
if (shape != null)
|
|
{
|
|
shape.DrawGizmo(playerView);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
Release();
|
|
}
|
|
}
|
|
}
|