From ade3d884ebb33d09f345e29d03f04f71611610bd Mon Sep 17 00:00:00 2001 From: Ivory Date: Tue, 3 Jan 2023 00:19:02 -0500 Subject: [PATCH] added rocks --- .../xyz/valnet/hadean/gameobjects/Tile.java | 13 ++++- .../worldobjects/items/Boulder.java | 47 +++++++++++++++++++ 2 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/items/Boulder.java diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/Tile.java b/src/main/java/xyz/valnet/hadean/gameobjects/Tile.java index 60fb849..8a2e7f5 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/Tile.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/Tile.java @@ -2,9 +2,7 @@ package xyz.valnet.hadean.gameobjects; import java.util.ArrayList; import java.util.List; -import java.util.stream.Stream; -import xyz.valnet.engine.graphics.Sprite; import xyz.valnet.engine.math.Vector2f; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.math.Vector4f; @@ -12,6 +10,7 @@ import xyz.valnet.engine.scenegraph.GameObject; import xyz.valnet.hadean.gameobjects.worldobjects.FarmPlot; import xyz.valnet.hadean.gameobjects.worldobjects.Tree; import xyz.valnet.hadean.gameobjects.worldobjects.WorldObject; +import xyz.valnet.hadean.gameobjects.worldobjects.items.Boulder; import xyz.valnet.hadean.gameobjects.worldobjects.items.Item; import xyz.valnet.hadean.interfaces.ITileThing; import xyz.valnet.hadean.interfaces.IWorkable; @@ -27,6 +26,7 @@ public class Tile extends WorldObject implements IWorkable { // private final int x, y; private Vector4f color; private final int tileSelector = (int)Math.floor(Math.random() * 4); + private boolean rocks = false; private List stuff = new ArrayList(); // TODO remove remove queue, cause like, we dont iterate over @@ -57,10 +57,18 @@ public class Tile extends WorldObject implements IWorkable { @Override protected void create() { + if(Math.random() > 0.95) { + rocks = true; + } if(Math.random() > 0.97) { Tree tree = new Tree((int)x, (int)y); stuff.add(tree); add(tree); + } else if(Math.random() > 0.98) { + rocks = false; + Boulder tree = new Boulder((int)x, (int)y); + stuff.add(tree); + add(tree); } } @@ -116,6 +124,7 @@ public class Tile extends WorldObject implements IWorkable { Assets.flat.pushColor(color); camera.draw(Layers.TILES, Assets.defaultTerrain[tileSelector], x, y); Assets.flat.popColor(); + if(rocks) camera.draw(Layers.TILES, Assets.rocks, x, y); } if(tillLevel > 0f) { Assets.flat.pushColor(Vector4f.opacity(tillLevel)); diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/items/Boulder.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/items/Boulder.java new file mode 100644 index 0000000..4ec7bcc --- /dev/null +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/items/Boulder.java @@ -0,0 +1,47 @@ +package xyz.valnet.hadean.gameobjects.worldobjects.items; + +import xyz.valnet.hadean.util.Assets; +import xyz.valnet.hadean.util.Layers; +import xyz.valnet.hadean.util.detail.Detail; + +public class Boulder extends Item { + + public Boulder(int x, int y) { + this.x = x; + this.y = y; + } + + @Override + public boolean haulOnCreate() { + return false; + } + + @Override + public void render() { + camera.draw(Layers.GROUND, Assets.bigRock, x, y); + } + + @Override + public boolean isWalkable() { + return true; + } + + @Override + public boolean shouldRemove() { + return false; + } + + @Override + public void onRemove() {} + + @Override + public Detail[] getDetails() { + return new Detail[] {}; + } + + @Override + public String getName() { + return "Boulder"; + } + +}