From a798cce715d371a1591a669c0d1b301dc9ca1265 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 4 Jun 2014 16:29:31 -0430 Subject: [PATCH] Added rendering of the inclination bomb. --- .../nxtar/entities/BombGameEntityCreator.java | 82 +++++++++++-------- .../systems/ObjectPositioningSystem.java | 44 ++++++++++ 2 files changed, 92 insertions(+), 34 deletions(-) create mode 100644 src/ve/ucv/ciens/ccg/nxtar/systems/ObjectPositioningSystem.java diff --git a/src/ve/ucv/ciens/ccg/nxtar/entities/BombGameEntityCreator.java b/src/ve/ucv/ciens/ccg/nxtar/entities/BombGameEntityCreator.java index d8b9d7a..8ae9f8c 100644 --- a/src/ve/ucv/ciens/ccg/nxtar/entities/BombGameEntityCreator.java +++ b/src/ve/ucv/ciens/ccg/nxtar/entities/BombGameEntityCreator.java @@ -71,6 +71,7 @@ public class BombGameEntityCreator extends EntityCreatorBase{ private Model doorFrameModel = null; private Model combinationBombModel = null; private Model inclinationBombModel = null; + private Model inclinationBombButtonModel = null; private Model wiresBombModel = null; private Model wiresBombModelWire1 = null; private Model wiresBombModelWire2 = null; @@ -78,15 +79,16 @@ public class BombGameEntityCreator extends EntityCreatorBase{ private Model easterEggModel = null; // Collision models. - private Model doorCollisionModel = null; - private Model doorFrameCollisionModel = null; - private Model combinationBombCollisionModel = null; - private Model inclinationBombCollisionModel = null; - private Model wiresBombCollisionModel = null; - private Model wiresBombCollisionModelWire1 = null; - private Model wiresBombCollisionModelWire2 = null; - private Model wiresBombCollisionModelWire3 = null; - private Model easterEggCollisionModel = null; + private Model doorCollisionModel = null; + private Model doorFrameCollisionModel = null; + private Model combinationBombCollisionModel = null; + private Model inclinationBombCollisionModel = null; + private Model inclinationBombButtonCollisionModel = null; + private Model wiresBombCollisionModel = null; + private Model wiresBombCollisionModelWire1 = null; + private Model wiresBombCollisionModelWire2 = null; + private Model wiresBombCollisionModelWire3 = null; + private Model easterEggCollisionModel = null; public BombGameEntityCreator(){ G3dModelLoader loader = new G3dModelLoader(new UBJsonReader()); @@ -108,26 +110,28 @@ public class BombGameEntityCreator extends EntityCreatorBase{ parameters.shader = shader; // Load the render models. - doorModel = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/door.g3db")); - doorFrameModel = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/door_frame1.g3db")); - // bombModelCombination = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/")); - // bombModelInclination = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/")); - wiresBombModel = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/bomb_1_body.g3db")); - wiresBombModelWire1 = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/cable_1.g3db")); - wiresBombModelWire2 = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/cable_2.g3db")); - wiresBombModelWire3 = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/cable_3.g3db")); - // easterEggModel = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/")); + doorModel = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/door.g3db")); + doorFrameModel = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/door_frame1.g3db")); + // bombModelCombination = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/")); + inclinationBombModel = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/bomb_2_body.g3db")); + inclinationBombButtonModel = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/big_btn.g3db")); + wiresBombModel = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/bomb_1_body.g3db")); + wiresBombModelWire1 = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/cable_1.g3db")); + wiresBombModelWire2 = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/cable_2.g3db")); + wiresBombModelWire3 = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/cable_3.g3db")); + // easterEggModel = loader.loadModel(Gdx.files.internal("models/render_models/bomb_game/")); // Load the collision models. - doorCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/door_col.g3db")); - doorFrameCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/door_frame1_col.g3db")); - // combinationBombCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/door.g3db")); - // inclinationBombCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/door.g3db")); - wiresBombCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/bomb_1_body_col.g3db")); - wiresBombCollisionModelWire1 = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/cable_1_col.g3db")); - wiresBombCollisionModelWire2 = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/cable_2_col.g3db")); - wiresBombCollisionModelWire3 = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/cable_3_col.g3db")); - // easterEggCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/door.g3db")); + doorCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/door_col.g3db")); + doorFrameCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/door_frame1_col.g3db")); + // combinationBombCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/door.g3db")); + inclinationBombCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/bomb_2_body_col.g3db")); + inclinationBombButtonCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/big_btn_col.g3db")); + wiresBombCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/bomb_1_body_col.g3db")); + wiresBombCollisionModelWire1 = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/cable_1_col.g3db")); + wiresBombCollisionModelWire2 = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/cable_2_col.g3db")); + wiresBombCollisionModelWire3 = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/cable_3_col.g3db")); + // easterEggCollisionModel = loader.loadModel(Gdx.files.internal("models/collision_models/bomb_game/door.g3db")); } @Override @@ -137,10 +141,9 @@ public class BombGameEntityCreator extends EntityCreatorBase{ // Add bombs. // parameters.markerCode = 89; // addBomb(parameters, bomb_type_t.COMBINATION); - // - // parameters.markerCode = 90; - // addBomb(parameters, bomb_type_t.INCLINATION); + parameters.markerCode = 90; + addBomb(parameters, bomb_type_t.INCLINATION); parameters.markerCode = 91; addBomb(parameters, bomb_type_t.WIRES); @@ -150,11 +153,11 @@ public class BombGameEntityCreator extends EntityCreatorBase{ // parameters.markerCode = 89; // addDoor(parameters); - // parameters.markerCode = 90; - // addDoor(parameters); + parameters.markerCode = 90; + addDoor(parameters); parameters.markerCode = 91; addDoor(parameters); - + // TODO: Add easter egg. } @@ -224,7 +227,18 @@ public class BombGameEntityCreator extends EntityCreatorBase{ } private void addBombInclinationButton(EntityParameters parameters, BombComponent bomb){ - // TODO: Add the button. + Entity button; + + button = world.createEntity(); + button.addComponent(new GeometryComponent(new Vector3(), new Matrix3(), new Vector3(1, 1, 1))); + button.addComponent(new EnvironmentComponent(parameters.environment)); + button.addComponent(new ShaderComponent(parameters.shader)); + button.addComponent(new RenderModelComponent(inclinationBombButtonModel)); + button.addComponent(new CollisionModelComponent(inclinationBombButtonCollisionModel)); + button.addComponent(new BombComponent(bomb)); + button.addComponent(new VisibilityComponent()); + button.addComponent(new MarkerCodeComponent(parameters.markerCode)); + button.addToWorld(); } private void addBombWires(EntityParameters parameters, BombComponent bomb){ diff --git a/src/ve/ucv/ciens/ccg/nxtar/systems/ObjectPositioningSystem.java b/src/ve/ucv/ciens/ccg/nxtar/systems/ObjectPositioningSystem.java new file mode 100644 index 0000000..624cbce --- /dev/null +++ b/src/ve/ucv/ciens/ccg/nxtar/systems/ObjectPositioningSystem.java @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2014 Miguel Angel Astor Romero + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ve.ucv.ciens.ccg.nxtar.systems; + +import ve.ucv.ciens.ccg.nxtar.components.GeometryComponent; + +import com.artemis.Aspect; +import com.artemis.ComponentMapper; +import com.artemis.Entity; +import com.artemis.annotations.Mapper; +import com.artemis.systems.EntityProcessingSystem; + +public class ObjectPositioningSystem extends EntityProcessingSystem { + @Mapper ComponentMapper geometryMapper; + + @SuppressWarnings("unchecked") + public ObjectPositioningSystem(){ + super(Aspect.getAspectForAll(GeometryComponent.class)); + } + + public void setUserInput(){ + // TODO: Desing a representation for user input. + // TODO: Store user input for processing. + } + + @Override + protected void process(Entity e) { + GeometryComponent geometry = geometryMapper.get(e); + // TODO: Set the geometry fields based on user input. + } +}