From cb05ab93e0ca27855a475f6c27a70ec869048f54 Mon Sep 17 00:00:00 2001 From: pacien Date: Thu, 1 Feb 2018 18:38:08 +0100 Subject: Refactor blocks and controllers Signed-off-by: pacien --- src/docs/class.puml | 115 ++++++++++++++++++++++------------------------------ 1 file changed, 48 insertions(+), 67 deletions(-) (limited to 'src/docs') diff --git a/src/docs/class.puml b/src/docs/class.puml index 0506357..cfc78b1 100644 --- a/src/docs/class.puml +++ b/src/docs/class.puml @@ -1,6 +1,8 @@ @startuml skinparam linetype ortho +skinparam monochrome reverse +skinparam backgroundColor #FFFFFF class Main{ static void main(String[]) @@ -29,7 +31,7 @@ package context { } class Context { - Context(Game,List,GraphicsContext) + Context(Game, List, GraphicsContext) Game getGame() List getEvents() GraphicsContext getGraphicsContext() @@ -37,22 +39,23 @@ package context { } class GraphicsContext { - final Graphics2D - final ScreenInfo + Graphics2D, ScreenInfo + paintCircle(Color, Vec2, float) paintSquare(Color, Vec2, float, float) paintString(Color, Vec2,String) } class InputHandler { - private final ApplicationContext + ApplicationContext + InputHandler(ApplicationContext) List getEvents() } class ScreenManager { - private final ApplicationContext - private final Graphics2D + ApplicationContext, Graphics2D + ScreenManager(ApplicationContext,Graphics2D) GraphicsContext clearScreen() } @@ -63,6 +66,7 @@ package context { int indexBoard final List bool over + Game(List) Stage getStage() bool isOver() @@ -71,6 +75,14 @@ package context { void retryStage() List update(Context context) } + + class Stage implements Updateable { + Stage(Board) + Board getBoard() + List getBlocks() + List update(Context) + bool isCleared() + } } package event { @@ -116,7 +128,6 @@ package board { class BoardValidator { static class Constraint - Board BoardValidator(Board) BoardValidator validate(Predicate, String error) @@ -132,15 +143,12 @@ package board { static final int TILE_DIM static TileVec2 fromVec2(Vec2) - Vec2 TileVec2(col, row) Vec2 toPixelPos() List neighbors() } class PathFinder { - Graph - PathFinder(Board) List findPath(TileVec2 origin, TileVec2 target) } @@ -148,12 +156,8 @@ package board { package block { enum BlockType { - FREE - WALL - TRASH - GARBAGE - ROBOT - BOMB + FREE, WALL, TRASH, + GARBAGE, ROBOT, BOMB boolean isBounding() boolean mustBeReachable() @@ -166,71 +170,48 @@ package block { } abstract class Block implements Updateable { - BlockType - List - Vec2 - - Block(BlockType, List, Vec2) - void setPos(Vec2) - BlockType getBlockType() - Vec2 getPos() + Block(BlockType) + BlockType getType() TileVec2 getTile() - List update(Context) + abstract Vec2 getPos() + abstract void link(World) } - - class WallBlock extends Block - class TrashBlock extends Block - class BombBlock extends Block - class GarbageBlock extends Block - class RobotBlock extends Block - - class Stage implements Updateable { - List - Board - Stage(Board) - Board getBoard() - List getBlocks() - List update(Context) - bool isCleared() + + abstract class JBoxBlock extends Block { + JBoxBlock(BlockType, BodyType, Shape, Vec2) + Vec2 getPos() + void link(World) } -} - -package controller { - interface Controller extends Updateable - - abstract class BlockController implements Controller { - Block - Controller(Block) + + class RobotBlock extends Block { + Vec2 getPos() + void link(World world) + List update(Context context) } - class BlockControllerFactory { - BlockController build(Block) + class WallBlock extends JBoxBlock { + List update(Context context) } - class GameStateController implements Controller - abstract class PhysicsController extends BlockController - abstract class DisplayController extends BlockController - - class WallPhysicsController extends PhysicsController - class WallDisplayController extends DisplayController - - class TrashPhysicsController extends PhysicsController - class TrashDisplayController extends DisplayController + class TrashBlock extends JBoxBlock { + List update(Context context) + } - class GarbagePhysicsController extends PhysicsController - class GarbageDisplayController extends DisplayController + class BombBlock extends JBoxBlock { + List update(Context context) + } - class RobotPhysicsController extends PhysicsController { - List path + class GarbageBlock extends JBoxBlock { + List update(Context context) } +} - class RobotDisplayController extends DisplayController +package controller { + interface Controller extends Updateable - class BombPhysicsController extends PhysicsController - class BombDisplayController extends DisplayController + class GameStateController implements Controller } -PhysicsController --() JBox2D Zen5 ()-- Viewer Zen5 ()-- Main Main --> viewer -- cgit v1.2.3