diff --git a/resources/Schema/Components.xsd b/resources/Schema/Components.xsd
index 004a11a7..bb629094 100644
--- a/resources/Schema/Components.xsd
+++ b/resources/Schema/Components.xsd
@@ -59,4 +59,5 @@
+
\ No newline at end of file
diff --git a/resources/Schema/Components/InputCmdButton.xml b/resources/Schema/Components/InputCmdButton.xml
new file mode 100644
index 00000000..58c3ba2c
--- /dev/null
+++ b/resources/Schema/Components/InputCmdButton.xml
@@ -0,0 +1,5 @@
+
+
+
+ 0.0
+
\ No newline at end of file
diff --git a/resources/Schema/Components/InputCmdButton.xsd b/resources/Schema/Components/InputCmdButton.xsd
new file mode 100644
index 00000000..f4dd8d3f
--- /dev/null
+++ b/resources/Schema/Components/InputCmdButton.xsd
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+ Used with a Button component, the button will send an inputCommand event instead of ButtonPressed/Released event.
+
+
+
+ The command name for the inputCommand.
+
+
+ The value in inputCommand.Value that will be sent on button press.
+
+
+
+
+
\ No newline at end of file
diff --git a/resources/Schema/Entities/NewMapWSpectatorCam.xml b/resources/Schema/Entities/NewMapWSpectatorCam.xml
index 79cdc2be..395eb1de 100644
--- a/resources/Schema/Entities/NewMapWSpectatorCam.xml
+++ b/resources/Schema/Entities/NewMapWSpectatorCam.xml
@@ -23,6 +23,16 @@
+
+
+
+
+ Models/Props/Highground3.mesh
+
+
+
+
+
@@ -77,16 +87,6 @@
-
-
-
-
- Models/Props/Highground3.mesh
-
-
-
-
-
@@ -3082,6 +3082,148 @@
+
+
+
+
+
+
+
+
+
+ Models/Props/PickUps/PickUpHolder.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/PickUps/PickUpHolder.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/PickUps/PickUpHolder.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/PickUps/PickUpHolder.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/PickUps/PickUpHolder.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/PickUps/PickUpHolder.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/PickUps/PickUpHolder.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/PickUps/PickUpHolder.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/PickUps/PickUpHolder.mesh
+
+
+
+
+
+
+
+
+
+
+
@@ -3263,57 +3405,16 @@
- Models/Props/Stones/BigStone.mesh
+ Models/Props/Stones/SmallStone1.mesh
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/MediumStone1.mesh
-
-
-
-
+
+
-
-
-
-
- Models/Props/Stones/MediumStone1.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/SmallStone2.mesh
-
-
-
-
-
-
-
-
-
@@ -3342,6 +3443,47 @@
+
+
+
+
+ Models/Props/Stones/SmallStone1.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone1.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
+
+
+
+
@@ -3357,12 +3499,11 @@
- Models/Props/Stones/SmallStone1.mesh
+ Models/Props/Stones/BigStone.mesh
-
-
-
+
+
@@ -3384,11 +3525,12 @@
- Models/Props/Stones/BigStone.mesh
+ Models/Props/Stones/SmallStone1.mesh
-
-
+
+
+
@@ -3400,8 +3542,8 @@
Models/Props/Stones/BigStone.mesh
-
-
+
+
@@ -3428,104 +3570,8 @@
Models/Props/Stones/BigStone.mesh
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/MediumStone2.mesh
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalRed.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/BigStone.mesh
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/SmallStone2.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/MediumStone2.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/MediumStone1.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/MediumStone2.mesh
-
-
-
-
-
+
+
@@ -3544,6 +3590,34 @@
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalRed.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone1.mesh
+
+
+
+
+
+
+
+
+
@@ -3551,8 +3625,8 @@
Models/Props/Stones/BigStone.mesh
-
-
+
+
@@ -3578,13 +3652,252 @@
Models/Props/Stones/SmallStone2.mesh
-
-
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone1.mesh
+
+
+
+
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone1.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone1.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Walls/MediumWall1.mesh
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone2.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone2.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone2.mesh
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/SmallStone1.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone2.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/SmallStone1.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone2.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/SmallStone2.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
+
+
+
+
@@ -3603,11 +3916,12 @@
- Models/Props/Stones/BigStone.mesh
+ Models/Props/Stones/MediumStone1.mesh
-
-
+
+
+
@@ -3619,8 +3933,103 @@
Models/Props/Stones/SmallStone2.mesh
-
-
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone2.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone2.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/MediumStone2.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/SmallStone2.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
@@ -3639,19 +4048,6 @@
-
-
-
-
- Models/Props/Stones/BigStone.mesh
-
-
-
-
-
-
-
-
@@ -3666,19 +4062,6 @@
-
-
-
-
- Models/Props/Stones/BigStone.mesh
-
-
-
-
-
-
-
-
@@ -3693,47 +4076,6 @@
-
-
-
-
- Models/Props/Stones/BigStone.mesh
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/BigStone.mesh
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/BigStone.mesh
-
-
-
-
-
-
-
-
-
-
-
@@ -3747,20 +4089,6 @@
-
-
-
-
- Models/Props/Stones/MediumStone1.mesh
-
-
-
-
-
-
-
-
-
@@ -3775,46 +4103,6 @@
-
-
-
-
- Models/Props/Stones/BigStone.mesh
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/MediumStone1.mesh
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/MediumStone1.mesh
-
-
-
-
-
-
-
-
-
-
@@ -3827,32 +4115,6 @@
-
-
-
-
- Models/Props/Stones/BigStone.mesh
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/BigStone.mesh
-
-
-
-
-
-
-
-
@@ -3880,6 +4142,19 @@
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
+
+
+
+
@@ -3893,6 +4168,19 @@
+
+
+
+
+ Models/Props/Stones/BigStone.mesh
+
+
+
+
+
+
+
+
@@ -3909,19 +4197,6 @@
-
-
-
-
- Models/Props/Stones/BigStone.mesh
-
-
-
-
-
-
-
-
@@ -3934,19 +4209,6 @@
-
-
-
-
- Models/Props/Stones/MediumStone2.mesh
-
-
-
-
-
-
-
-
@@ -3961,18 +4223,6 @@
-
-
-
-
- Models/Props/Walls/MediumWall1.mesh
-
-
-
-
-
-
-
@@ -3987,19 +4237,6 @@
-
-
-
-
- Models/Props/Stones/MediumStone2.mesh
-
-
-
-
-
-
-
-
@@ -4012,20 +4249,6 @@
-
-
-
-
- Models/Props/Stones/SmallStone1.mesh
-
-
-
-
-
-
-
-
-
@@ -4039,20 +4262,6 @@
-
-
-
-
- Models/Props/Stones/SmallStone1.mesh
-
-
-
-
-
-
-
-
-
@@ -4102,12 +4311,11 @@
- Models/Props/Stones/SmallStone2.mesh
+ Models/Props/Stones/SmallStone1.mesh
-
-
-
+
+
@@ -4116,11 +4324,12 @@
- Models/Props/Stones/SmallStone1.mesh
+ Models/Props/Stones/SmallStone2.mesh
-
-
+
+
+
@@ -4143,19 +4352,6 @@
-
-
-
-
- Models/Props/Stones/SmallStone1.mesh
-
-
-
-
-
-
-
-
@@ -4170,47 +4366,6 @@
-
-
-
-
- Models/Props/Stones/MediumStone2.mesh
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/MediumStone2.mesh
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/SmallStone1.mesh
-
-
-
-
-
-
-
-
-
-
-
@@ -4225,19 +4380,6 @@
-
-
-
-
- Models/Props/Stones/MediumStone2.mesh
-
-
-
-
-
-
-
-
@@ -4254,153 +4396,24 @@
-
-
-
-
-
-
-
-
-
- Models/Props/PickUps/PickUpHolder.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/PickUps/PickUpHolder.mesh
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/PickUps/PickUpHolder.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/PickUps/PickUpHolder.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/PickUps/PickUpHolder.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/PickUps/PickUpHolder.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/PickUps/PickUpHolder.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/PickUps/PickUpHolder.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/PickUps/PickUpHolder.mesh
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ Models/Props/SciFiHolder1.mesh
+
+
+
+
+
+
+
+
@@ -4479,19 +4492,6 @@
-
-
-
-
- Models/Props/SciFiHolder1.mesh
-
-
-
-
-
-
-
-
@@ -4512,74 +4512,6 @@
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalBlue.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalBlue.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalRed.mesh
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalBlue.mesh
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalRed.mesh
-
-
-
-
-
-
-
-
-
@@ -4601,91 +4533,8 @@
Models/Props/Stones/ShinyStoneCrystalBlue.mesh
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalRed.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalRed.mesh
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalRed.mesh
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalBlue.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalBlue.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
- Models/Props/Stones/ShinyStoneCrystalRed.mesh
-
-
-
-
-
+
+
@@ -4711,8 +4560,36 @@
Models/Props/Stones/ShinyStoneCrystalRed.mesh
-
-
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalBlue.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalBlue.mesh
+
+
+
+
@@ -4732,6 +4609,129 @@
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalRed.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalBlue.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalRed.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalRed.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalBlue.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalRed.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalBlue.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalRed.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/Stones/ShinyStoneCrystalRed.mesh
+
+
+
+
+
+
+
+
+
@@ -4750,19 +4750,102 @@
-
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
- Schema/Entities/PlayerRed.xml
+ Schema/Entities/Player.xml
-
+
-
+
@@ -4774,7 +4857,7 @@
false
-
+
@@ -4787,7 +4870,7 @@
false
-
+
@@ -4800,7 +4883,7 @@
false
-
+
@@ -4813,166 +4896,7 @@
false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0.10000000149011612
-
-
-
- Models/Props/PickUps/AmmoPickUp.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0.10000000149011612
-
-
-
- Models/Props/PickUps/HealthPickUp.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0.10000000149011612
-
-
-
- Models/Props/PickUps/AmmoPickUp.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0.10000000149011612
-
-
-
- Models/Props/PickUps/HealthPickUp.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0.10000000149011612
-
-
-
- Models/Props/PickUps/HealthPickUp.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0.10000000149011612
-
-
-
- Models/Props/PickUps/HealthPickUp.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0.10000000149011612
-
-
-
- Models/Props/PickUps/AmmoPickUp.mesh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0.10000000149011612
-
-
-
- Models/Props/PickUps/AmmoPickUp.mesh
-
-
-
-
-
+
@@ -4988,10 +4912,42 @@
- Models/Props/CapturePoint/CapturePointBlue.mesh
+ Models/Props/CapturePoint/CapturePointNeutral.mesh
-
+
+
+
+
+
+
+
+ 2
+
+
+
+ Models/Core/UnitCylinder.mesh
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Models/Props/CapturePoint/CapturePointRed.mesh
+
+
+
@@ -4999,24 +4955,23 @@
-
+
- 4
Models/Core/UnitCylinder.mesh
-
+
true
-
+
-
-
+
+
@@ -5055,38 +5010,6 @@
-
-
-
-
- Models/Props/CapturePoint/CapturePointNeutral.mesh
-
-
-
-
-
-
-
-
-
- 2
-
-
-
- Models/Core/UnitCylinder.mesh
-
- true
-
-
-
-
-
-
-
-
-
-
-
@@ -5124,10 +5047,10 @@
- Models/Props/CapturePoint/CapturePointRed.mesh
+ Models/Props/CapturePoint/CapturePointBlue.mesh
-
+
@@ -5135,23 +5058,24 @@
-
+
+ 4
Models/Core/UnitCylinder.mesh
-
+
true
-
+
-
-
+
+
@@ -5160,102 +5084,19 @@
-
-
-
-
-
-
-
-
- 10
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
- 10
-
-
-
-
-
-
-
-
-
- 10
-
-
-
-
-
-
-
-
-
-
-
-
- 10
-
-
-
-
-
-
-
-
-
-
- 10
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
+
- Schema/Entities/Player.xml
+ Schema/Entities/PlayerRed.xml
-
+
-
+
@@ -5267,7 +5108,7 @@
false
-
+
@@ -5280,7 +5121,7 @@
false
-
+
@@ -5293,7 +5134,7 @@
false
-
+
@@ -5306,7 +5147,166 @@
false
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.10000000149011612
+
+
+
+ Models/Props/PickUps/HealthPickUp.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.10000000149011612
+
+
+
+ Models/Props/PickUps/AmmoPickUp.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.10000000149011612
+
+
+
+ Models/Props/PickUps/AmmoPickUp.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.10000000149011612
+
+
+
+ Models/Props/PickUps/AmmoPickUp.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.10000000149011612
+
+
+
+ Models/Props/PickUps/HealthPickUp.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.10000000149011612
+
+
+
+ Models/Props/PickUps/HealthPickUp.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.10000000149011612
+
+
+
+ Models/Props/PickUps/HealthPickUp.mesh
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.10000000149011612
+
+
+
+ Models/Props/PickUps/AmmoPickUp.mesh
+
+
+
+
+
@@ -5332,65 +5332,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Textures/Core/UnitRaptor.png
-
-
-
-
-
-
-
-
-
-
-
-
-
- Textures/Core/UnitHexagon.png
-
-
-
-
-
-
-
-
-
-
-
-
-
- Textures/Test/aM4ME4GR.png
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -5601,6 +5542,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Textures/Core/UnitHexagon.png
+
+
+
+ PickClass
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+ Textures/Core/UnitRaptor.png
+
+
+
+ PickClass
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ Textures/Test/aM4ME4GR.png
+
+
+
+ PickClass
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/Schema/Entities/OverwatchCamera.xml b/resources/Schema/Entities/OverwatchCamera.xml
index 323a62f2..a2b774d3 100644
--- a/resources/Schema/Entities/OverwatchCamera.xml
+++ b/resources/Schema/Entities/OverwatchCamera.xml
@@ -20,65 +20,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Textures/Core/UnitRaptor.png
-
-
-
-
-
-
-
-
-
-
-
-
-
- Textures/Core/UnitHexagon.png
-
-
-
-
-
-
-
-
-
-
-
-
-
- Textures/Test/aM4ME4GR.png
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -274,7 +215,7 @@
- 5
+ 16
Fonts/DroidSans.ttf,64
@@ -289,6 +230,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Textures/Core/UnitHexagon.png
+
+
+
+ PickClass
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+ Textures/Core/UnitRaptor.png
+
+
+
+ PickClass
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+ Textures/Test/aM4ME4GR.png
+
+
+
+ PickClass
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/resources/Schema/Types/Entity.xsd b/resources/Schema/Types/Entity.xsd
index 1d8ea8f3..21e517c0 100644
--- a/resources/Schema/Types/Entity.xsd
+++ b/resources/Schema/Types/Entity.xsd
@@ -62,6 +62,7 @@
+
diff --git a/src/Engine/GUI/ButtonSystem.cpp b/src/Engine/GUI/ButtonSystem.cpp
index 93ae1811..cc9f2b47 100644
--- a/src/Engine/GUI/ButtonSystem.cpp
+++ b/src/Engine/GUI/ButtonSystem.cpp
@@ -1,4 +1,5 @@
#include "GUI/ButtonSystem.h"
+#include "Input/EInputCommand.h"
ButtonSystem::ButtonSystem(SystemParams params, IRenderer* renderer)
: System(params)
@@ -37,10 +38,19 @@ bool ButtonSystem::OnMousePress(const Events::MousePress& e)
m_PickEntity = EntityWrapper(m_World, m_PickData.Entity);
//You have clicked on a button entity, send pressed event.
- Events::ButtonPressed ePressed;
- ePressed.Entity = m_PickEntity;
- ePressed.EntityName = m_PickEntity.Name();
- m_EventBroker->Publish(ePressed);
+ if (m_World->HasComponent(m_PickData.Entity, "InputCmdButton")) {
+ Events::InputCommand eInputCmd;
+ eInputCmd.PlayerID = LocalPlayer.ID;
+ eInputCmd.Player = LocalPlayer;
+ EntityWrapper button = EntityWrapper(m_World, m_PickData.Entity);
+ eInputCmd.Command = (std::string)button["InputCmdButton"]["Command"];
+ eInputCmd.Value = (float)button["InputCmdButton"]["PressValue"];
+ } else {
+ Events::ButtonPressed ePressed;
+ ePressed.Entity = m_PickEntity;
+ ePressed.EntityName = m_PickEntity.Name();
+ m_EventBroker->Publish(ePressed);
+ }
}
}
}
@@ -55,10 +65,19 @@ bool ButtonSystem::OnMouseRelease(const Events::MouseRelease& e)
if(m_PickData.Entity != EntityID_Invalid && m_PickData.World == m_World) {
EntityWrapper ent = EntityWrapper(m_World, m_PickData.Entity);
- Events::ButtonReleased eReleased;
- eReleased.EntityName = m_PickEntity.Name();
- eReleased.Entity = m_PickEntity;
- m_EventBroker->Publish(eReleased);
+ if (m_World->HasComponent(m_PickData.Entity, "InputCmdButton")) {
+ Events::InputCommand eInputCmd;
+ eInputCmd.PlayerID = LocalPlayer.ID;
+ eInputCmd.Player = LocalPlayer;
+ EntityWrapper button = EntityWrapper(m_World, m_PickData.Entity);
+ eInputCmd.Command = (std::string)button["InputCmdButton"]["Command"];
+ eInputCmd.Value = 0;
+ } else {
+ Events::ButtonReleased eReleased;
+ eReleased.EntityName = m_PickEntity.Name();
+ eReleased.Entity = m_PickEntity;
+ m_EventBroker->Publish(eReleased);
+ }
if(m_World->HasComponent(m_PickData.Entity, "Button")) {
if (ent == m_PickEntity) {