diff --git a/include/Engine/Rendering/ModelJob.h b/include/Engine/Rendering/ModelJob.h
index 0bb3d1c8..4821a222 100644
--- a/include/Engine/Rendering/ModelJob.h
+++ b/include/Engine/Rendering/ModelJob.h
@@ -104,12 +104,17 @@ struct ModelJob : RenderJob
FillPercentage = fillPercentage;
IsShielded = isShielded;
+
+ if (world->HasComponent(Entity, "Unpickable")) {
+ NotPickable = true;
+ }
+
if (model->IsSkinned()) {
Skeleton = Model->m_RawModel->m_Skeleton;
if (Skeleton != nullptr) {
-
EntityWrapper entityWrapper = EntityWrapper(world, modelComponent.EntityID);
+
if(Skeleton->BlendTrees.find(entityWrapper) != Skeleton->BlendTrees.end()) {
BlendTree = Skeleton->BlendTrees.at(entityWrapper);
@@ -147,6 +152,7 @@ struct ModelJob : RenderJob
float FillPercentage = 0.0;
bool IsShielded;
bool Shadow;
+ bool NotPickable = false;
void CalculateHash() override
{
diff --git a/resources/Schema/Components.xsd b/resources/Schema/Components.xsd
index 282a17b3..5bd82ee2 100644
--- a/resources/Schema/Components.xsd
+++ b/resources/Schema/Components.xsd
@@ -68,6 +68,7 @@
+
\ No newline at end of file
diff --git a/resources/Schema/Components/Unpickable.xml b/resources/Schema/Components/Unpickable.xml
new file mode 100644
index 00000000..07fe9a90
--- /dev/null
+++ b/resources/Schema/Components/Unpickable.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/resources/Schema/Components/Unpickable.xsd b/resources/Schema/Components/Unpickable.xsd
new file mode 100644
index 00000000..114886a8
--- /dev/null
+++ b/resources/Schema/Components/Unpickable.xsd
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+ Makes the entity unpickable
+
+
+
\ No newline at end of file
diff --git a/resources/Schema/Entities/OverwatchCamera.xml b/resources/Schema/Entities/OverwatchCamera.xml
index 6694121e..e65f6604 100644
--- a/resources/Schema/Entities/OverwatchCamera.xml
+++ b/resources/Schema/Entities/OverwatchCamera.xml
@@ -8,7 +8,7 @@
-
+
@@ -69,6 +69,21 @@
+
+
+
+ Models/Core/UnitQuad.mesh
+
+ Textures/HUD/ButtonCorner_16.png
+ false
+
+
+
+
+
+
+
+
@@ -85,21 +100,6 @@
-
-
-
- Models/Core/UnitQuad.mesh
-
- Textures/HUD/ButtonCorner_16.png
- false
-
-
-
-
-
-
-
-
@@ -140,6 +140,7 @@
Blend
+
1.6000000238418579
Models/Characters/Assault/AssaultBluePose.mesh
@@ -156,7 +157,7 @@
AssaultPoseF
-
+
true
@@ -172,7 +173,7 @@
Models/Weapons/Blue/AssaultWeaponBlue.mesh
-
+
@@ -538,6 +539,7 @@
Blend
+
1.6000000238418579
Models/Characters/Defender/DefenderBluePose.mesh
@@ -554,7 +556,7 @@
DefenderPoseF
-
+
true
@@ -570,8 +572,8 @@
Models/Weapons/Blue/DefenderWeaponBlue.mesh
-
-
+
+
@@ -827,6 +829,21 @@
+
+
+
+ Models/Core/UnitQuad.mesh
+
+ Textures/HUD/ButtonCorner_16.png
+ false
+
+
+
+
+
+
+
+
@@ -859,21 +876,6 @@
-
-
-
- Models/Core/UnitQuad.mesh
-
- Textures/HUD/ButtonCorner_16.png
- false
-
-
-
-
-
-
-
-
@@ -898,6 +900,7 @@
Blend
+
1.6000000238418579
Models/Characters/Sniper/SniperBluePose.mesh
@@ -914,7 +917,7 @@
SniperPoseF
-
+
true
@@ -930,8 +933,8 @@
Models/Weapons/Blue/SecondaryWeaponBlue.mesh
-
-
+
+
@@ -2042,6 +2045,7 @@
Blend
+
1.6000000238418579
Models/Characters/Assault/AssaultRedPose.mesh
@@ -2058,7 +2062,7 @@
AssaultPoseF
-
+
true
@@ -2074,7 +2078,7 @@
Models/Weapons/Red/AssaultWeaponRed.mesh
-
+
@@ -2440,6 +2444,7 @@
Blend
+
1.6000000238418579
Models/Characters/Defender/DefenderRedPose.mesh
@@ -2456,7 +2461,7 @@
DefenderPoseF
-
+
true
@@ -2472,8 +2477,8 @@
Models/Weapons/Red/DefenderWeaponRed.mesh
-
-
+
+
@@ -2800,6 +2805,7 @@
Blend
+
1.6000000238418579
Models/Characters/Sniper/SniperRedPose.mesh
@@ -2816,7 +2822,7 @@
SniperPoseF
-
+
true
@@ -2832,8 +2838,8 @@
Models/Weapons/Red/SecondaryWeaponRed.mesh
-
-
+
+
diff --git a/resources/Schema/Types/Entity.xsd b/resources/Schema/Types/Entity.xsd
index 34f08afd..b32b193b 100644
--- a/resources/Schema/Types/Entity.xsd
+++ b/resources/Schema/Types/Entity.xsd
@@ -71,6 +71,7 @@
+
diff --git a/src/Engine/Rendering/PickingPass.cpp b/src/Engine/Rendering/PickingPass.cpp
index 820c184e..f6343101 100644
--- a/src/Engine/Rendering/PickingPass.cpp
+++ b/src/Engine/Rendering/PickingPass.cpp
@@ -76,6 +76,11 @@ void PickingPass::Draw(RenderScene& scene)
auto modelJob = std::dynamic_pointer_cast(job);
if (modelJob) {
+ if(modelJob->NotPickable) {
+ continue;
+ }
+
+
int pickColor[2] = { m_ColorCounter[0], m_ColorCounter[1] };
PickingInfo pickInfo;