简单重构拆分 SimulationWorld
This commit is contained in:
+10
-28
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user