From e53db4256ba1cb523813bad7e34687ad36f75561 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Fri, 13 May 2022 11:26:12 +0200 Subject: [PATCH] More code cleanup and fix receive behavior --- .../yes/yes/behaviours/DestroyBehaviour.java | 30 ++++++++++++++++++- .../com/yes/yes/behaviours/ItemBehaviour.java | 3 +- .../yes/yes/behaviours/ReceiveBehaviour.java | 1 + .../yes/entities/machines/ConveyorBelt.java | 7 +++-- .../yes/entities/machines/DestroyMachine.java | 15 ++++------ .../entities/machines/GeneratorMachine.java | 9 +++--- .../yes/entities/machines/HubAcceptor.java | 3 +- .../yes/yes/entities/machines/HubDisplay.java | 14 +++++++-- .../yes/entities/machines/TestMachine2.java | 3 +- .../com/yes/yes/entities/parts/Square.java | 2 +- .../com/yes/yes/managers/GameManager.java | 2 +- .../com/yes/yes/managers/PlayerManager.java | 2 +- .../com/yes/yes/utils/BlockContainer.java | 2 +- .../java/com/yes/yes/utils/Direction.java | 4 +-- 14 files changed, 68 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/yes/yes/behaviours/DestroyBehaviour.java b/src/main/java/com/yes/yes/behaviours/DestroyBehaviour.java index 7b1488b..be0f494 100644 --- a/src/main/java/com/yes/yes/behaviours/DestroyBehaviour.java +++ b/src/main/java/com/yes/yes/behaviours/DestroyBehaviour.java @@ -1,2 +1,30 @@ -package com.yes.yes.behaviours;public class DestroyBehaviour { +package com.yes.yes.behaviours; + +import com.yes.yes.utils.BlockContainer; +import com.yes.yes.utils.Component; +import com.yes.yes.utils.Entity; + +public class DestroyBehaviour extends Component { + private String dataKey; + + public DestroyBehaviour(Entity entity, BlockContainer blockContainer, String dataKey) { + super(entity, blockContainer); + this.dataKey = dataKey; + } + + @Override + public void initialize() { + + } + + @Override + public void update() { + this.parent.setData(dataKey, null); + this.parent.trigger(dataKey + "Changed", null); + } + + @Override + public void destroy() { + + } } diff --git a/src/main/java/com/yes/yes/behaviours/ItemBehaviour.java b/src/main/java/com/yes/yes/behaviours/ItemBehaviour.java index 32fd6a3..156c0a0 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); @@ -35,6 +35,7 @@ public class ItemBehaviour extends Component { itemGroup = new VBox(); itemGroup.setAlignment(Pos.CENTER); + //itemGroup.setRotate(-this.parent.getRotate()); this.parent.getChildren().add(itemGroup); diff --git a/src/main/java/com/yes/yes/behaviours/ReceiveBehaviour.java b/src/main/java/com/yes/yes/behaviours/ReceiveBehaviour.java index fb0dc74..36eaa0e 100644 --- a/src/main/java/com/yes/yes/behaviours/ReceiveBehaviour.java +++ b/src/main/java/com/yes/yes/behaviours/ReceiveBehaviour.java @@ -48,6 +48,7 @@ public class ReceiveBehaviour extends Component { this.parent.setData(dataKey, item); this.parent.trigger(dataKey + "Changed", item); + this.offerer.trigger("itemAccepted", this.parent); } 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 c692f1f..4f479ff 100644 --- a/src/main/java/com/yes/yes/entities/machines/ConveyorBelt.java +++ b/src/main/java/com/yes/yes/entities/machines/ConveyorBelt.java @@ -4,6 +4,7 @@ import com.yes.yes.behaviours.*; import com.yes.yes.utils.BlockContainer; import com.yes.yes.utils.Direction; import com.yes.yes.utils.Entity; +import com.yes.yes.world.Chunk; import javafx.scene.paint.Color; import javafx.scene.shape.Polygon; @@ -12,9 +13,9 @@ public class ConveyorBelt extends Entity { super(); Polygon t = new Polygon(); t.getPoints().addAll( - 25.0, 0.0, - 0.0, 50.0, - 50.0, 50.0); + Chunk.ENTITY_SIZE / 2d, 0.0, + 0.0, (double) Chunk.ENTITY_SIZE, + (double) Chunk.ENTITY_SIZE, (double) Chunk.ENTITY_SIZE); t.setFill(new Color(0, 0, 0, 1)); this.getChildren().addAll(t); diff --git a/src/main/java/com/yes/yes/entities/machines/DestroyMachine.java b/src/main/java/com/yes/yes/entities/machines/DestroyMachine.java index f1213f8..3912944 100644 --- a/src/main/java/com/yes/yes/entities/machines/DestroyMachine.java +++ b/src/main/java/com/yes/yes/entities/machines/DestroyMachine.java @@ -1,9 +1,6 @@ package com.yes.yes.entities.machines; -import com.yes.yes.behaviours.ItemBehaviour; -import com.yes.yes.behaviours.PlaceBehaviour; -import com.yes.yes.behaviours.ReceiveBehaviour; -import com.yes.yes.behaviours.TestBehaviour; +import com.yes.yes.behaviours.*; import com.yes.yes.utils.BlockContainer; import com.yes.yes.utils.Direction; import com.yes.yes.utils.Entity; @@ -11,9 +8,10 @@ import com.yes.yes.world.Chunk; import javafx.scene.paint.Color; import javafx.scene.shape.Circle; import javafx.scene.shape.Polygon; +import javafx.scene.shape.Rectangle; -public class TestMachine extends Entity { - public TestMachine() { +public class DestroyMachine extends Entity { + public DestroyMachine() { super(); Circle c = new Circle(Chunk.ENTITY_SIZE / 2); c.setCenterX(Chunk.ENTITY_SIZE / 2); @@ -29,11 +27,10 @@ public class TestMachine extends Entity { this.getChildren().addAll(c, t); } - public TestMachine(BlockContainer blockContainer) { + public DestroyMachine(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 ReceiveBehaviour(this, blockContainer, Direction.DOWN, "Item")); + this.addBehaviour(new DestroyBehaviour(this, blockContainer, "Item")); } } 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 4ef2cb8..88aa528 100644 --- a/src/main/java/com/yes/yes/entities/machines/GeneratorMachine.java +++ b/src/main/java/com/yes/yes/entities/machines/GeneratorMachine.java @@ -9,6 +9,7 @@ import com.yes.yes.utils.BlockContainer; import com.yes.yes.utils.Direction; import com.yes.yes.utils.Entity; import com.yes.yes.utils.Item; +import com.yes.yes.world.Chunk; import javafx.scene.paint.Color; import javafx.scene.shape.Polygon; import javafx.scene.shape.Rectangle; @@ -16,14 +17,14 @@ import javafx.scene.shape.Rectangle; public class GeneratorMachine extends Entity { public GeneratorMachine() { super(); - Rectangle r = new Rectangle(50, 50); + Rectangle r = new Rectangle(Chunk.ENTITY_SIZE, Chunk.ENTITY_SIZE); r.setFill(Color.RED); Polygon p = new Polygon(); p.getPoints().addAll( - 25.0, 0.0, - 0.0, 50.0, - 50.0, 50.0); + Chunk.ENTITY_SIZE/2d, 0.0, + 0.0, (double) Chunk.ENTITY_SIZE, + (double) Chunk.ENTITY_SIZE, (double) Chunk.ENTITY_SIZE); p.setFill(new Color(0, 0, 0, 0.5)); this.getChildren().addAll(r, p); 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 acd988b..b7c004c 100644 --- a/src/main/java/com/yes/yes/entities/machines/HubAcceptor.java +++ b/src/main/java/com/yes/yes/entities/machines/HubAcceptor.java @@ -5,12 +5,13 @@ import com.yes.yes.behaviours.ReceiveBehaviour; import com.yes.yes.utils.BlockContainer; import com.yes.yes.utils.Direction; import com.yes.yes.utils.Entity; +import com.yes.yes.world.Chunk; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; public class HubAcceptor extends Entity { public HubAcceptor() { - Rectangle r = new Rectangle(50, 50); + Rectangle r = new Rectangle(Chunk.ENTITY_SIZE, Chunk.ENTITY_SIZE); r.setFill(Color.PINK); this.getChildren().add(r); 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 f30c820..a935c3d 100644 --- a/src/main/java/com/yes/yes/entities/machines/HubDisplay.java +++ b/src/main/java/com/yes/yes/entities/machines/HubDisplay.java @@ -4,6 +4,9 @@ import com.yes.yes.behaviours.ItemBehaviour; import com.yes.yes.behaviours.PlaceBehaviour; import com.yes.yes.utils.BlockContainer; import com.yes.yes.utils.Entity; +import com.yes.yes.world.Chunk; +import javafx.geometry.Pos; +import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.text.Text; @@ -11,12 +14,17 @@ import javafx.scene.text.Text; public class HubDisplay extends Entity { public HubDisplay() { - Rectangle r = new Rectangle(50, 50); + Rectangle r = new Rectangle(Chunk.ENTITY_SIZE, Chunk.ENTITY_SIZE); r.setFill(Color.PINK); - Text text = new Text("yes"); + Text text = new Text("yes\nthis is a test sentence"); + text.setWrappingWidth(Chunk.ENTITY_SIZE); - this.getChildren().addAll(r, text); + StackPane stackPane = new StackPane(); + stackPane.getChildren().addAll(r, text); + stackPane.setAlignment(Pos.CENTER); + + this.getChildren().addAll(stackPane); } public HubDisplay(BlockContainer blockContainer) { 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 56ba6a8..1defcfc 100644 --- a/src/main/java/com/yes/yes/entities/machines/TestMachine2.java +++ b/src/main/java/com/yes/yes/entities/machines/TestMachine2.java @@ -7,12 +7,13 @@ import com.yes.yes.behaviours.TestBehaviour; import com.yes.yes.utils.BlockContainer; import com.yes.yes.utils.Direction; import com.yes.yes.utils.Entity; +import com.yes.yes.world.Chunk; import javafx.scene.shape.Rectangle; public class TestMachine2 extends Entity { public TestMachine2() { super(); - this.getChildren().add(new Rectangle(50, 50)); + this.getChildren().add(new Rectangle(Chunk.ENTITY_SIZE, Chunk.ENTITY_SIZE)); } public TestMachine2(BlockContainer blockContainer) { 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 c5fcc2f..834ecdd 100644 --- a/src/main/java/com/yes/yes/entities/parts/Square.java +++ b/src/main/java/com/yes/yes/entities/parts/Square.java @@ -6,7 +6,7 @@ import javafx.scene.shape.Rectangle; import java.util.Random; public class Square extends com.yes.yes.utils.Part { - Random rand = new Random(); + final Random rand = new Random(); public Square() { int r = rand.nextInt(255); diff --git a/src/main/java/com/yes/yes/managers/GameManager.java b/src/main/java/com/yes/yes/managers/GameManager.java index 35f4f1f..ffeff00 100644 --- a/src/main/java/com/yes/yes/managers/GameManager.java +++ b/src/main/java/com/yes/yes/managers/GameManager.java @@ -31,7 +31,7 @@ public class GameManager { world.toBack(); try { - EntityRegistry.register(new RegistryEntry("test", "test receive machine", TestMachine.class)); + EntityRegistry.register(new RegistryEntry("test", "test receive machine", DestroyMachine.class)); 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)); diff --git a/src/main/java/com/yes/yes/managers/PlayerManager.java b/src/main/java/com/yes/yes/managers/PlayerManager.java index d8662a1..4a3f03f 100644 --- a/src/main/java/com/yes/yes/managers/PlayerManager.java +++ b/src/main/java/com/yes/yes/managers/PlayerManager.java @@ -65,7 +65,7 @@ public class PlayerManager { Chunk chunk = world.getChunk(chunkCoordinate); Entity oldEntity = chunk.getEntity(blockCoordinate); - if (oldEntity != null && oldEntity.getClass().getSimpleName() == entity.getClass().getSimpleName()) { + if (oldEntity != null && oldEntity.getClass().getSimpleName().equals(entity.getClass().getSimpleName())) { if (mouse.getButton() == MouseButton.PRIMARY) currentRotation = oldEntity.getRotation() + 1; else diff --git a/src/main/java/com/yes/yes/utils/BlockContainer.java b/src/main/java/com/yes/yes/utils/BlockContainer.java index 63bf131..e741c93 100644 --- a/src/main/java/com/yes/yes/utils/BlockContainer.java +++ b/src/main/java/com/yes/yes/utils/BlockContainer.java @@ -38,7 +38,7 @@ public record BlockContainer(World world, Coordinate blockCoordinate, Coordinate } // Only works with a valid direction - public final Entity getBlockRelative(Coordinate direction, int rotation) throws IllegalAccessException { + public Entity getBlockRelative(Coordinate direction, int rotation) throws IllegalAccessException { for (int i = 0; i < rotation % 4; i++) { direction = Direction.rotateRight(direction); } diff --git a/src/main/java/com/yes/yes/utils/Direction.java b/src/main/java/com/yes/yes/utils/Direction.java index 8c38a02..5b875ee 100644 --- a/src/main/java/com/yes/yes/utils/Direction.java +++ b/src/main/java/com/yes/yes/utils/Direction.java @@ -11,7 +11,7 @@ public class Direction { private Direction() { } - public static final Coordinate rotateRight(Coordinate direction) { + public static Coordinate rotateRight(Coordinate direction) { if (direction == Direction.LEFT) return Direction.UP; if (direction == Direction.UP) return Direction.RIGHT; if (direction == Direction.RIGHT) return Direction.DOWN; @@ -20,7 +20,7 @@ public class Direction { throw new InvalidParameterException("Coordinate is not a direction"); } - public static final Coordinate rotateLeft(Coordinate direction) { + public static Coordinate rotateLeft(Coordinate direction) { if (direction == Direction.LEFT) return Direction.DOWN; if (direction == Direction.DOWN) return Direction.RIGHT; if (direction == Direction.RIGHT) return Direction.UP;