Added enabling/disabling the collision detection system.

This commit is contained in:
2014-06-25 16:28:27 -04:30
parent 77aec83dbb
commit 83e327545c
3 changed files with 24 additions and 3 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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();
collisionsEnabled = true;
}
@Override
@@ -57,6 +59,9 @@ public class CollisionDetectionSystem extends EntityProcessingSystem {
CollisionDetectionComponent onCollisionTarget;
ImmutableBag<Entity> 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;
}
}