From 3d7b86d8595e4b6010e218af7e1c10262cf03388 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Fri, 6 May 2022 17:03:51 +0200 Subject: [PATCH] =?UTF-8?q?Add=20Conveyor=20belts=20and=20only=20accept=20?= =?UTF-8?q?items=20when=20data=20is=20=C2=B4null`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The conveyor belts work, but they are also kind of broken at the moment. Have fun! --- .../com/yes/yes/behaviours/ItemBehaviour.java | 2 +- .../yes/yes/behaviours/RecieveBehaviour.java | 4 +-- .../yes/entities/machines/ConveyorBelt.java | 31 +++++++++++++++++++ .../com/yes/yes/managers/GameManager.java | 2 ++ .../com/yes/yes/managers/PlayerManager.java | 2 +- 5 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/yes/yes/entities/machines/ConveyorBelt.java diff --git a/src/main/java/com/yes/yes/behaviours/ItemBehaviour.java b/src/main/java/com/yes/yes/behaviours/ItemBehaviour.java index 0215226..926282d 100644 --- a/src/main/java/com/yes/yes/behaviours/ItemBehaviour.java +++ b/src/main/java/com/yes/yes/behaviours/ItemBehaviour.java @@ -23,7 +23,7 @@ public class ItemBehaviour extends Component { System.out.println("Running item update"); Platform.runLater(() -> { this.itemGroup.getChildren().clear(); - this.itemGroup.getChildren().add(this.parent.getData(dataKey)); + this.itemGroup.getChildren().add(item); }); System.out.println("Finished item update"); } diff --git a/src/main/java/com/yes/yes/behaviours/RecieveBehaviour.java b/src/main/java/com/yes/yes/behaviours/RecieveBehaviour.java index af8a348..801dcbe 100644 --- a/src/main/java/com/yes/yes/behaviours/RecieveBehaviour.java +++ b/src/main/java/com/yes/yes/behaviours/RecieveBehaviour.java @@ -41,8 +41,8 @@ public class RecieveBehaviour extends Component { } void receive(Item item) { - if (offerer == null) - return; + if (offerer == null) return; + if(this.parent.getData(dataKey) != null) return; this.parent.setData(dataKey, item); this.parent.trigger(dataKey + "Changed", item); diff --git a/src/main/java/com/yes/yes/entities/machines/ConveyorBelt.java b/src/main/java/com/yes/yes/entities/machines/ConveyorBelt.java new file mode 100644 index 0000000..8b033e3 --- /dev/null +++ b/src/main/java/com/yes/yes/entities/machines/ConveyorBelt.java @@ -0,0 +1,31 @@ +package com.yes.yes.entities.machines; + +import com.yes.yes.behaviours.*; +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.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)); + + this.getChildren().addAll(t); + } + + public ConveyorBelt(BlockContainer blockContainer) { + this(); + this.addBehaviour(new PlaceBehaviour(this, blockContainer)); + this.addBehaviour(new ItemBehaviour(this, blockContainer,"Item")); + this.addBehaviour(new RecieveBehaviour(this, blockContainer, Direction.DOWN, "Item")); + this.addBehaviour(new OfferBehaviour(this, blockContainer, Direction.UP, "Item")); + } +} diff --git a/src/main/java/com/yes/yes/managers/GameManager.java b/src/main/java/com/yes/yes/managers/GameManager.java index 0645e4f..fdaffa1 100644 --- a/src/main/java/com/yes/yes/managers/GameManager.java +++ b/src/main/java/com/yes/yes/managers/GameManager.java @@ -1,5 +1,6 @@ package com.yes.yes.managers; +import com.yes.yes.entities.machines.ConveyorBelt; import com.yes.yes.entities.machines.GeneratorMachine; import com.yes.yes.entities.machines.TestMachine; import com.yes.yes.entities.machines.TestMachine2; @@ -36,6 +37,7 @@ public class GameManager { EntityRegistry.register(new RegistryEntry("test", "test receive machine", TestMachine.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)); } catch (AlreadyExistsException e) { e.printStackTrace(); } diff --git a/src/main/java/com/yes/yes/managers/PlayerManager.java b/src/main/java/com/yes/yes/managers/PlayerManager.java index 6106d22..366dcac 100644 --- a/src/main/java/com/yes/yes/managers/PlayerManager.java +++ b/src/main/java/com/yes/yes/managers/PlayerManager.java @@ -58,7 +58,7 @@ public class PlayerManager { Entity entity = (Entity) registryEntry.getEntity().getConstructor(types).newInstance(blockContainer); world.getChunk(chunkCoordinate).setEntity(entity, blockCoordinate); - entity.setRotation(random.nextInt(0,4)); + //entity.setRotation(random.nextInt(0,4)); entity.initialize(); } catch (Exception ex) { ex.printStackTrace();