简单重构拆分 SimulationWorld

This commit is contained in:
2026-09-18 17:43:41 +08:00
parent 1e4d3ef8d7
commit 92e1ea0d55
109 changed files with 2605 additions and 1817 deletions
@@ -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();
}
}