简单重构拆分 SimulationWorld
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user