Skip to content

Commit

Permalink
5th
Browse files Browse the repository at this point in the history
  • Loading branch information
NinjaSiren committed Jan 16, 2020
1 parent ec412dd commit f1500e5
Show file tree
Hide file tree
Showing 23 changed files with 211 additions and 176 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* @author JDEsguerra
*
*/
public enum NinjaRabbitState implements State<Entity> {
public enum FiremanState implements State<Entity> {
/**
* The state this {@link Entity} is in when not moving at all.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
*
* @author JDEsguerra
*/
public class CarrotAudioProcessor extends AppPreferences implements AudioProcessor {
public class CheckpointAudioProcessor extends AppPreferences implements AudioProcessor {
private final Sound collected;

public CarrotAudioProcessor(final AssetManager manager) {
public CheckpointAudioProcessor(final AssetManager manager) {
collected = manager.get(Assets.CRUNCH_FX);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,25 @@
import com.badlogic.gdx.audio.Sound;
import com.mygdx.fuegopeligro.AppPreferences;
import com.mygdx.fuegopeligro.Assets;
import com.mygdx.fuegopeligro.ai.fsm.NinjaRabbitState;
import com.mygdx.fuegopeligro.ai.fsm.FiremanState;
import com.mygdx.fuegopeligro.ai.msg.MessageType;
import com.mygdx.fuegopeligro.entity.Entity;
import com.mygdx.fuegopeligro.entity.NinjaRabbit;
import com.mygdx.fuegopeligro.entity.Fireman;

/**
* Handles audios played by actions taken by a {@link NinjaRabbit} entity.
* Handles audios played by actions taken by a {@link Fireman} entity.
*
* @author JDEsguerra
*/
public class NinjaRabbitAudioProcessor extends AppPreferences implements AudioProcessor, Telegraph {
public class FiremanAudioProcessor extends AppPreferences implements AudioProcessor, Telegraph {
private static final int MAX_JUMP_TIMEOUT = 30;

private final AssetManager assets;
private int jumpTimeout;
private long jumpFxId;
private long lostLife;

public NinjaRabbitAudioProcessor(final AssetManager assets) {
public FiremanAudioProcessor(final AssetManager assets) {
this.assets = assets;
MessageManager.getInstance().addListener(this, MessageType.DEAD.code());
}
Expand All @@ -38,7 +38,7 @@ public NinjaRabbitAudioProcessor(final AssetManager assets) {
*/
@Override
public void update(final Entity character) {
if (character.isInState(NinjaRabbitState.JUMP) && character.getBody().getLinearVelocity().y > 0) {
if (character.isInState(FiremanState.JUMP) && character.getBody().getLinearVelocity().y > 0) {
if (jumpTimeout <= 0) {
Sound jumpFx = assets.get(Assets.JUMP_FX);
jumpFx.stop(jumpFxId);
Expand Down
62 changes: 31 additions & 31 deletions core/src/com/mygdx/fuegopeligro/entity/EntityFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,31 +15,31 @@
import com.badlogic.gdx.physics.box2d.World;
import com.mygdx.fuegopeligro.FuegoPeligro;
import com.mygdx.fuegopeligro.audio.AudioProcessor;
import com.mygdx.fuegopeligro.audio.CarrotAudioProcessor;
import com.mygdx.fuegopeligro.audio.CheckpointAudioProcessor;
import com.mygdx.fuegopeligro.audio.FiremanAudioProcessor;
import com.mygdx.fuegopeligro.audio.LevelAudioProcessor;
import com.mygdx.fuegopeligro.audio.NinjaRabbitAudioProcessor;
import com.mygdx.fuegopeligro.graphics.CarrotGraphicsProcessor;
import com.mygdx.fuegopeligro.graphics.CheckpointGraphicsProcessor;
import com.mygdx.fuegopeligro.graphics.FiremanGraphicsProcessor;
import com.mygdx.fuegopeligro.graphics.GraphicsProcessor;
import com.mygdx.fuegopeligro.graphics.LevelGraphicsProcessor;
import com.mygdx.fuegopeligro.graphics.NinjaRabbitGraphicsProcessor;
import com.mygdx.fuegopeligro.input.NinjaRabbitControllerProcessor;
import com.mygdx.fuegopeligro.input.NinjaRabbitInputProcessor;
import com.mygdx.fuegopeligro.map.LevelRenderer;
import com.mygdx.fuegopeligro.graphics.minigames.FourPicsOneWord;
import com.mygdx.fuegopeligro.graphics.minigames.LetterPuzzle;
import com.mygdx.fuegopeligro.graphics.minigames.MultipleChoice;
import com.mygdx.fuegopeligro.graphics.minigames.Wordscapes;
import com.mygdx.fuegopeligro.input.FiremanControllerProcessor;
import com.mygdx.fuegopeligro.input.FiremanInputProcessor;
import com.mygdx.fuegopeligro.map.LevelRenderer;
import com.mygdx.fuegopeligro.physics.BodyEditorLoader;
import com.mygdx.fuegopeligro.physics.BodyProcessor;
import com.mygdx.fuegopeligro.physics.CarrotPhysicsProcessor;
import com.mygdx.fuegopeligro.physics.CheckpointPhysicsProcessor;
import com.mygdx.fuegopeligro.physics.ContactListenerMultiplexer;
import com.mygdx.fuegopeligro.physics.FiremanBodyProcessor;
import com.mygdx.fuegopeligro.physics.FiremanPhysicsProcessor;
import com.mygdx.fuegopeligro.physics.LevelPhysicsProcessor;
import com.mygdx.fuegopeligro.physics.NinjaRabbitBodyProcessor;
import com.mygdx.fuegopeligro.physics.NinjaRabbitPhysicsProcessor;
import com.mygdx.fuegopeligro.physics.PhysicsProcessor;
import com.mygdx.fuegopeligro.player.CurrentPlayerStatus;
import com.mygdx.fuegopeligro.player.FiremanPlayerStatusProcessor;
import com.mygdx.fuegopeligro.player.LevelPlayerStatusProcessor;
import com.mygdx.fuegopeligro.player.NinjaRabbitPlayerStatusProcessor;
import com.mygdx.fuegopeligro.player.PlayerStatusObserver;
import com.mygdx.fuegopeligro.player.PlayerStatusProcessor;

Expand Down Expand Up @@ -71,31 +71,31 @@ public final class EntityFactory {
* @return A ready to use instance of a new {@link Collectible}.
*/
public static Entity createCollectible(final World world, final AssetManager assets) {
PhysicsProcessor physics = new CarrotPhysicsProcessor();
PhysicsProcessor physics = new CheckpointPhysicsProcessor();
CONTACT_LISTENER.add(physics);
world.setContactListener(CONTACT_LISTENER);
GraphicsProcessor graphics = new CarrotGraphicsProcessor(assets);
AudioProcessor audio = new CarrotAudioProcessor(assets);
GraphicsProcessor graphics = new CheckpointGraphicsProcessor(assets);
AudioProcessor audio = new CheckpointAudioProcessor(assets);
return new Collectible(graphics, physics, audio);
}

private static NinjaRabbit ninjaRabbit;
private static Fireman fireman;
public static Entity createNinjaRabbit(final FuegoPeligro game, final World world, final BodyEditorLoader loader, final AssetManager assets,
final CurrentPlayerStatus status, final PlayerStatusObserver... observers) {
PhysicsProcessor physics = new NinjaRabbitPhysicsProcessor();
PhysicsProcessor physics = new FiremanPhysicsProcessor();
CONTACT_LISTENER.add(physics);
world.setContactListener(CONTACT_LISTENER);
GraphicsProcessor graphics = new NinjaRabbitGraphicsProcessor(assets);
BodyProcessor bodyProcessor = new NinjaRabbitBodyProcessor(world, loader);
AudioProcessor audio = new NinjaRabbitAudioProcessor(assets);
PlayerStatusProcessor player = new NinjaRabbitPlayerStatusProcessor(status);
GraphicsProcessor graphics = new FiremanGraphicsProcessor(assets);
BodyProcessor bodyProcessor = new FiremanBodyProcessor(world, loader);
AudioProcessor audio = new FiremanAudioProcessor(assets);
PlayerStatusProcessor player = new FiremanPlayerStatusProcessor(status);
if (observers != null) {
for (PlayerStatusObserver o : observers) {
player.addObserver(o);
}
}
/**
* Creates a new instance of {@link NinjaRabbit}, defining its graphical, audio and physical
* Creates a new instance of {@link Fireman}, defining its graphical, audio and physical
* properties.
*
* @param world
Expand All @@ -113,23 +113,23 @@ public static Entity createNinjaRabbit(final FuegoPeligro game, final World worl
* @param observers
* An array of event receivers. Events will fire when the active player status
* changes (such as losing lives, collecting items, etc.).
* @return A ready to use instance of a new {@link NinjaRabbit}.
* @return A ready to use instance of a new {@link Fireman}.
*/
ninjaRabbit = new NinjaRabbit(player, bodyProcessor, graphics, physics, audio);
fireman = new Fireman(player, bodyProcessor, graphics, physics, audio);

if (Ouya.isRunningOnOuya()) {
Controllers.clearListeners();
Controllers.addListener(new NinjaRabbitControllerProcessor(ninjaRabbit));
Controllers.addListener(new FiremanControllerProcessor(fireman));
} else {
InputMultiplexer inputMultiplexer = new InputMultiplexer();
inputMultiplexer.addProcessor(new NinjaRabbitInputProcessor(ninjaRabbit));
inputMultiplexer.addProcessor(new FourPicsOneWord(assets, game, ninjaRabbit).stage);
inputMultiplexer.addProcessor(new LetterPuzzle(assets, game, ninjaRabbit).stage);
inputMultiplexer.addProcessor(new MultipleChoice(assets, game, ninjaRabbit).stage);
inputMultiplexer.addProcessor(new Wordscapes(assets, game, ninjaRabbit).stage);
inputMultiplexer.addProcessor(new FiremanInputProcessor(fireman));
inputMultiplexer.addProcessor(new FourPicsOneWord(assets, game, fireman).getStage());
inputMultiplexer.addProcessor(new LetterPuzzle(assets, game, fireman).getStage());
inputMultiplexer.addProcessor(new MultipleChoice(assets, game, fireman).getStage());
inputMultiplexer.addProcessor(new Wordscapes(assets, game, fireman).getStage());
Gdx.input.setInputProcessor(inputMultiplexer);
}
return ninjaRabbit;
return fireman;
}

/**
Expand All @@ -148,7 +148,7 @@ public static Entity createEnvironment(final FuegoPeligro game, final World worl
PhysicsProcessor physics = new LevelPhysicsProcessor(world, renderer.getTiledMap(), renderer.getUnitScale());
CONTACT_LISTENER.add(physics);
world.setContactListener(CONTACT_LISTENER);
GraphicsProcessor graphics = new LevelGraphicsProcessor(assets, renderer, game, ninjaRabbit, status);
GraphicsProcessor graphics = new LevelGraphicsProcessor(assets, renderer, game, fireman, status);
AudioProcessor audio = new LevelAudioProcessor(assets, renderer.getTiledMap().getProperties());
PlayerStatusProcessor player = new LevelPlayerStatusProcessor(status);
if (observers != null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.mygdx.fuegopeligro.entity;

import com.badlogic.gdx.graphics.Camera;
import com.mygdx.fuegopeligro.ai.fsm.NinjaRabbitState;
import com.mygdx.fuegopeligro.ai.fsm.FiremanState;
import com.mygdx.fuegopeligro.audio.AudioProcessor;
import com.mygdx.fuegopeligro.graphics.GraphicsProcessor;
import com.mygdx.fuegopeligro.physics.BodyProcessor;
Expand All @@ -15,7 +15,7 @@
*
* @author JDEsguerra
*/
public class NinjaRabbit extends Entity {
public class Fireman extends Entity {
/**
* A component used to change the body of this {@link Entity} according the action being
* executed or the {@link Direction} that is facing, if necessary.
Expand All @@ -27,10 +27,10 @@ public class NinjaRabbit extends Entity {
*/
private final PlayerStatusProcessor player;

public NinjaRabbit(final PlayerStatusProcessor player, final BodyProcessor bodyProcessor, final GraphicsProcessor graphics,
final PhysicsProcessor physics,
final AudioProcessor audio) {
super(graphics, physics, audio, NinjaRabbitState.IDLE);
public Fireman(final PlayerStatusProcessor player, final BodyProcessor bodyProcessor, final GraphicsProcessor graphics,
final PhysicsProcessor physics,
final AudioProcessor audio) {
super(graphics, physics, audio, FiremanState.IDLE);
this.bodyProcessor = bodyProcessor;
this.player = player;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@
/**
* @author JDEsguerra
*/
public class CarrotGraphicsProcessor implements GraphicsProcessor {
public class CheckpointGraphicsProcessor implements GraphicsProcessor {
private static final String CARROT_REGION = "carrot";

private final TextureAtlas textureAtlas;
private final Box2DSprite carrot;
private final AnimatedBox2DSprite carrotMoving;

public CarrotGraphicsProcessor(final AssetManager manager) {
public CheckpointGraphicsProcessor(final AssetManager manager) {
textureAtlas = manager.get(Assets.NINJA_RABBIT_ATLAS);

Array<Sprite> carrots = textureAtlas.createSprites(CARROT_REGION);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import com.badlogic.gdx.utils.Array;
import com.mygdx.fuegopeligro.Assets;
import com.mygdx.fuegopeligro.FuegoPeligro;
import com.mygdx.fuegopeligro.ai.fsm.NinjaRabbitState;
import com.mygdx.fuegopeligro.ai.fsm.FiremanState;
import com.mygdx.fuegopeligro.ai.msg.MessageType;
import com.mygdx.fuegopeligro.entity.Direction;
import com.mygdx.fuegopeligro.entity.Entity;
Expand All @@ -27,7 +27,7 @@
/**
* @author JDEsguerra
*/
public class NinjaRabbitGraphicsProcessor implements GraphicsProcessor, Telegraph {
public class FiremanGraphicsProcessor implements GraphicsProcessor, Telegraph {
private static final String WALK_REGION = "walk";
private static final String JUMP_REGION = "jump";
private static Vector2 RESPAWN_POSITION = new Vector2(0.6f, 3.2f);
Expand All @@ -38,7 +38,7 @@ public class NinjaRabbitGraphicsProcessor implements GraphicsProcessor, Telegrap
private final AnimatedBox2DSprite walkLeftSprite;
private final AnimatedBox2DSprite jumpSprite;

public NinjaRabbitGraphicsProcessor(final AssetManager assets) {
public FiremanGraphicsProcessor(final AssetManager assets) {
textureAtlas = assets.get(Assets.NINJA_RABBIT_ATLAS);

Array<Sprite> walkingSprites = textureAtlas.createSprites(WALK_REGION);
Expand Down Expand Up @@ -94,13 +94,13 @@ public void update(final Entity character, final Camera camera) {
public void draw(final Entity character, final Batch batch) {
Box2DSprite frame = null;

if (character.isInState(NinjaRabbitState.JUMP)) {
if (character.isInState(FiremanState.JUMP)) {
jumpSprite.flipFrames(Direction.RIGHT.equals(character.getDirection()) == jumpSprite.isFlipX(), false, false);
frame = jumpSprite;
} else if (character.isInState(NinjaRabbitState.RIGHT)) {
} else if (character.isInState(FiremanState.RIGHT)) {
frame = walkRightSprite;
character.setDirection(Direction.RIGHT);
} else if (character.isInState(NinjaRabbitState.LEFT)) {
} else if (character.isInState(FiremanState.LEFT)) {
frame = walkLeftSprite;
character.setDirection(Direction.LEFT);
} else {
Expand All @@ -123,7 +123,7 @@ public void draw(final Entity character, final Batch batch) {
public boolean handleMessage(final Telegram msg) {
Entity character = (Entity) msg.extraInfo;
character.getBody().setTransform(RESPAWN_POSITION, character.getBody().getAngle());
character.changeState(NinjaRabbitState.IDLE);
character.changeState(FiremanState.IDLE);
character.setDirection(Direction.RIGHT);
return true;
}
Expand Down
Loading

0 comments on commit f1500e5

Please sign in to comment.