Added enabling/disabling the collision detection system.
This commit is contained in:
@@ -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);
|
||||
|
@@ -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);
|
||||
|
@@ -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<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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user