From 94f93a26ba6efa6646af02e51f1fd6d75dfc0920 Mon Sep 17 00:00:00 2001 From: pacien Date: Sun, 14 Jan 2018 22:33:29 +0100 Subject: Rename model package to block Signed-off-by: pacien --- src/main/java/fr/umlv/java/wallj/block/Block.java | 75 ++++++++++++++++++++++ .../fr/umlv/java/wallj/block/BlockFactory.java | 42 ++++++++++++ .../java/fr/umlv/java/wallj/block/BlockType.java | 57 ++++++++++++++++ .../java/fr/umlv/java/wallj/block/BombBlock.java | 28 ++++++++ .../fr/umlv/java/wallj/block/GarbageBlock.java | 16 +++++ .../java/fr/umlv/java/wallj/block/RobotBlock.java | 16 +++++ src/main/java/fr/umlv/java/wallj/block/Stage.java | 42 ++++++++++++ .../java/fr/umlv/java/wallj/block/TrashBlock.java | 16 +++++ .../java/fr/umlv/java/wallj/block/WallBlock.java | 16 +++++ src/main/java/fr/umlv/java/wallj/board/Board.java | 2 +- .../fr/umlv/java/wallj/board/BoardConverter.java | 2 +- .../java/fr/umlv/java/wallj/board/BoardParser.java | 2 +- .../fr/umlv/java/wallj/board/BoardValidator.java | 2 +- .../java/fr/umlv/java/wallj/context/Context.java | 1 - src/main/java/fr/umlv/java/wallj/context/Game.java | 2 +- .../java/wallj/controller/BlockController.java | 2 +- .../wallj/controller/BlockControllerFactory.java | 2 +- .../wallj/controller/BombDisplayController.java | 2 +- .../wallj/controller/BombPhysicsController.java | 2 +- .../java/wallj/controller/DisplayController.java | 2 +- .../wallj/controller/GarbageDisplayController.java | 2 +- .../wallj/controller/GarbagePhysicsController.java | 2 +- .../java/wallj/controller/PhysicsController.java | 2 +- .../wallj/controller/RobotDisplayController.java | 2 +- .../wallj/controller/RobotPhysicsController.java | 2 +- .../wallj/controller/TrashDisplayController.java | 2 +- .../wallj/controller/TrashPhysicsController.java | 2 +- .../wallj/controller/WallDisplayController.java | 2 +- .../wallj/controller/WallPhysicsController.java | 2 +- src/main/java/fr/umlv/java/wallj/model/Block.java | 75 ---------------------- .../fr/umlv/java/wallj/model/BlockFactory.java | 42 ------------ .../java/fr/umlv/java/wallj/model/BlockType.java | 57 ---------------- .../java/fr/umlv/java/wallj/model/BombBlock.java | 28 -------- .../fr/umlv/java/wallj/model/GarbageBlock.java | 16 ----- .../java/fr/umlv/java/wallj/model/RobotBlock.java | 16 ----- src/main/java/fr/umlv/java/wallj/model/Stage.java | 42 ------------ .../java/fr/umlv/java/wallj/model/TrashBlock.java | 16 ----- .../java/fr/umlv/java/wallj/model/WallBlock.java | 16 ----- 38 files changed, 327 insertions(+), 328 deletions(-) create mode 100644 src/main/java/fr/umlv/java/wallj/block/Block.java create mode 100644 src/main/java/fr/umlv/java/wallj/block/BlockFactory.java create mode 100644 src/main/java/fr/umlv/java/wallj/block/BlockType.java create mode 100644 src/main/java/fr/umlv/java/wallj/block/BombBlock.java create mode 100644 src/main/java/fr/umlv/java/wallj/block/GarbageBlock.java create mode 100644 src/main/java/fr/umlv/java/wallj/block/RobotBlock.java create mode 100644 src/main/java/fr/umlv/java/wallj/block/Stage.java create mode 100644 src/main/java/fr/umlv/java/wallj/block/TrashBlock.java create mode 100644 src/main/java/fr/umlv/java/wallj/block/WallBlock.java delete mode 100644 src/main/java/fr/umlv/java/wallj/model/Block.java delete mode 100644 src/main/java/fr/umlv/java/wallj/model/BlockFactory.java delete mode 100644 src/main/java/fr/umlv/java/wallj/model/BlockType.java delete mode 100644 src/main/java/fr/umlv/java/wallj/model/BombBlock.java delete mode 100644 src/main/java/fr/umlv/java/wallj/model/GarbageBlock.java delete mode 100644 src/main/java/fr/umlv/java/wallj/model/RobotBlock.java delete mode 100644 src/main/java/fr/umlv/java/wallj/model/Stage.java delete mode 100644 src/main/java/fr/umlv/java/wallj/model/TrashBlock.java delete mode 100644 src/main/java/fr/umlv/java/wallj/model/WallBlock.java (limited to 'src/main/java/fr') diff --git a/src/main/java/fr/umlv/java/wallj/block/Block.java b/src/main/java/fr/umlv/java/wallj/block/Block.java new file mode 100644 index 0000000..d3c349e --- /dev/null +++ b/src/main/java/fr/umlv/java/wallj/block/Block.java @@ -0,0 +1,75 @@ +package fr.umlv.java.wallj.block; + +import fr.umlv.java.wallj.board.TileVec2; +import fr.umlv.java.wallj.context.Context; +import fr.umlv.java.wallj.controller.BlockController; +import fr.umlv.java.wallj.controller.Controller; +import fr.umlv.java.wallj.event.Event; +import org.jbox2d.common.Vec2; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * A block. + * + * @author Pacien TRAN-GIRARD + */ +public abstract class Block { + + private final BlockType type; + private List controllers; + private Vec2 pos; + + /** + * @param type type of block + * @param pos initial position + */ + Block(BlockType type, Vec2 pos) { + this.type = Objects.requireNonNull(type); + this.pos = Objects.requireNonNull(pos).clone(); + } + + void setControllers(List l) { + controllers = Collections.unmodifiableList(new LinkedList<>(Objects.requireNonNull(l))); + } + + /** + * @param pos new position to set + */ + public void setPos(Vec2 pos) { + this.pos = Objects.requireNonNull(pos).clone(); + } + + /** + * @return the block type + */ + public BlockType getType() { + return type; + } + + /** + * @return the current position + */ + public Vec2 getPos() { + return pos.clone(); + } + + /** + * @return the current tile position + */ + public TileVec2 getTile() { + return TileVec2.of(pos); + } + + /** + * @param ctx execution context + * @return list of generated events + */ + public List update(Context ctx) { + return controllers.stream() + .flatMap(controller -> controller.update(ctx).stream()) + .collect(Collectors.toList()); + } + +} diff --git a/src/main/java/fr/umlv/java/wallj/block/BlockFactory.java b/src/main/java/fr/umlv/java/wallj/block/BlockFactory.java new file mode 100644 index 0000000..951d182 --- /dev/null +++ b/src/main/java/fr/umlv/java/wallj/block/BlockFactory.java @@ -0,0 +1,42 @@ +package fr.umlv.java.wallj.block; + +import fr.umlv.java.wallj.board.TileVec2; +import fr.umlv.java.wallj.controller.BlockControllerFactory; +import org.jbox2d.common.Vec2; + +/** + * A block factory. + * + * @author Pacien TRAN-GIRARD + */ +public final class BlockFactory { + + private static Block forType(BlockType t, Vec2 pos) { + switch (t) { + case WALL: + return new WallBlock(pos); + case TRASH: + return new TrashBlock(pos); + case GARBAGE: + return new GarbageBlock(pos); + case ROBOT: + return new RobotBlock(pos); + case BOMB: + return new BombBlock(pos); + case FREE: + default: + return null; + } + } + + public static Block build(BlockType type, TileVec2 pos) { + Block block = forType(type, pos.toVec2()); + if (block != null) block.setControllers(BlockControllerFactory.build(block)); + return block; + } + + private BlockFactory() { + // static class + } + +} diff --git a/src/main/java/fr/umlv/java/wallj/block/BlockType.java b/src/main/java/fr/umlv/java/wallj/block/BlockType.java new file mode 100644 index 0000000..973215c --- /dev/null +++ b/src/main/java/fr/umlv/java/wallj/block/BlockType.java @@ -0,0 +1,57 @@ +package fr.umlv.java.wallj.block; + +/** + * Enumeration of the types of blocks handled in the game. + * + * @author Pacien TRAN-GIRARD + */ +public enum BlockType { + + FREE(false, true, true, false), + WALL(true, false, false, false), + TRASH(true, true, false, false), + GARBAGE(false, true, false, true), + ROBOT(false, false, true, false), + BOMB(false, false, true, false); + + final boolean bounding; + final boolean mustBeReachable; + final boolean traversable; + final boolean movableByExplosion; + + BlockType(boolean bounding, boolean mustBeReachable, boolean traversable, boolean movableByExplosion) { + this.bounding = bounding; + this.mustBeReachable = mustBeReachable; + this.traversable = traversable; + this.movableByExplosion = movableByExplosion; + } + + /** + * @return this block can bound a map + */ + public boolean isBounding() { + return bounding; + } + + /** + * @return this block must be reachable + */ + public boolean mustBeReachable() { + return mustBeReachable; + } + + /** + * @return this block is traversable + */ + public boolean isTraversable() { + return traversable; + } + + /** + * @return this block can be moved by an explosion + */ + public boolean isMovableByExplosion() { + return movableByExplosion; + } + +} diff --git a/src/main/java/fr/umlv/java/wallj/block/BombBlock.java b/src/main/java/fr/umlv/java/wallj/block/BombBlock.java new file mode 100644 index 0000000..de7a3b9 --- /dev/null +++ b/src/main/java/fr/umlv/java/wallj/block/BombBlock.java @@ -0,0 +1,28 @@ +package fr.umlv.java.wallj.block; + +import org.jbox2d.common.Vec2; + +/** + * A bomb block. + * + * @author Pacien TRAN-GIRARD + */ +public class BombBlock extends Block { + + private static final int INITIAL_TIMER = 1; // sec + + private int timer = INITIAL_TIMER; + + BombBlock(Vec2 pos) { + super(BlockType.BOMB, pos); + } + + public void setTimer(int sec) { + timer = sec; + } + + public int getTimer() { + return timer; + } + +} diff --git a/src/main/java/fr/umlv/java/wallj/block/GarbageBlock.java b/src/main/java/fr/umlv/java/wallj/block/GarbageBlock.java new file mode 100644 index 0000000..7794daf --- /dev/null +++ b/src/main/java/fr/umlv/java/wallj/block/GarbageBlock.java @@ -0,0 +1,16 @@ +package fr.umlv.java.wallj.block; + +import org.jbox2d.common.Vec2; + +/** + * A garbage block. + * + * @author Pacien TRAN-GIRARD + */ +public class GarbageBlock extends Block { + + GarbageBlock(Vec2 pos) { + super(BlockType.GARBAGE, pos); + } + +} diff --git a/src/main/java/fr/umlv/java/wallj/block/RobotBlock.java b/src/main/java/fr/umlv/java/wallj/block/RobotBlock.java new file mode 100644 index 0000000..297b846 --- /dev/null +++ b/src/main/java/fr/umlv/java/wallj/block/RobotBlock.java @@ -0,0 +1,16 @@ +package fr.umlv.java.wallj.block; + +import org.jbox2d.common.Vec2; + +/** + * A robot block. + * + * @author Pacien TRAN-GIRARD + */ +public class RobotBlock extends Block { + + RobotBlock(Vec2 pos) { + super(BlockType.ROBOT, pos); + } + +} diff --git a/src/main/java/fr/umlv/java/wallj/block/Stage.java b/src/main/java/fr/umlv/java/wallj/block/Stage.java new file mode 100644 index 0000000..d34af97 --- /dev/null +++ b/src/main/java/fr/umlv/java/wallj/block/Stage.java @@ -0,0 +1,42 @@ +package fr.umlv.java.wallj.block; + +import fr.umlv.java.wallj.board.Board; +import fr.umlv.java.wallj.context.Context; +import fr.umlv.java.wallj.event.Event; + +import java.util.List; +import java.util.Objects; + +/** + * @author + */ +public class Stage { + //TODO Class Stage + private final Board currentBoard; + + public Stage(Board board) { + currentBoard = Objects.requireNonNull(board); + } + + /** + * @return the current board of the game + */ + public Board getCurrentBoard() { + return currentBoard; + } + + /** + * @param context the current context + * @return a list of new events to perform + */ + public List update(Context context) { + //TODO + return null; + } + + public boolean isCleared() { + // TODO + return false; + } + +} diff --git a/src/main/java/fr/umlv/java/wallj/block/TrashBlock.java b/src/main/java/fr/umlv/java/wallj/block/TrashBlock.java new file mode 100644 index 0000000..4503f27 --- /dev/null +++ b/src/main/java/fr/umlv/java/wallj/block/TrashBlock.java @@ -0,0 +1,16 @@ +package fr.umlv.java.wallj.block; + +import org.jbox2d.common.Vec2; + +/** + * A trash block. + * + * @author Pacien TRAN-GIRARD + */ +public class TrashBlock extends Block { + + TrashBlock(Vec2 pos) { + super(BlockType.TRASH, pos); + } + +} diff --git a/src/main/java/fr/umlv/java/wallj/block/WallBlock.java b/src/main/java/fr/umlv/java/wallj/block/WallBlock.java new file mode 100644 index 0000000..cd0ddad --- /dev/null +++ b/src/main/java/fr/umlv/java/wallj/block/WallBlock.java @@ -0,0 +1,16 @@ +package fr.umlv.java.wallj.block; + +import org.jbox2d.common.Vec2; + +/** + * A wall block. + * + * @author Pacien TRAN-GIRARD + */ +public class WallBlock extends Block { + + WallBlock(Vec2 pos) { + super(BlockType.WALL, pos); + } + +} diff --git a/src/main/java/fr/umlv/java/wallj/board/Board.java b/src/main/java/fr/umlv/java/wallj/board/Board.java index 112f7a5..ad29fe6 100644 --- a/src/main/java/fr/umlv/java/wallj/board/Board.java +++ b/src/main/java/fr/umlv/java/wallj/board/Board.java @@ -1,6 +1,6 @@ package fr.umlv.java.wallj.board; -import fr.umlv.java.wallj.model.BlockType; +import fr.umlv.java.wallj.block.BlockType; import fr.umlv.java.wallj.utils.Matrix; import java.util.AbstractMap; diff --git a/src/main/java/fr/umlv/java/wallj/board/BoardConverter.java b/src/main/java/fr/umlv/java/wallj/board/BoardConverter.java index c4d47cc..064df7a 100644 --- a/src/main/java/fr/umlv/java/wallj/board/BoardConverter.java +++ b/src/main/java/fr/umlv/java/wallj/board/BoardConverter.java @@ -1,6 +1,6 @@ package fr.umlv.java.wallj.board; -import fr.umlv.java.wallj.model.*; +import fr.umlv.java.wallj.block.*; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/fr/umlv/java/wallj/board/BoardParser.java b/src/main/java/fr/umlv/java/wallj/board/BoardParser.java index 001bdc8..39adda7 100644 --- a/src/main/java/fr/umlv/java/wallj/board/BoardParser.java +++ b/src/main/java/fr/umlv/java/wallj/board/BoardParser.java @@ -1,6 +1,6 @@ package fr.umlv.java.wallj.board; -import fr.umlv.java.wallj.model.BlockType; +import fr.umlv.java.wallj.block.BlockType; import fr.umlv.java.wallj.utils.Matrix; import java.io.IOException; diff --git a/src/main/java/fr/umlv/java/wallj/board/BoardValidator.java b/src/main/java/fr/umlv/java/wallj/board/BoardValidator.java index e95446b..011ca8b 100644 --- a/src/main/java/fr/umlv/java/wallj/board/BoardValidator.java +++ b/src/main/java/fr/umlv/java/wallj/board/BoardValidator.java @@ -1,6 +1,6 @@ package fr.umlv.java.wallj.board; -import fr.umlv.java.wallj.model.BlockType; +import fr.umlv.java.wallj.block.BlockType; import java.util.*; import java.util.function.Predicate; diff --git a/src/main/java/fr/umlv/java/wallj/context/Context.java b/src/main/java/fr/umlv/java/wallj/context/Context.java index 01b1f3f..bb684b8 100644 --- a/src/main/java/fr/umlv/java/wallj/context/Context.java +++ b/src/main/java/fr/umlv/java/wallj/context/Context.java @@ -1,7 +1,6 @@ package fr.umlv.java.wallj.context; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.Stage; import java.util.List; import java.util.Objects; diff --git a/src/main/java/fr/umlv/java/wallj/context/Game.java b/src/main/java/fr/umlv/java/wallj/context/Game.java index 900ee63..d5f9873 100644 --- a/src/main/java/fr/umlv/java/wallj/context/Game.java +++ b/src/main/java/fr/umlv/java/wallj/context/Game.java @@ -4,7 +4,7 @@ import fr.umlv.java.wallj.board.Board; import fr.umlv.java.wallj.controller.Controller; import fr.umlv.java.wallj.controller.GameController; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.Stage; +import fr.umlv.java.wallj.block.Stage; import java.util.*; diff --git a/src/main/java/fr/umlv/java/wallj/controller/BlockController.java b/src/main/java/fr/umlv/java/wallj/controller/BlockController.java index 1e0279e..3e27df5 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/BlockController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/BlockController.java @@ -2,7 +2,7 @@ package fr.umlv.java.wallj.controller; import fr.umlv.java.wallj.context.Context; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.Block; +import fr.umlv.java.wallj.block.Block; import java.util.List; import java.util.Objects; diff --git a/src/main/java/fr/umlv/java/wallj/controller/BlockControllerFactory.java b/src/main/java/fr/umlv/java/wallj/controller/BlockControllerFactory.java index f0d17ab..d32dfe9 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/BlockControllerFactory.java +++ b/src/main/java/fr/umlv/java/wallj/controller/BlockControllerFactory.java @@ -1,6 +1,6 @@ package fr.umlv.java.wallj.controller; -import fr.umlv.java.wallj.model.*; +import fr.umlv.java.wallj.block.*; import java.util.Arrays; import java.util.Collections; diff --git a/src/main/java/fr/umlv/java/wallj/controller/BombDisplayController.java b/src/main/java/fr/umlv/java/wallj/controller/BombDisplayController.java index aa652a8..5a4964d 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/BombDisplayController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/BombDisplayController.java @@ -2,7 +2,7 @@ package fr.umlv.java.wallj.controller; import fr.umlv.java.wallj.context.Context; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.BombBlock; +import fr.umlv.java.wallj.block.BombBlock; import java.util.List; import java.util.Objects; diff --git a/src/main/java/fr/umlv/java/wallj/controller/BombPhysicsController.java b/src/main/java/fr/umlv/java/wallj/controller/BombPhysicsController.java index 45a3626..40ee550 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/BombPhysicsController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/BombPhysicsController.java @@ -2,7 +2,7 @@ package fr.umlv.java.wallj.controller; import fr.umlv.java.wallj.context.Context; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.BombBlock; +import fr.umlv.java.wallj.block.BombBlock; import java.util.List; import java.util.Objects; diff --git a/src/main/java/fr/umlv/java/wallj/controller/DisplayController.java b/src/main/java/fr/umlv/java/wallj/controller/DisplayController.java index b2524ee..c970e1f 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/DisplayController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/DisplayController.java @@ -1,6 +1,6 @@ package fr.umlv.java.wallj.controller; -import fr.umlv.java.wallj.model.Block; +import fr.umlv.java.wallj.block.Block; public abstract class DisplayController extends BlockController { diff --git a/src/main/java/fr/umlv/java/wallj/controller/GarbageDisplayController.java b/src/main/java/fr/umlv/java/wallj/controller/GarbageDisplayController.java index e878fb2..4dd7d70 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/GarbageDisplayController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/GarbageDisplayController.java @@ -2,7 +2,7 @@ package fr.umlv.java.wallj.controller; import fr.umlv.java.wallj.context.Context; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.GarbageBlock; +import fr.umlv.java.wallj.block.GarbageBlock; import java.util.List; import java.util.Objects; diff --git a/src/main/java/fr/umlv/java/wallj/controller/GarbagePhysicsController.java b/src/main/java/fr/umlv/java/wallj/controller/GarbagePhysicsController.java index 81e45aa..f8a7c36 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/GarbagePhysicsController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/GarbagePhysicsController.java @@ -2,7 +2,7 @@ package fr.umlv.java.wallj.controller; import fr.umlv.java.wallj.context.Context; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.GarbageBlock; +import fr.umlv.java.wallj.block.GarbageBlock; import java.util.List; import java.util.Objects; diff --git a/src/main/java/fr/umlv/java/wallj/controller/PhysicsController.java b/src/main/java/fr/umlv/java/wallj/controller/PhysicsController.java index f329ebc..6be9bf0 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/PhysicsController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/PhysicsController.java @@ -1,6 +1,6 @@ package fr.umlv.java.wallj.controller; -import fr.umlv.java.wallj.model.Block; +import fr.umlv.java.wallj.block.Block; public abstract class PhysicsController extends BlockController { diff --git a/src/main/java/fr/umlv/java/wallj/controller/RobotDisplayController.java b/src/main/java/fr/umlv/java/wallj/controller/RobotDisplayController.java index 96ba68c..680bca8 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/RobotDisplayController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/RobotDisplayController.java @@ -2,7 +2,7 @@ package fr.umlv.java.wallj.controller; import fr.umlv.java.wallj.context.Context; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.RobotBlock; +import fr.umlv.java.wallj.block.RobotBlock; import java.util.List; import java.util.Objects; diff --git a/src/main/java/fr/umlv/java/wallj/controller/RobotPhysicsController.java b/src/main/java/fr/umlv/java/wallj/controller/RobotPhysicsController.java index f320480..e959914 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/RobotPhysicsController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/RobotPhysicsController.java @@ -2,7 +2,7 @@ package fr.umlv.java.wallj.controller; import fr.umlv.java.wallj.context.Context; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.RobotBlock; +import fr.umlv.java.wallj.block.RobotBlock; import java.util.List; import java.util.Objects; diff --git a/src/main/java/fr/umlv/java/wallj/controller/TrashDisplayController.java b/src/main/java/fr/umlv/java/wallj/controller/TrashDisplayController.java index dfba9be..503b374 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/TrashDisplayController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/TrashDisplayController.java @@ -2,7 +2,7 @@ package fr.umlv.java.wallj.controller; import fr.umlv.java.wallj.context.Context; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.TrashBlock; +import fr.umlv.java.wallj.block.TrashBlock; import java.util.List; import java.util.Objects; diff --git a/src/main/java/fr/umlv/java/wallj/controller/TrashPhysicsController.java b/src/main/java/fr/umlv/java/wallj/controller/TrashPhysicsController.java index 62e4af5..323f044 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/TrashPhysicsController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/TrashPhysicsController.java @@ -2,7 +2,7 @@ package fr.umlv.java.wallj.controller; import fr.umlv.java.wallj.context.Context; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.TrashBlock; +import fr.umlv.java.wallj.block.TrashBlock; import java.util.List; import java.util.Objects; diff --git a/src/main/java/fr/umlv/java/wallj/controller/WallDisplayController.java b/src/main/java/fr/umlv/java/wallj/controller/WallDisplayController.java index 7b7011c..2c0870e 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/WallDisplayController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/WallDisplayController.java @@ -4,7 +4,7 @@ import fr.umlv.java.wallj.board.TileVec2; import fr.umlv.java.wallj.context.Context; import fr.umlv.java.wallj.context.GraphicsContext; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.WallBlock; +import fr.umlv.java.wallj.block.WallBlock; import java.awt.*; import java.util.Collections; diff --git a/src/main/java/fr/umlv/java/wallj/controller/WallPhysicsController.java b/src/main/java/fr/umlv/java/wallj/controller/WallPhysicsController.java index 3fb00bb..ee48ec5 100644 --- a/src/main/java/fr/umlv/java/wallj/controller/WallPhysicsController.java +++ b/src/main/java/fr/umlv/java/wallj/controller/WallPhysicsController.java @@ -2,7 +2,7 @@ package fr.umlv.java.wallj.controller; import fr.umlv.java.wallj.context.Context; import fr.umlv.java.wallj.event.Event; -import fr.umlv.java.wallj.model.WallBlock; +import fr.umlv.java.wallj.block.WallBlock; import java.util.Collections; import java.util.List; diff --git a/src/main/java/fr/umlv/java/wallj/model/Block.java b/src/main/java/fr/umlv/java/wallj/model/Block.java deleted file mode 100644 index 7f32087..0000000 --- a/src/main/java/fr/umlv/java/wallj/model/Block.java +++ /dev/null @@ -1,75 +0,0 @@ -package fr.umlv.java.wallj.model; - -import fr.umlv.java.wallj.board.TileVec2; -import fr.umlv.java.wallj.context.Context; -import fr.umlv.java.wallj.controller.BlockController; -import fr.umlv.java.wallj.controller.Controller; -import fr.umlv.java.wallj.event.Event; -import org.jbox2d.common.Vec2; - -import java.util.*; -import java.util.stream.Collectors; - -/** - * A block. - * - * @author Pacien TRAN-GIRARD - */ -public abstract class Block { - - private final BlockType type; - private List controllers; - private Vec2 pos; - - /** - * @param type type of block - * @param pos initial position - */ - Block(BlockType type, Vec2 pos) { - this.type = Objects.requireNonNull(type); - this.pos = Objects.requireNonNull(pos).clone(); - } - - void setControllers(List l) { - controllers = Collections.unmodifiableList(new LinkedList<>(Objects.requireNonNull(l))); - } - - /** - * @param pos new position to set - */ - public void setPos(Vec2 pos) { - this.pos = Objects.requireNonNull(pos).clone(); - } - - /** - * @return the block type - */ - public BlockType getType() { - return type; - } - - /** - * @return the current position - */ - public Vec2 getPos() { - return pos.clone(); - } - - /** - * @return the current tile position - */ - public TileVec2 getTile() { - return TileVec2.of(pos); - } - - /** - * @param ctx execution context - * @return list of generated events - */ - public List update(Context ctx) { - return controllers.stream() - .flatMap(controller -> controller.update(ctx).stream()) - .collect(Collectors.toList()); - } - -} diff --git a/src/main/java/fr/umlv/java/wallj/model/BlockFactory.java b/src/main/java/fr/umlv/java/wallj/model/BlockFactory.java deleted file mode 100644 index b39b420..0000000 --- a/src/main/java/fr/umlv/java/wallj/model/BlockFactory.java +++ /dev/null @@ -1,42 +0,0 @@ -package fr.umlv.java.wallj.model; - -import fr.umlv.java.wallj.board.TileVec2; -import fr.umlv.java.wallj.controller.BlockControllerFactory; -import org.jbox2d.common.Vec2; - -/** - * A block factory. - * - * @author Pacien TRAN-GIRARD - */ -public final class BlockFactory { - - private static Block forType(BlockType t, Vec2 pos) { - switch (t) { - case WALL: - return new WallBlock(pos); - case TRASH: - return new TrashBlock(pos); - case GARBAGE: - return new GarbageBlock(pos); - case ROBOT: - return new RobotBlock(pos); - case BOMB: - return new BombBlock(pos); - case FREE: - default: - return null; - } - } - - public static Block build(BlockType type, TileVec2 pos) { - Block block = forType(type, pos.toVec2()); - if (block != null) block.setControllers(BlockControllerFactory.build(block)); - return block; - } - - private BlockFactory() { - // static class - } - -} diff --git a/src/main/java/fr/umlv/java/wallj/model/BlockType.java b/src/main/java/fr/umlv/java/wallj/model/BlockType.java deleted file mode 100644 index 9c5d4f5..0000000 --- a/src/main/java/fr/umlv/java/wallj/model/BlockType.java +++ /dev/null @@ -1,57 +0,0 @@ -package fr.umlv.java.wallj.model; - -/** - * Enumeration of the types of blocks handled in the game. - * - * @author Pacien TRAN-GIRARD - */ -public enum BlockType { - - FREE(false, true, true, false), - WALL(true, false, false, false), - TRASH(true, true, false, false), - GARBAGE(false, true, false, true), - ROBOT(false, false, true, false), - BOMB(false, false, true, false); - - final boolean bounding; - final boolean mustBeReachable; - final boolean traversable; - final boolean movableByExplosion; - - BlockType(boolean bounding, boolean mustBeReachable, boolean traversable, boolean movableByExplosion) { - this.bounding = bounding; - this.mustBeReachable = mustBeReachable; - this.traversable = traversable; - this.movableByExplosion = movableByExplosion; - } - - /** - * @return this block can bound a map - */ - public boolean isBounding() { - return bounding; - } - - /** - * @return this block must be reachable - */ - public boolean mustBeReachable() { - return mustBeReachable; - } - - /** - * @return this block is traversable - */ - public boolean isTraversable() { - return traversable; - } - - /** - * @return this block can be moved by an explosion - */ - public boolean isMovableByExplosion() { - return movableByExplosion; - } - -} diff --git a/src/main/java/fr/umlv/java/wallj/model/BombBlock.java b/src/main/java/fr/umlv/java/wallj/model/BombBlock.java deleted file mode 100644 index 9ba4a68..0000000 --- a/src/main/java/fr/umlv/java/wallj/model/BombBlock.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.umlv.java.wallj.model; - -import org.jbox2d.common.Vec2; - -/** - * A bomb block. - * - * @author Pacien TRAN-GIRARD - */ -public class BombBlock extends Block { - - private static final int INITIAL_TIMER = 1; // sec - - private int timer = INITIAL_TIMER; - - BombBlock(Vec2 pos) { - super(BlockType.BOMB, pos); - } - - public void setTimer(int sec) { - timer = sec; - } - - public int getTimer() { - return timer; - } - -} diff --git a/src/main/java/fr/umlv/java/wallj/model/GarbageBlock.java b/src/main/java/fr/umlv/java/wallj/model/GarbageBlock.java deleted file mode 100644 index 9161937..0000000 --- a/src/main/java/fr/umlv/java/wallj/model/GarbageBlock.java +++ /dev/null @@ -1,16 +0,0 @@ -package fr.umlv.java.wallj.model; - -import org.jbox2d.common.Vec2; - -/** - * A garbage block. - * - * @author Pacien TRAN-GIRARD - */ -public class GarbageBlock extends Block { - - GarbageBlock(Vec2 pos) { - super(BlockType.GARBAGE, pos); - } - -} diff --git a/src/main/java/fr/umlv/java/wallj/model/RobotBlock.java b/src/main/java/fr/umlv/java/wallj/model/RobotBlock.java deleted file mode 100644 index 1b012ea..0000000 --- a/src/main/java/fr/umlv/java/wallj/model/RobotBlock.java +++ /dev/null @@ -1,16 +0,0 @@ -package fr.umlv.java.wallj.model; - -import org.jbox2d.common.Vec2; - -/** - * A robot block. - * - * @author Pacien TRAN-GIRARD - */ -public class RobotBlock extends Block { - - RobotBlock(Vec2 pos) { - super(BlockType.ROBOT, pos); - } - -} diff --git a/src/main/java/fr/umlv/java/wallj/model/Stage.java b/src/main/java/fr/umlv/java/wallj/model/Stage.java deleted file mode 100644 index 4233326..0000000 --- a/src/main/java/fr/umlv/java/wallj/model/Stage.java +++ /dev/null @@ -1,42 +0,0 @@ -package fr.umlv.java.wallj.model; - -import fr.umlv.java.wallj.board.Board; -import fr.umlv.java.wallj.context.Context; -import fr.umlv.java.wallj.event.Event; - -import java.util.List; -import java.util.Objects; - -/** - * @author - */ -public class Stage { - //TODO Class Stage - private final Board currentBoard; - - public Stage(Board board) { - currentBoard = Objects.requireNonNull(board); - } - - /** - * @return the current board of the game - */ - public Board getCurrentBoard() { - return currentBoard; - } - - /** - * @param context the current context - * @return a list of new events to perform - */ - public List update(Context context) { - //TODO - return null; - } - - public boolean isCleared() { - // TODO - return false; - } - -} diff --git a/src/main/java/fr/umlv/java/wallj/model/TrashBlock.java b/src/main/java/fr/umlv/java/wallj/model/TrashBlock.java deleted file mode 100644 index 1560381..0000000 --- a/src/main/java/fr/umlv/java/wallj/model/TrashBlock.java +++ /dev/null @@ -1,16 +0,0 @@ -package fr.umlv.java.wallj.model; - -import org.jbox2d.common.Vec2; - -/** - * A trash block. - * - * @author Pacien TRAN-GIRARD - */ -public class TrashBlock extends Block { - - TrashBlock(Vec2 pos) { - super(BlockType.TRASH, pos); - } - -} diff --git a/src/main/java/fr/umlv/java/wallj/model/WallBlock.java b/src/main/java/fr/umlv/java/wallj/model/WallBlock.java deleted file mode 100644 index 84fb42e..0000000 --- a/src/main/java/fr/umlv/java/wallj/model/WallBlock.java +++ /dev/null @@ -1,16 +0,0 @@ -package fr.umlv.java.wallj.model; - -import org.jbox2d.common.Vec2; - -/** - * A wall block. - * - * @author Pacien TRAN-GIRARD - */ -public class WallBlock extends Block { - - WallBlock(Vec2 pos) { - super(BlockType.WALL, pos); - } - -} -- cgit v1.2.3