Files
vampire-like/Assets/GameMain/Scripts/Runtime/CustomComponent/Simulation/ISimulationWorld.cs
T

36 lines
1.4 KiB
C#

using UnityEngine;
namespace SepCore.Simulation
{
public interface ISimulationWorld
{
SimulationStats Stats { get; }
void Tick(in SimulationTickContext context);
void ClearSimulationState();
bool TryGetNearestEnemyEntityId(Vector3 origin, float maxSqrRange, out int enemyEntityId);
bool TryRequestAreaCollision(int sourceEntityId, int sourceOwnerEntityId, in Vector3 center, float radius,
int maxTargets = 16);
bool TryRequestSectorCollision(int sourceEntityId, int sourceOwnerEntityId, in Vector3 center, float radius,
in Vector3 direction, float halfAngleDeg, int maxTargets = 16);
bool TryRequestRectangleCollision(int sourceEntityId, int sourceOwnerEntityId, in Vector3 center,
float halfWidth, float halfLength, in Vector3 direction, int maxTargets = 16);
void SyncPlayerMovementInput(Transform playerTransform, bool isMoving, in Vector3 direction, float speed);
void UnregisterPlayerMovement(Transform playerTransform);
void SyncEnemyMovementInput(int entityId, bool isMoving, in Vector3 direction, float speed,
bool avoidEnemyOverlap, float enemyBodyRadius, int separationIterations);
void SyncPlayerAbsorbSettings(float absorbRange, float absorbSpeed, float collectDistance);
void TriggerFullMapMagnet();
}
}