From b3ea26779ab65a8492f3d2ce6411c40b9cbf8638 Mon Sep 17 00:00:00 2001 From: viktorljung Date: Thu, 10 Mar 2016 16:29:13 +0100 Subject: [PATCH 1/2] Added Unpickable component, which skips the entity in the PickingPass --- include/Engine/Rendering/ModelJob.h | 8 +++++++- resources/Schema/Components.xsd | 1 + resources/Schema/Components/Unpickable.xml | 3 +++ resources/Schema/Components/Unpickable.xsd | 11 +++++++++++ resources/Schema/Types/Entity.xsd | 1 + src/Engine/Rendering/PickingPass.cpp | 5 +++++ 6 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 resources/Schema/Components/Unpickable.xml create mode 100644 resources/Schema/Components/Unpickable.xsd diff --git a/include/Engine/Rendering/ModelJob.h b/include/Engine/Rendering/ModelJob.h index dc4c8cb5..085db98e 100644 --- a/include/Engine/Rendering/ModelJob.h +++ b/include/Engine/Rendering/ModelJob.h @@ -121,12 +121,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); @@ -164,6 +169,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 bc6da932..7210ad3f 100644 --- a/resources/Schema/Components.xsd +++ b/resources/Schema/Components.xsd @@ -68,4 +68,5 @@ + \ 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/Types/Entity.xsd b/resources/Schema/Types/Entity.xsd index c0ac15aa..91592163 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; From 78c7d777e339cb50640e3ce74f7d340483571842 Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Sun, 13 Mar 2016 22:09:12 +0100 Subject: [PATCH 2/2] Made player models in class select unpickable --- resources/Schema/Entities/OverwatchCamera.xml | 100 ++++++++++-------- 1 file changed, 53 insertions(+), 47 deletions(-) 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 - - + +