summaryrefslogtreecommitdiff
path: root/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Core/ECS/Components/SimulateMovement.cs
blob: 49d316d8763406208e65e259a55b4f2b1e9d1c08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#if MODULE_ENTITIES
using Unity.Entities;
using Unity.Mathematics;

namespace Pathfinding.ECS {
	using Pathfinding;

	/// <summary>
	/// Tag component to enable movement for an entity.
	/// Without this component, most systems will completely ignore the entity.
	///
	/// There are some more specific components that can be used to selectively enable/disable some jobs:
	/// - <see cref="SimulateMovementRepair"/>
	/// - <see cref="SimulateMovementControl"/>
	/// - <see cref="SimulateMovementFinalize"/>
	///
	/// Removing one of the above components can be useful if you want to override the movement of an agent in some way.
	/// </summary>
	public struct SimulateMovement : IComponentData {
	}

	/// <summary>
	/// Tag component to allow the agent to repair its path and recalculate various statistics.
	///
	/// Allows the <see cref="JobRepairPath"/> to run.
	/// </summary>
	public struct SimulateMovementRepair : IComponentData {
	}

	/// <summary>
	/// Tag component to allow the agent to calculate how it wants to move.
	///
	/// Allows the <see cref="ControlJob"/> to run.
	/// </summary>
	public struct SimulateMovementControl : IComponentData {
	}

	/// <summary>
	/// Tag component to allow the agent to move according to its desired movement parameters.
	///
	/// Allows <see cref="AIMoveSystem"/> to run the <see cref="JobApplyGravity"/>, <see cref="JobAlignAgentWithMovementDirection"/> and <see cref="JobMoveAgent"/> jobs.
	/// </summary>
	public struct SimulateMovementFinalize : IComponentData {
	}
}
#endif