简单重构拆分 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
@@ -2,7 +2,6 @@ using System;
using System.Collections.Generic;
using Unity.Collections;
using Unity.Jobs;
using Unity.Mathematics;
using UnityEngine;
namespace SepCore.Simulation
@@ -17,23 +16,14 @@ namespace SepCore.Simulation
private readonly CollisionPipelineRuntimeState _collisionPipelineRuntime = new();
private readonly TargetSelectionRuntimeState _targetSelectionRuntime = new();
private List<EnemySimData> _enemies => _simulationState.Enemies;
private List<ProjectileSimData> _projectiles => _simulationState.Projectiles;
private List<PickupSimData> _pickups => _simulationState.Pickups;
private EnemyStore _enemies => _simulationState.Enemies;
private ProjectileStore _projectiles => _simulationState.Projectiles;
private PickupStore _pickups => _simulationState.Pickups;
private List<int> _projectileRecycleEntityIds => _simulationState.ProjectileRecycleEntityIds;
private HashSet<int> _projectileResolvedEntityIds => _collisionPipelineRuntime.ProjectileResolvedEntityIds;
private EntityBinding EnemyBinding => _simulationState.EnemyBinding;
private EntityBinding ProjectileBinding => _simulationState.ProjectileBinding;
private EntityBinding PickupBinding => _simulationState.PickupBinding;
private ref NativeList<EnemyJobInputData> _enemyJobInputs => ref _jobDataRuntime.EnemyJobInputs;
private ref NativeList<EnemyJobOutputData> _enemyJobOutputs => ref _jobDataRuntime.EnemyJobOutputs;
private ref NativeList<EnemyJobOutputData> _enemyJobSeparationOutputs => ref _jobDataRuntime.EnemyJobSeparationOutputs;
private ref NativeList<float2> _enemySeparationPreviousPushes => ref _jobDataRuntime.EnemySeparationPreviousPushes;
private ref NativeList<float2> _enemySeparationCurrentPushes => ref _jobDataRuntime.EnemySeparationCurrentPushes;
private ref NativeList<ProjectileJobInputData> _projectileJobInputs => ref _jobDataRuntime.ProjectileJobInputs;
private ref NativeList<ProjectileJobOutputData> _projectileJobOutputs => ref _jobDataRuntime.ProjectileJobOutputs;
private ref NativeList<EnemyTransformSim> _enemySeparationTransforms => ref _jobDataRuntime.EnemySeparationTransforms;
private ref NativeList<int> _collectedPickups => ref _jobDataRuntime.CollectedPickups;
private ref NativeList<CollisionCandidateData> _collisionCandidates => ref _jobDataRuntime.CollisionCandidates;
private ref NativeParallelMultiHashMap<long, int> _enemySeparationBuckets => ref _jobDataRuntime.EnemySeparationBuckets;
private ref NativeParallelMultiHashMap<long, int> _enemyCollisionBuckets => ref _jobDataRuntime.EnemyCollisionBuckets;
@@ -101,24 +91,16 @@ namespace SepCore.Simulation
private sealed class SimulationStateStore
{
public readonly List<EnemySimData> Enemies = new();
public readonly List<ProjectileSimData> Projectiles = new();
public readonly List<PickupSimData> Pickups = new();
public readonly EnemyStore Enemies = new();
public readonly ProjectileStore Projectiles = new();
public readonly PickupStore Pickups = new();
public readonly List<int> ProjectileRecycleEntityIds = new();
public readonly EntityBinding EnemyBinding = new();
public readonly EntityBinding ProjectileBinding = new();
public readonly EntityBinding PickupBinding = new();
}
private sealed class JobDataRuntimeState
{
public NativeList<EnemyJobInputData> EnemyJobInputs;
public NativeList<EnemyJobOutputData> EnemyJobOutputs;
public NativeList<EnemyJobOutputData> EnemyJobSeparationOutputs;
public NativeList<float2> EnemySeparationPreviousPushes;
public NativeList<float2> EnemySeparationCurrentPushes;
public NativeList<ProjectileJobInputData> ProjectileJobInputs;
public NativeList<ProjectileJobOutputData> ProjectileJobOutputs;
public NativeList<EnemyTransformSim> EnemySeparationTransforms;
public NativeList<int> CollectedPickups;
public NativeList<CollisionCandidateData> CollisionCandidates;
public NativeParallelMultiHashMap<long, int> EnemySeparationBuckets;
public NativeParallelMultiHashMap<long, int> EnemyCollisionBuckets;