From e14e9732956ddddc3a16fb95d255038448a809da Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Fri, 13 May 2022 10:22:52 +0200 Subject: [PATCH] Code cleanup and change reset position key to the `home` key --- src/main/java/com/yes/yes/MainController.java | 2 - src/main/java/com/yes/yes/YesApplication.java | 4 +- .../yes/behaviours/GeneratorBehaviour.java | 4 +- .../com/yes/yes/behaviours/ItemBehaviour.java | 2 +- .../yes/yes/behaviours/OfferBehaviour.java | 6 +-- .../yes/yes/behaviours/PlaceBehaviour.java | 6 ++- .../yes/entities/machines/ConveyorBelt.java | 19 +++++---- .../entities/machines/GeneratorMachine.java | 13 +++---- .../yes/entities/machines/HubAcceptor.java | 5 +-- .../yes/yes/entities/machines/HubDisplay.java | 2 - .../yes/entities/machines/TestMachine.java | 16 ++++---- .../yes/entities/machines/TestMachine2.java | 4 +- .../com/yes/yes/entities/parts/Square.java | 2 +- .../com/yes/yes/managers/GameManager.java | 8 ++-- .../com/yes/yes/managers/PlayerManager.java | 39 +++++++++---------- .../java/com/yes/yes/utils/Component.java | 1 + .../java/com/yes/yes/utils/Direction.java | 5 ++- src/main/java/com/yes/yes/utils/Entity.java | 10 ++--- .../com/yes/yes/utils/GlobalEventHandler.java | 3 +- src/main/java/com/yes/yes/utils/Part.java | 1 - 20 files changed, 69 insertions(+), 83 deletions(-) diff --git a/src/main/java/com/yes/yes/MainController.java b/src/main/java/com/yes/yes/MainController.java index 8748e99..0ba49db 100644 --- a/src/main/java/com/yes/yes/MainController.java +++ b/src/main/java/com/yes/yes/MainController.java @@ -3,9 +3,7 @@ package com.yes.yes; import com.yes.yes.managers.GameManager; import com.yes.yes.managers.PlayerManager; import com.yes.yes.managers.UiManager; -import com.yes.yes.utils.GlobalEventHandler; import javafx.application.Platform; -import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.scene.layout.VBox; diff --git a/src/main/java/com/yes/yes/YesApplication.java b/src/main/java/com/yes/yes/YesApplication.java index c756c58..51fc17c 100644 --- a/src/main/java/com/yes/yes/YesApplication.java +++ b/src/main/java/com/yes/yes/YesApplication.java @@ -1,8 +1,6 @@ package com.yes.yes; import com.yes.yes.utils.GlobalEventHandler; -import javafx.event.ActionEvent; -import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.stage.Stage; @@ -17,7 +15,7 @@ public class YesApplication extends javafx.application.Application { @Override public void stop() { System.out.println("Closing!"); - GlobalEventHandler.trigger("closing",null); + GlobalEventHandler.trigger("closing", null); } @Override diff --git a/src/main/java/com/yes/yes/behaviours/GeneratorBehaviour.java b/src/main/java/com/yes/yes/behaviours/GeneratorBehaviour.java index 8faa4b8..079a8ac 100644 --- a/src/main/java/com/yes/yes/behaviours/GeneratorBehaviour.java +++ b/src/main/java/com/yes/yes/behaviours/GeneratorBehaviour.java @@ -7,8 +7,8 @@ import com.yes.yes.utils.Item; public class GeneratorBehaviour extends Component { - private Item item; - private String dataKey; + private final Item item; + private final String dataKey; public GeneratorBehaviour(Entity entity, BlockContainer blockContainer, Item item, String dataKey) { super(entity, blockContainer); diff --git a/src/main/java/com/yes/yes/behaviours/ItemBehaviour.java b/src/main/java/com/yes/yes/behaviours/ItemBehaviour.java index cf0d803..32fd6a3 100644 --- a/src/main/java/com/yes/yes/behaviours/ItemBehaviour.java +++ b/src/main/java/com/yes/yes/behaviours/ItemBehaviour.java @@ -11,8 +11,8 @@ import javafx.scene.transform.Scale; public class ItemBehaviour extends Component { + private final String dataKey; private VBox itemGroup; - private String dataKey; public ItemBehaviour(Entity entity, BlockContainer blockContainer, String dataKey) { super(entity, blockContainer); diff --git a/src/main/java/com/yes/yes/behaviours/OfferBehaviour.java b/src/main/java/com/yes/yes/behaviours/OfferBehaviour.java index d9dd7fc..c53bfb8 100644 --- a/src/main/java/com/yes/yes/behaviours/OfferBehaviour.java +++ b/src/main/java/com/yes/yes/behaviours/OfferBehaviour.java @@ -4,8 +4,8 @@ import com.yes.yes.utils.*; public class OfferBehaviour extends Component { - private Coordinate direction; - private String dataKey; + private final Coordinate direction; + private final String dataKey; private Entity receiver; @@ -48,7 +48,7 @@ public class OfferBehaviour extends Component { } this.parent.addListener("itemAccepted", this, this::itemAccepted); - this.parent.addListener("placed", this,this::placed); + this.parent.addListener("placed", this, this::placed); } @Override diff --git a/src/main/java/com/yes/yes/behaviours/PlaceBehaviour.java b/src/main/java/com/yes/yes/behaviours/PlaceBehaviour.java index 6b37193..0ae0a1b 100644 --- a/src/main/java/com/yes/yes/behaviours/PlaceBehaviour.java +++ b/src/main/java/com/yes/yes/behaviours/PlaceBehaviour.java @@ -1,7 +1,9 @@ package com.yes.yes.behaviours; -import com.yes.yes.entities.parts.Square; -import com.yes.yes.utils.*; +import com.yes.yes.utils.BlockContainer; +import com.yes.yes.utils.Component; +import com.yes.yes.utils.Coordinate; +import com.yes.yes.utils.Entity; public class PlaceBehaviour extends Component { diff --git a/src/main/java/com/yes/yes/entities/machines/ConveyorBelt.java b/src/main/java/com/yes/yes/entities/machines/ConveyorBelt.java index c791940..c692f1f 100644 --- a/src/main/java/com/yes/yes/entities/machines/ConveyorBelt.java +++ b/src/main/java/com/yes/yes/entities/machines/ConveyorBelt.java @@ -6,17 +6,16 @@ import com.yes.yes.utils.Direction; import com.yes.yes.utils.Entity; import javafx.scene.paint.Color; import javafx.scene.shape.Polygon; -import javafx.scene.shape.Rectangle; public class ConveyorBelt extends Entity { public ConveyorBelt() { super(); Polygon t = new Polygon(); t.getPoints().addAll( - 25.0,0.0, - 0.0,50.0, - 50.0,50.0); - t.setFill(new Color(0,0,0,1)); + 25.0, 0.0, + 0.0, 50.0, + 50.0, 50.0); + t.setFill(new Color(0, 0, 0, 1)); this.getChildren().addAll(t); } @@ -24,11 +23,11 @@ public class ConveyorBelt extends Entity { public ConveyorBelt(BlockContainer blockContainer) { this(); this.addBehaviour(new PlaceBehaviour(this, blockContainer)); - this.addBehaviour(new ItemBehaviour(this, blockContainer,"ReceivedItem")); - this.addBehaviour(new RecieveBehaviour(this, blockContainer, Direction.DOWN, "ReceivedItem")); - this.addBehaviour(new RecieveBehaviour(this, blockContainer, Direction.LEFT, "ReceivedItem")); - this.addBehaviour(new RecieveBehaviour(this, blockContainer, Direction.RIGHT, "ReceivedItem")); + this.addBehaviour(new ItemBehaviour(this, blockContainer, "ReceivedItem")); + this.addBehaviour(new ReceiveBehaviour(this, blockContainer, Direction.DOWN, "ReceivedItem")); + this.addBehaviour(new ReceiveBehaviour(this, blockContainer, Direction.LEFT, "ReceivedItem")); + this.addBehaviour(new ReceiveBehaviour(this, blockContainer, Direction.RIGHT, "ReceivedItem")); this.addBehaviour(new OfferBehaviour(this, blockContainer, Direction.UP, "OfferItem")); - this.addBehaviour(new ConveyorBehaviour(this,blockContainer, "ReceivedItem","OfferItem", 1)); + this.addBehaviour(new ConveyorBehaviour(this, blockContainer, "ReceivedItem", "OfferItem", 1)); } } diff --git a/src/main/java/com/yes/yes/entities/machines/GeneratorMachine.java b/src/main/java/com/yes/yes/entities/machines/GeneratorMachine.java index 3b7cffc..4ef2cb8 100644 --- a/src/main/java/com/yes/yes/entities/machines/GeneratorMachine.java +++ b/src/main/java/com/yes/yes/entities/machines/GeneratorMachine.java @@ -12,7 +12,6 @@ import com.yes.yes.utils.Item; import javafx.scene.paint.Color; import javafx.scene.shape.Polygon; import javafx.scene.shape.Rectangle; -import javafx.scene.shape.TriangleMesh; public class GeneratorMachine extends Entity { public GeneratorMachine() { @@ -22,18 +21,18 @@ public class GeneratorMachine extends Entity { Polygon p = new Polygon(); p.getPoints().addAll( - 25.0,0.0, - 0.0,50.0, - 50.0,50.0); - p.setFill(new Color(0,0,0,0.5)); + 25.0, 0.0, + 0.0, 50.0, + 50.0, 50.0); + p.setFill(new Color(0, 0, 0, 0.5)); - this.getChildren().addAll(r,p); + this.getChildren().addAll(r, p); } public GeneratorMachine(BlockContainer blockContainer) { this(); this.addBehaviour(new PlaceBehaviour(this, blockContainer)); - this.addBehaviour(new ItemBehaviour(this, blockContainer,"Item")); + this.addBehaviour(new ItemBehaviour(this, blockContainer, "Item")); this.addBehaviour(new OfferBehaviour(this, blockContainer, Direction.UP, "Item")); this.addBehaviour(new GeneratorBehaviour(this, blockContainer, generateItem(), "Item")); } diff --git a/src/main/java/com/yes/yes/entities/machines/HubAcceptor.java b/src/main/java/com/yes/yes/entities/machines/HubAcceptor.java index fc82d45..acd988b 100644 --- a/src/main/java/com/yes/yes/entities/machines/HubAcceptor.java +++ b/src/main/java/com/yes/yes/entities/machines/HubAcceptor.java @@ -1,8 +1,7 @@ package com.yes.yes.entities.machines; -import com.yes.yes.behaviours.ItemBehaviour; import com.yes.yes.behaviours.PlaceBehaviour; -import com.yes.yes.behaviours.RecieveBehaviour; +import com.yes.yes.behaviours.ReceiveBehaviour; import com.yes.yes.utils.BlockContainer; import com.yes.yes.utils.Direction; import com.yes.yes.utils.Entity; @@ -20,6 +19,6 @@ public class HubAcceptor extends Entity { public HubAcceptor(BlockContainer blockContainer) { this(); this.addBehaviour(new PlaceBehaviour(this, blockContainer)); - this.addBehaviour(new RecieveBehaviour(this, blockContainer, Direction.LEFT, "Input")); + this.addBehaviour(new ReceiveBehaviour(this, blockContainer, Direction.LEFT, "Input")); } } diff --git a/src/main/java/com/yes/yes/entities/machines/HubDisplay.java b/src/main/java/com/yes/yes/entities/machines/HubDisplay.java index fa9f667..f30c820 100644 --- a/src/main/java/com/yes/yes/entities/machines/HubDisplay.java +++ b/src/main/java/com/yes/yes/entities/machines/HubDisplay.java @@ -2,9 +2,7 @@ package com.yes.yes.entities.machines; import com.yes.yes.behaviours.ItemBehaviour; import com.yes.yes.behaviours.PlaceBehaviour; -import com.yes.yes.behaviours.RecieveBehaviour; import com.yes.yes.utils.BlockContainer; -import com.yes.yes.utils.Direction; import com.yes.yes.utils.Entity; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; diff --git a/src/main/java/com/yes/yes/entities/machines/TestMachine.java b/src/main/java/com/yes/yes/entities/machines/TestMachine.java index 7ba6ec9..b29e055 100644 --- a/src/main/java/com/yes/yes/entities/machines/TestMachine.java +++ b/src/main/java/com/yes/yes/entities/machines/TestMachine.java @@ -2,7 +2,7 @@ package com.yes.yes.entities.machines; import com.yes.yes.behaviours.ItemBehaviour; import com.yes.yes.behaviours.PlaceBehaviour; -import com.yes.yes.behaviours.RecieveBehaviour; +import com.yes.yes.behaviours.ReceiveBehaviour; import com.yes.yes.behaviours.TestBehaviour; import com.yes.yes.utils.BlockContainer; import com.yes.yes.utils.Direction; @@ -20,19 +20,19 @@ public class TestMachine extends Entity { Polygon t = new Polygon(); t.getPoints().addAll( - 25.0,0.0, - 0.0,50.0, - 50.0,50.0); - t.setFill(new Color(1,1,1,0.5)); + 25.0, 0.0, + 0.0, 50.0, + 50.0, 50.0); + t.setFill(new Color(1, 1, 1, 0.5)); - this.getChildren().addAll(c,t); + this.getChildren().addAll(c, t); } public TestMachine(BlockContainer blockContainer) { this(); this.addBehaviour(new PlaceBehaviour(this, blockContainer)); this.addBehaviour(new TestBehaviour(this, blockContainer)); - this.addBehaviour(new ItemBehaviour(this, blockContainer,"Item")); - this.addBehaviour(new RecieveBehaviour(this, blockContainer, Direction.DOWN, "Item")); + this.addBehaviour(new ItemBehaviour(this, blockContainer, "Item")); + this.addBehaviour(new ReceiveBehaviour(this, blockContainer, Direction.DOWN, "Item")); } } diff --git a/src/main/java/com/yes/yes/entities/machines/TestMachine2.java b/src/main/java/com/yes/yes/entities/machines/TestMachine2.java index a0376d7..56ba6a8 100644 --- a/src/main/java/com/yes/yes/entities/machines/TestMachine2.java +++ b/src/main/java/com/yes/yes/entities/machines/TestMachine2.java @@ -15,11 +15,11 @@ public class TestMachine2 extends Entity { this.getChildren().add(new Rectangle(50, 50)); } - public TestMachine2(BlockContainer blockContainer) { + public TestMachine2(BlockContainer blockContainer) { this(); this.addBehaviour(new PlaceBehaviour(this, blockContainer)); this.addBehaviour(new TestBehaviour(this, blockContainer)); - this.addBehaviour(new ItemBehaviour(this, blockContainer,"Item")); + this.addBehaviour(new ItemBehaviour(this, blockContainer, "Item")); this.addBehaviour(new OfferBehaviour(this, blockContainer, Direction.RIGHT, "Item")); } } \ No newline at end of file diff --git a/src/main/java/com/yes/yes/entities/parts/Square.java b/src/main/java/com/yes/yes/entities/parts/Square.java index 1ca5e9c..c5fcc2f 100644 --- a/src/main/java/com/yes/yes/entities/parts/Square.java +++ b/src/main/java/com/yes/yes/entities/parts/Square.java @@ -14,7 +14,7 @@ public class Square extends com.yes.yes.utils.Part { int b = rand.nextInt(255); var rect = new Rectangle(23, 23); - rect.setFill(Color.rgb(r,g,b)); + rect.setFill(Color.rgb(r, g, b)); rect.setStroke(Color.BLUE); rect.setStrokeWidth(1); this.getChildren().add(rect); diff --git a/src/main/java/com/yes/yes/managers/GameManager.java b/src/main/java/com/yes/yes/managers/GameManager.java index cd33fcc..35f4f1f 100644 --- a/src/main/java/com/yes/yes/managers/GameManager.java +++ b/src/main/java/com/yes/yes/managers/GameManager.java @@ -35,8 +35,8 @@ public class GameManager { EntityRegistry.register(new RegistryEntry("test2", "test offer machine", TestMachine2.class)); EntityRegistry.register(new RegistryEntry("generator", "Generator", GeneratorMachine.class)); EntityRegistry.register(new RegistryEntry("conveyorBelt", "Conveyor Belt", ConveyorBelt.class)); - EntityRegistry.register(new RegistryEntry("hub","Central Hub", HubDisplay.class)); - EntityRegistry.register(new RegistryEntry("hubAcceptor","Central Hub Acceptor", HubAcceptor.class)); + EntityRegistry.register(new RegistryEntry("hub", "Central Hub", HubDisplay.class)); + EntityRegistry.register(new RegistryEntry("hubAcceptor", "Central Hub Acceptor", HubAcceptor.class)); } catch (AlreadyExistsException e) { e.printStackTrace(); } @@ -46,9 +46,7 @@ public class GameManager { executor.scheduleAtFixedRate(() -> { try { GlobalEventHandler.trigger("timerTick", null); - } - catch (Exception ex) - { + } catch (Exception ex) { ex.printStackTrace(); } //System.out.println("Finished tick!"); diff --git a/src/main/java/com/yes/yes/managers/PlayerManager.java b/src/main/java/com/yes/yes/managers/PlayerManager.java index 3dcbc9f..d8662a1 100644 --- a/src/main/java/com/yes/yes/managers/PlayerManager.java +++ b/src/main/java/com/yes/yes/managers/PlayerManager.java @@ -7,8 +7,6 @@ import com.yes.yes.world.World; import javafx.scene.Scene; import javafx.scene.input.*; -import java.security.Key; - public class PlayerManager { private static final KeyCombination LEFT_KEY = new KeyCodeCombination(KeyCode.A); @@ -16,12 +14,11 @@ public class PlayerManager { private static final KeyCombination UP_KEY = new KeyCodeCombination(KeyCode.W); private static final KeyCombination DOWN_KEY = new KeyCodeCombination(KeyCode.S); private static final KeyCombination DELETE_KEY = new KeyCodeCombination(KeyCode.X); - private static final KeyCombination HOME_KEY = new KeyCodeCombination(KeyCode.INSERT); + private static final KeyCombination HOME_KEY = new KeyCodeCombination(KeyCode.HOME); + private static final Coordinate START_POSITION = new Coordinate(Integer.MAX_VALUE / -5000, Integer.MAX_VALUE / -5000); private final World world; private final BuildBox buildBox; - private static final Coordinate START_POSITION = new Coordinate(Integer.MAX_VALUE / -5000,Integer.MAX_VALUE / -5000); - private Coordinate chunkPos = new Coordinate(0, 0); private int currentRotation = 0; private Coordinate currentMousePosition; @@ -34,6 +31,7 @@ public class PlayerManager { public void initialize() { Scene scene = world.getScene(); scene.setOnKeyPressed(this::processKeyPress); + scene.setOnKeyReleased(this::processKeyRelease); scene.widthProperty().addListener((e) -> redrawChunks()); scene.heightProperty().addListener((e) -> redrawChunks()); @@ -41,7 +39,7 @@ public class PlayerManager { world.setOnMouseClicked(this::processClick); world.setTranslateX(START_POSITION.x); world.setTranslateY(START_POSITION.y); - world.setOnMouseMoved((mouse)-> currentMousePosition = new Coordinate((int) mouse.getX(), (int) mouse.getY())); + world.setOnMouseMoved((mouse) -> currentMousePosition = new Coordinate((int) mouse.getX(), (int) mouse.getY())); redrawChunks(); } @@ -84,6 +82,21 @@ public class PlayerManager { } } + private void processKeyRelease(KeyEvent key) { + if (DELETE_KEY.match(key)) { + Coordinate chunkCoordinate = Coordinate.WorldToChunkCoordinate(currentMousePosition); + Coordinate blockCoordinate = Coordinate.WorldToChunkBlock(currentMousePosition); + + Chunk chunk = world.getChunk(chunkCoordinate); + chunk.removeEntity(blockCoordinate); + } + if (HOME_KEY.match(key)) { + world.setTranslateX(START_POSITION.x); + world.setTranslateY(START_POSITION.y); + redrawChunks(); + } + } + private void processKeyPress(KeyEvent key) { if (LEFT_KEY.match(key)) { world.setTranslateX(world.getTranslateX() + 45); @@ -97,20 +110,6 @@ public class PlayerManager { if (DOWN_KEY.match(key)) { world.setTranslateY(world.getTranslateY() - 45); } - if(DELETE_KEY.match(key)) { - Coordinate chunkCoordinate = Coordinate.WorldToChunkCoordinate(currentMousePosition); - Coordinate blockCoordinate = Coordinate.WorldToChunkBlock(currentMousePosition); - - Chunk chunk = world.getChunk(chunkCoordinate); - chunk.removeEntity(blockCoordinate); - } - if(HOME_KEY.match(key)) - { - world.setTranslateX(START_POSITION.x); - world.setTranslateY(START_POSITION.y); - redrawChunks(); - } - Size preferredAmountOfChunks = getPreferredAmountOfChunks(); Coordinate chunkPosition = getCurrentChunkPosition(); diff --git a/src/main/java/com/yes/yes/utils/Component.java b/src/main/java/com/yes/yes/utils/Component.java index b263e11..233e69f 100644 --- a/src/main/java/com/yes/yes/utils/Component.java +++ b/src/main/java/com/yes/yes/utils/Component.java @@ -12,5 +12,6 @@ public abstract class Component { public abstract void initialize(); public abstract void update(); + public abstract void destroy(); } diff --git a/src/main/java/com/yes/yes/utils/Direction.java b/src/main/java/com/yes/yes/utils/Direction.java index 3ae11e8..8c38a02 100644 --- a/src/main/java/com/yes/yes/utils/Direction.java +++ b/src/main/java/com/yes/yes/utils/Direction.java @@ -3,13 +3,14 @@ package com.yes.yes.utils; import java.security.InvalidParameterException; public class Direction { - private Direction() {} - public static final Coordinate UP = new Coordinate(0, -1); public static final Coordinate RIGHT = new Coordinate(1, 0); public static final Coordinate DOWN = new Coordinate(0, 1); public static final Coordinate LEFT = new Coordinate(-1, 0); + private Direction() { + } + public static final Coordinate rotateRight(Coordinate direction) { if (direction == Direction.LEFT) return Direction.UP; if (direction == Direction.UP) return Direction.RIGHT; diff --git a/src/main/java/com/yes/yes/utils/Entity.java b/src/main/java/com/yes/yes/utils/Entity.java index 1a0d186..3434811 100644 --- a/src/main/java/com/yes/yes/utils/Entity.java +++ b/src/main/java/com/yes/yes/utils/Entity.java @@ -3,7 +3,6 @@ package com.yes.yes.utils; import java.util.ArrayList; import java.util.HashMap; import java.util.function.Consumer; -import java.util.function.Function; public abstract class Entity extends javafx.scene.Group { private final HashMap data = new HashMap<>(); @@ -24,9 +23,7 @@ public abstract class Entity extends javafx.scene.Group { for (Component component : behaviours) { if (!component.getClass().equals(behaviour.getClass())) { components.add(component); - } - else - { + } else { component.destroy(); } } @@ -45,9 +42,8 @@ public abstract class Entity extends javafx.scene.Group { behaviours.forEach(Component::initialize); } - public final void destroy() - { - GlobalEventHandler.removeListener("timerTick",this, (__) -> update()); + public final void destroy() { + GlobalEventHandler.removeListener("timerTick", this, (__) -> update()); for (Component component : behaviours) { component.destroy(); } diff --git a/src/main/java/com/yes/yes/utils/GlobalEventHandler.java b/src/main/java/com/yes/yes/utils/GlobalEventHandler.java index 6402774..9cea411 100644 --- a/src/main/java/com/yes/yes/utils/GlobalEventHandler.java +++ b/src/main/java/com/yes/yes/utils/GlobalEventHandler.java @@ -1,7 +1,6 @@ package com.yes.yes.utils; import java.util.function.Consumer; -import java.util.function.Function; public class GlobalEventHandler { private static final EventHandler handler = new EventHandler(); @@ -10,7 +9,7 @@ public class GlobalEventHandler { } public static void addListener(String eventName, Object object, Consumer function) { - handler.addListener(eventName,object, function); + handler.addListener(eventName, object, function); } public static void removeListener(String eventName, Object object, Consumer function) { diff --git a/src/main/java/com/yes/yes/utils/Part.java b/src/main/java/com/yes/yes/utils/Part.java index 60a3961..4fe40e1 100644 --- a/src/main/java/com/yes/yes/utils/Part.java +++ b/src/main/java/com/yes/yes/utils/Part.java @@ -1,6 +1,5 @@ package com.yes.yes.utils; -import com.yes.yes.world.Chunk; import javafx.scene.Node; public abstract class Part extends javafx.scene.Group {