From 83e327545c2eedb9f961f50b5e7980373e8cbc45 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 25 Jun 2014 16:28:27 -0430 Subject: [PATCH] Added enabling/disabling the collision detection system. --- .../nxtar/states/AutomaticActionState.java | 4 +++- .../ciens/ccg/nxtar/states/InGameState.java | 2 ++ .../systems/CollisionDetectionSystem.java | 21 +++++++++++++++++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/ve/ucv/ciens/ccg/nxtar/states/AutomaticActionState.java b/src/ve/ucv/ciens/ccg/nxtar/states/AutomaticActionState.java index cdfea66..d08fa1b 100644 --- a/src/ve/ucv/ciens/ccg/nxtar/states/AutomaticActionState.java +++ b/src/ve/ucv/ciens/ccg/nxtar/states/AutomaticActionState.java @@ -20,13 +20,14 @@ import ve.ucv.ciens.ccg.networkdata.MotorEvent.motor_t; import ve.ucv.ciens.ccg.nxtar.NxtARCore; import ve.ucv.ciens.ccg.nxtar.NxtARCore.game_states_t; import ve.ucv.ciens.ccg.nxtar.game.AutomaticActionPerformerBase; -import ve.ucv.ciens.ccg.nxtar.game.GameGlobals; import ve.ucv.ciens.ccg.nxtar.game.AutomaticActionPerformerBase.automatic_action_t; +import ve.ucv.ciens.ccg.nxtar.game.GameGlobals; import ve.ucv.ciens.ccg.nxtar.graphics.CustomPerspectiveCamera; import ve.ucv.ciens.ccg.nxtar.interfaces.ImageProcessor.MarkerData; import ve.ucv.ciens.ccg.nxtar.network.SensorReportThread; import ve.ucv.ciens.ccg.nxtar.network.monitors.MotorEventQueue; import ve.ucv.ciens.ccg.nxtar.network.monitors.VideoFrameMonitor; +import ve.ucv.ciens.ccg.nxtar.systems.CollisionDetectionSystem; import ve.ucv.ciens.ccg.nxtar.systems.MarkerPositioningSystem; import ve.ucv.ciens.ccg.nxtar.systems.MarkerRenderingSystem; import ve.ucv.ciens.ccg.nxtar.utils.ProjectConstants; @@ -389,6 +390,7 @@ public class AutomaticActionState extends BaseState{ @Override public void onStateSet(){ + gameWorld.getSystem(CollisionDetectionSystem.class).disableCollisions(); stateActive = true; Gdx.input.setInputProcessor(this); Gdx.input.setCatchBackKey(true); diff --git a/src/ve/ucv/ciens/ccg/nxtar/states/InGameState.java b/src/ve/ucv/ciens/ccg/nxtar/states/InGameState.java index e131b06..0f807fc 100644 --- a/src/ve/ucv/ciens/ccg/nxtar/states/InGameState.java +++ b/src/ve/ucv/ciens/ccg/nxtar/states/InGameState.java @@ -28,6 +28,7 @@ import ve.ucv.ciens.ccg.nxtar.input.UserInput; import ve.ucv.ciens.ccg.nxtar.interfaces.ImageProcessor.MarkerData; import ve.ucv.ciens.ccg.nxtar.network.monitors.MotorEventQueue; import ve.ucv.ciens.ccg.nxtar.network.monitors.VideoFrameMonitor; +import ve.ucv.ciens.ccg.nxtar.systems.CollisionDetectionSystem; import ve.ucv.ciens.ccg.nxtar.systems.FadeEffectRenderingSystem; import ve.ucv.ciens.ccg.nxtar.systems.MarkerPositioningSystem; import ve.ucv.ciens.ccg.nxtar.systems.MarkerRenderingSystem; @@ -493,6 +494,7 @@ public class InGameState extends BaseState{ @Override public void onStateSet(){ + gameWorld.getSystem(CollisionDetectionSystem.class).enableCollisions(); stateActive = true; Gdx.input.setInputProcessor(this); Gdx.input.setCatchBackKey(true); diff --git a/src/ve/ucv/ciens/ccg/nxtar/systems/CollisionDetectionSystem.java b/src/ve/ucv/ciens/ccg/nxtar/systems/CollisionDetectionSystem.java index d1b24b2..600a061 100644 --- a/src/ve/ucv/ciens/ccg/nxtar/systems/CollisionDetectionSystem.java +++ b/src/ve/ucv/ciens/ccg/nxtar/systems/CollisionDetectionSystem.java @@ -40,12 +40,14 @@ public class CollisionDetectionSystem extends EntityProcessingSystem { private GroupManager groupManager; private BoundingBox colBB; private BoundingBox targetBB; + private boolean collisionsEnabled; @SuppressWarnings("unchecked") public CollisionDetectionSystem(){ super(Aspect.getAspectForAll(CollisionModelComponent.class, CollisionDetectionComponent.class).exclude(MarkerCodeComponent.class)); - colBB = new BoundingBox(); - targetBB = new BoundingBox(); + colBB = new BoundingBox(); + targetBB = new BoundingBox(); + collisionsEnabled = true; } @Override @@ -57,6 +59,9 @@ public class CollisionDetectionSystem extends EntityProcessingSystem { CollisionDetectionComponent onCollisionTarget; ImmutableBag collidables; + if(!collisionsEnabled) + return; + // Get this entity's known necessary components. collision = collisionModelMapper.get(e); onCollision = collisionDetectionMapper.get(e); @@ -101,4 +106,16 @@ public class CollisionDetectionSystem extends EntityProcessingSystem { } } } + + public boolean isCollisionDetectionEnabled(){ + return collisionsEnabled; + } + + public void enableCollisions(){ + this.collisionsEnabled = true; + } + + public void disableCollisions(){ + this.collisionsEnabled = false; + } }