Description:
Loads more porting.
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r166:383cf2eccdad -

@@ -0,0 +1,42
1
2 using Encompass;
3
4 using isometricparkfna.Messages;
5 using isometricparkfna.Components;
6
7 namespace isometricparkfna.Engines {
8
9 [Receives(typeof(ZoomCameraMessage), typeof(MoveCameraMessage))]
10 class CameraBridgeEngine : Engine
11 {
12 private Camera Camera;
13
14 public CameraBridgeEngine(Camera camera)
15 {
16 this.Camera = camera;
17 }
18
19
20 public override void Update(double dt)
21 {
22 foreach (ref readonly var message in ReadMessages<ZoomCameraMessage>())
23 {
24 if (message.ZoomIn)
25 {
26 this.Camera.ZoomIn();
27 }
28 else
29 {
30 this.Camera.ZoomOut();
31 }
32 }
33
34 foreach (ref readonly var message in ReadMessages<MoveCameraMessage>())
35 {
36 this.Camera.Move(message.Movement);
37
38 }
39
40 }
41 }
42 }
@@ -0,0 +1,13
1
2
3 using Encompass;
4
5 namespace isometricparkfna.Messages {
6
7
8 public struct GameRateMessage : IMessage//, IHasEntity
9 {
10 public bool paused;
11 public int rate;
12 }
13 }
@@ -0,0 +1,10
1
2 using Microsoft.Xna.Framework;
3 using Encompass;
4
5 namespace isometricparkfna.Messages {
6 public struct MoveCameraMessage : IMessage//, IHasEntity
7 {
8 public Vector2 Movement;
9 }
10 }
@@ -0,0 +1,7
1
2 using Encompass;
3
4 namespace isometricparkfna.Messages {
5
6 public struct TogglePauseMessage : IMessage { }
7 }
@@ -0,0 +1,8
1 using Encompass;
2
3 namespace isometricparkfna.Messages {
4 public struct ZoomCameraMessage : IMessage//, IHasEntity
5 {
6 public bool ZoomIn;
7 }
8 }
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
@@ -1,4 +1,6
1
1
2 using System;
3 using Microsoft.Xna.Framework;
2 using Microsoft.Xna.Framework.Input;
4 using Microsoft.Xna.Framework.Input;
3
5
4 using Encompass;
6 using Encompass;
@@ -9,20 +11,104
9
11
10
12
11
13
12 [Sends(typeof(ToggleWindowMessage), typeof(ToggleVisibilityMessage))]
14 [Sends( typeof(ZoomCameraMessage),
15 typeof(MoveCameraMessage),
16 typeof(ToggleWindowMessage),
17 typeof(ToggleVisibilityMessage),
18 typeof(TogglePauseMessage),
19 typeof(GameRateMessage))]
13 public class InputEngine : Engine
20 public class InputEngine : Engine
14 {
21 {
15 private KeyboardState keyboardPrev;
22 private KeyboardState keyboardPrev;
16
23
17 public InputEngine() {
24 //Area to ignore:
25 private int menuBarHeight;
26
27 public InputEngine(int menuBarHeight) {
18 //initialize to blank for now
28 //initialize to blank for now
19 this.keyboardPrev = new KeyboardState();
29 this.keyboardPrev = new KeyboardState();
30 menuBarHeight = menuBarHeight;
20 }
31 }
21
32
22 public override void Update(double dt) {
33 public override void Update(double dt) {
23
34
24 var keyboardCur = Keyboard.GetState();
35 var keyboardCur = Keyboard.GetState();
36 var mouseCur = Mouse.GetState();
25
37
38 #region camera_movement_keys
39 if (keyboardCur.IsKeyDown(Keys.Down))
40 {
41 SendMessage(new MoveCameraMessage{ Movement = new Vector2(0, 2)});
42 }
43 else if (keyboardCur.IsKeyDown(Keys.Up))
44 {
45 SendMessage(new MoveCameraMessage{ Movement = new Vector2(0, -2)});
46
47 }
48 else if (keyboardCur.IsKeyDown(Keys.Left))
49 {
50 SendMessage(new MoveCameraMessage{ Movement = new Vector2(-2, 0)});
51
52 }
53 else if (keyboardCur.IsKeyDown(Keys.Right))
54 {
55 SendMessage(new MoveCameraMessage {Movement = new Vector2(2, 0)});
56
57 }
58 else if (keyboardCur.IsKeyDown(Keys.Subtract) && keyboardPrev.IsKeyUp(Keys.Subtract))
59 {
60 SendMessage(new ZoomCameraMessage {ZoomIn = false});
61 }
62 else if (keyboardCur.IsKeyDown(Keys.Add) && keyboardPrev.IsKeyUp(Keys.Add))
63 {
64 SendMessage(new ZoomCameraMessage {ZoomIn = true});
65 }
66 #endregion camera_movement_keys
67 #region gamerate_keys
68 if (keyboardCur.IsKeyDown(Keys.P) && keyboardPrev.IsKeyUp(Keys.P) )
69 {
70
71 SendMessage(new TogglePauseMessage());
72
73 }
74 if (keyboardCur.IsKeyDown(Keys.D0) && keyboardPrev.IsKeyUp(Keys.D0) )
75 {
76 SendMessage(new TogglePauseMessage());
77
78 }
79 if (keyboardCur.IsKeyDown(Keys.D1) && keyboardPrev.IsKeyUp(Keys.D1) )
80 {
81 SendMessage(new GameRateMessage {
82 paused = false,
83 rate = 0});
84 }
85 if (keyboardCur.IsKeyDown(Keys.D2) && keyboardPrev.IsKeyUp(Keys.D2) )
86 {
87 SendMessage(new GameRateMessage {
88 paused = false,
89 rate = 1});
90 }
91 if (keyboardCur.IsKeyDown(Keys.D3) && keyboardPrev.IsKeyUp(Keys.D3) )
92 {
93 SendMessage(new GameRateMessage {
94 paused = false,
95 rate = 2});
96 }
97 if (keyboardCur.IsKeyDown(Keys.D4) && keyboardPrev.IsKeyUp(Keys.D4) )
98 {
99 SendMessage(new GameRateMessage {
100 paused = false,
101 rate = 3});
102 }
103 #if DEBUG
104 if (keyboardCur.IsKeyDown(Keys.D5) && keyboardPrev.IsKeyUp(Keys.D5) )
105 {
106 SendMessage(new GameRateMessage {
107 paused = false,
108 rate = 4});
109 }
110 #endif
111 #endregion gamerate_keys
26 #region misc_keys
112 #region misc_keys
27 if (keyboardCur.IsKeyDown(Keys.OemBackslash) && keyboardPrev.IsKeyUp(Keys.OemBackslash))
113 if (keyboardCur.IsKeyDown(Keys.OemBackslash) && keyboardPrev.IsKeyUp(Keys.OemBackslash))
28 {
114 {
@@ -56,6 +142,21
56
142
57 }
143 }
58 #endif
144 #endif
145
146 if (keyboardCur.IsKeyDown(Keys.Q) && keyboardPrev.IsKeyUp(Keys.Q))
147 {
148 System.Console.WriteLine("Quitting");
149 Environment.Exit(0);
150 }
151 if (keyboardCur.IsKeyDown(Keys.C) && keyboardPrev.IsKeyUp(Keys.C))
152 {
153 // this.camera.Jump(Vector2.Zero);
154
155 }
156 if (keyboardCur.IsKeyDown(Keys.OemBackslash) && keyboardPrev.IsKeyUp(Keys.OemBackslash) && keyboardCur.IsKeyDown(Keys.LeftShift))
157 {
158 // sound.Play(volume, pitch, pan);
159 }
59 #endregion misc_keys
160 #endregion misc_keys
60
161
61 this.keyboardPrev = keyboardCur;
162 this.keyboardPrev = keyboardCur;
@@ -8,7 +8,7
8
8
9 namespace isometricparkfna.Engines {
9 namespace isometricparkfna.Engines {
10
10
11 // [Receives()]
11 [Receives(typeof(GameRateMessage), typeof(TogglePauseMessage))]
12 [Reads(typeof(BudgetComponent))]
12 [Reads(typeof(BudgetComponent))]
13 [Writes(typeof(BudgetComponent))]
13 [Writes(typeof(BudgetComponent))]
14 class SimulationBridgeEngine : Engine
14 class SimulationBridgeEngine : Engine
@@ -31,6 +31,17
31 priorBudget = this.simulation.previousBudget});
31 priorBudget = this.simulation.previousBudget});
32 }
32 }
33
33
34 foreach (ref readonly var message in ReadMessages<GameRateMessage>())
35 {
36 this.simulation.paused = message.paused;
37 this.simulation.setRate(message.rate);
38 }
39
40 foreach (ref readonly var message in ReadMessages<TogglePauseMessage>())
41 {
42 this.simulation.paused = !this.simulation.paused;
43 }
44
34 }
45 }
35
46
36 }
47 }
@@ -54,7 +54,7
54 int squaresDown = 50;
54 int squaresDown = 50;
55 // int baseOffsetX = -14;
55 // int baseOffsetX = -14;
56 // int baseOffsetY = -14;
56 // int baseOffsetY = -14;
57
57
58 Simulation simulation;
58 Simulation simulation;
59
59
60 Vector2 mouseGrid;
60 Vector2 mouseGrid;
@@ -196,9 +196,10
196
196
197
197
198 // WorldBuilder.AddGeneralRenderer(new BudgetWindowRenderer(this.batch, this.monoFont));
198 // WorldBuilder.AddGeneralRenderer(new BudgetWindowRenderer(this.batch, this.monoFont));
199 WorldBuilder.AddEngine(new InputEngine());
199 WorldBuilder.AddEngine(new InputEngine(Menu.MENU_BAR_HEIGHT));
200 WorldBuilder.AddEngine(new GameBridgeEngine(this));
200 WorldBuilder.AddEngine(new GameBridgeEngine(this));
201 WorldBuilder.AddEngine(new SimulationBridgeEngine(this.simulation));
201 WorldBuilder.AddEngine(new SimulationBridgeEngine(this.simulation));
202 WorldBuilder.AddEngine(new CameraBridgeEngine(this.camera));
202
203
203 // var budgetWindow = WorldBuilder.CreateEntity();
204 // var budgetWindow = WorldBuilder.CreateEntity();
204 // WorldBuilder.SetComponent(budgetWindow, new VisibilityComponent{visible = true});
205 // WorldBuilder.SetComponent(budgetWindow, new VisibilityComponent{visible = true});
@@ -353,43 +354,8
353 KeyboardState keyboardCur = Keyboard.GetState();
354 KeyboardState keyboardCur = Keyboard.GetState();
354
355
355 #region input
356 #region input
356 #region camera_movement_keys
357 //
357 if (keyboardCur.IsKeyDown(Keys.Down))
358 {
359 this.camera.Move(new Vector2(0, 2));
360 }
361 else if (keyboardCur.IsKeyDown(Keys.Up))
362 {
363 this.camera.Move(new Vector2(0, -2));
364
365 }
366 else if (keyboardCur.IsKeyDown(Keys.Left))
367 {
368 this.camera.Move(new Vector2(-2, 0));
369
370 }
371 else if (keyboardCur.IsKeyDown(Keys.Right))
372 {
373 this.camera.Move(new Vector2(2, 0));
374
375 }
376 else if (keyboardCur.IsKeyDown(Keys.Subtract) && keyboardPrev.IsKeyUp(Keys.Subtract))
377 {
378 this.camera.ZoomOut();
379 }
380 else if (keyboardCur.IsKeyDown(Keys.Add) && keyboardPrev.IsKeyUp(Keys.Add))
381 {
382
383 this.camera.ZoomIn();
384 }
385 #endregion camera_movement_keys
386
387 #region misc_keys
358 #region misc_keys
388 if (keyboardCur.IsKeyDown(Keys.Q) && keyboardPrev.IsKeyUp(Keys.Q))
389 {
390 System.Console.WriteLine("Quitting");
391 Environment.Exit(0);
392 }
393 if (keyboardCur.IsKeyDown(Keys.C) && keyboardPrev.IsKeyUp(Keys.C))
359 if (keyboardCur.IsKeyDown(Keys.C) && keyboardPrev.IsKeyUp(Keys.C))
394 {
360 {
395 this.camera.Jump(Vector2.Zero);
361 this.camera.Jump(Vector2.Zero);
@@ -400,53 +366,12
400 sound.Play(volume, pitch, pan);
366 sound.Play(volume, pitch, pan);
401 }
367 }
402 #endregion misc_keys
368 #endregion misc_keys
403
369 //
404
405 #region gamerate_keys
406 if (keyboardCur.IsKeyDown(Keys.P) && keyboardPrev.IsKeyUp(Keys.P) )
407 {
408 this.simulation.paused = !this.simulation.paused;
409
410 }
411 if (keyboardCur.IsKeyDown(Keys.D0) && keyboardPrev.IsKeyUp(Keys.D0) )
412 {
413 this.simulation.paused = !this.simulation.paused;
414
415 }
416 if (keyboardCur.IsKeyDown(Keys.D1) && keyboardPrev.IsKeyUp(Keys.D1) )
417 {
418 this.simulation.paused = false;
419 this.simulation.setRate(0);
420 }
421 if (keyboardCur.IsKeyDown(Keys.D2) && keyboardPrev.IsKeyUp(Keys.D2) )
422 {
423 this.simulation.paused = false;
424 this.simulation.setRate(1);
425 }
426 if (keyboardCur.IsKeyDown(Keys.D3) && keyboardPrev.IsKeyUp(Keys.D3) )
427 {
428 this.simulation.paused = false;
429 this.simulation.setRate(2);
430 }
431 if (keyboardCur.IsKeyDown(Keys.D4) && keyboardPrev.IsKeyUp(Keys.D4) )
432 {
433 this.simulation.paused = false;
434 this.simulation.setRate(3);
435 }
436 #if DEBUG
437 if (keyboardCur.IsKeyDown(Keys.D5) && keyboardPrev.IsKeyUp(Keys.D5) )
438 {
439 this.simulation.paused = false;
440 this.simulation.setRate(4);
441 }
442 #endif
443 #endregion gamerate_keys
444
445
446 MouseState mouseCur = Mouse.GetState();
370 MouseState mouseCur = Mouse.GetState();
447 this.original_point = Vector2.Transform(new Vector2(mouseCur.X, mouseCur.Y), Matrix.Invert(camera.get_transformation(GraphicsDevice)));
371 this.original_point = Vector2.Transform(new Vector2(mouseCur.X, mouseCur.Y), Matrix.Invert(camera.get_transformation(GraphicsDevice)));
448
372
449 int menuBarHeight = 20;
373 var menuBarHeight = Menu.MENU_BAR_HEIGHT;
374
450
375
451 if (MathUtils.Between(mouseCur.X, 0, 50))
376 if (MathUtils.Between(mouseCur.X, 0, 50))
452 {
377 {
@@ -8,6 +8,8
8 public static class Menu
8 public static class Menu
9 {
9 {
10
10
11 public const int MENU_BAR_HEIGHT = 20;
12
11 private static bool activeButton(string label, bool active, Num.Vector4 activeColor) {
13 private static bool activeButton(string label, bool active, Num.Vector4 activeColor) {
12
14
13 if (active) {
15 if (active) {
You need to be logged in to leave comments. Login now