diff options
Diffstat (limited to 'src/RobotRace.java')
-rw-r--r-- | src/RobotRace.java | 39 |
1 files changed, 35 insertions, 4 deletions
diff --git a/src/RobotRace.java b/src/RobotRace.java index cc48694..ee1fc86 100644 --- a/src/RobotRace.java +++ b/src/RobotRace.java @@ -142,6 +142,11 @@ public class RobotRace extends Base { private final Random random = new Random(); /** + * Whether textures are enabled for surfaces. + */ + boolean enableTextures; + + /** * Constructs this robot race by initializing robots, camera, track, and * terrain. */ @@ -194,6 +199,9 @@ public class RobotRace extends Base { // Initialize global OpenGL context. BetterBase.setGL(gl); + // enable textures if supported + toggleTextures(); + // Enable blending. gl.glEnable(GL_BLEND); gl.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); @@ -530,19 +538,23 @@ public class RobotRace extends Base { } public Texture getTorsoTexture() { - return this.torso; + assert torso != null; + return torso; } public Texture getHeadTexture() { - return this.head; + assert head != null; + return head; } public Texture getBrickTexture() { - return this.brick; + assert brick != null; + return brick; } public Texture getTrackTexture() { - return this.track; + assert track != null; + return track; } /** @@ -583,10 +595,29 @@ public class RobotRace extends Base { case KeyEvent.VK_I: /* print Info */ System.err.println("GlobalState: " + robotRace.gs); return true; + case KeyEvent.VK_T: /* toggle Textures */ + boolean state = robotRace.toggleTextures(); + System.err.println("Textures are " + + (state ? "enabled" : "disabled")); + return true; default: return false; } } }); } + + /** + * Disable textures if enabled, enable textures iff disabled AND supported. + * @return The new enabled state. + */ + boolean toggleTextures() { + if (track == null || brick == null || head == null || torso == null) { + System.err.println("Some textures are missing"); + enableTextures = false; + } else { + enableTextures = !enableTextures; + } + return enableTextures; + } } |