Description:
Add spawner.
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
@@ -0,0 +1,10 | |||
|
1 | ||
|
2 | using Encompass; | |
|
3 | ||
|
4 | namespace isometricparkfna.Components | |
|
5 | { | |
|
6 | public struct NameComponent : IComponent | |
|
7 | { | |
|
8 | public string DisplayName; | |
|
9 | } | |
|
10 | } No newline at end of file |
@@ -0,0 +1,22 | |||
|
1 | ||
|
2 | using Encompass; | |
|
3 | ||
|
4 | using isometricparkfna.Messages; | |
|
5 | using isometricparkfna.Components; | |
|
6 | ||
|
7 | namespace isometricparkfna.Spawners { | |
|
8 | ||
|
9 | [Receives(typeof(SpawnContractMessage))] | |
|
10 | class ContractSpawner : Spawner<SpawnContractMessage> | |
|
11 | { | |
|
12 | ||
|
13 | protected override void Spawn(in SpawnContractMessage message) | |
|
14 | { | |
|
15 | var contract = CreateEntity(); | |
|
16 | // AddComponent | |
|
17 | AddComponent(contract, new AreaComponent{squares = message.squares}); | |
|
18 | AddComponent(contract, new NameComponent{DisplayName = message.name}); | |
|
19 | ||
|
20 | } | |
|
21 | } | |
|
22 | } No newline at end of file |
@@ -0,0 +1,11 | |||
|
1 | ||
|
2 | using Microsoft.Xna.Framework; | |
|
3 | using Encompass; | |
|
4 | ||
|
5 | namespace isometricparkfna.Messages { | |
|
6 | public struct SpawnContractMessage : IMessage | |
|
7 | { | |
|
8 | public Vector2[] squares; | |
|
9 | public string name; | |
|
10 | } | |
|
11 | } No newline at end of file |
@@ -20,6 +20,8 | |||
|
20 | 20 | using isometricparkfna.Engines; |
|
21 | 21 | using isometricparkfna.Components; |
|
22 | 22 | using isometricparkfna.Renderers; |
|
23 | using isometricparkfna.Messages; | |
|
24 | using isometricparkfna.Spawners; | |
|
23 | 25 | |
|
24 | 26 | using ImGuiNET.SampleProgram.XNA; |
|
25 | 27 | using ImGuiNET; |
@@ -196,13 +198,16 | |||
|
196 | 198 | WorldBuilder.AddEngine(new CameraBridgeEngine(this.camera)); |
|
197 | 199 | this.imGuiWindowBridgeEngine = new ImGuiWindowBridgeEngine(); |
|
198 | 200 | WorldBuilder.AddEngine(this.imGuiWindowBridgeEngine); |
|
201 | WorldBuilder.AddEngine(new ContractSpawner()); | |
|
199 | 202 | |
|
200 | 203 | // var budgetWindow = WorldBuilder.CreateEntity(); |
|
201 | 204 | // WorldBuilder.SetComponent(budgetWindow, new VisibilityComponent{visible = true}); |
|
202 | 205 | // WorldBuilder.SetComponent(budgetWindow, new BudgetComponent()); |
|
203 | 206 | |
|
204 | 207 | var area = WorldBuilder.CreateEntity(); |
|
205 | WorldBuilder.SetComponent(area, new AreaComponent{squares = new[] {new Vector2(4,4), new Vector2(5,4)}}); | |
|
208 | // WorldBuilder.SetComponent(area, new AreaComponent{squares = new[] {new Vector2(4,4), new Vector2(5,4)}}); | |
|
209 | WorldBuilder.SendMessage(new SpawnContractMessage{squares = new[] {new Vector2(4,4), new Vector2(5,4)}, | |
|
210 | name = "Contract"}); | |
|
206 | 211 | |
|
207 | 212 | World = WorldBuilder.Build(); |
|
208 | 213 |
@@ -46,6 +46,7 | |||
|
46 | 46 | <Compile Include="Engines\*.cs" /> |
|
47 | 47 | <Compile Include="Messages\*.cs" /> |
|
48 | 48 | <Compile Include="Renderers\*.cs" /> |
|
49 | <Compile Include="Engines\Spawners\*.cs" /> | |
|
49 | 50 | <Compile Include="Utils\MathUtils.cs" /> |
|
50 | 51 | <Compile Include="Utils\Extensions.cs" /> |
|
51 | 52 | <Compile Include="Utils\Extensions.cs" /> |
You need to be logged in to leave comments.
Login now