diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/BottomBar.java b/src/main/java/xyz/valnet/hadean/gameobjects/BottomBar.java index 2223e8c..769644b 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/BottomBar.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/BottomBar.java @@ -6,10 +6,11 @@ import java.util.List; import java.util.Map; import xyz.valnet.engine.scenegraph.GameObject; -import xyz.valnet.hadean.Layers; import xyz.valnet.hadean.input.Button; import xyz.valnet.hadean.input.IButtonListener; import xyz.valnet.hadean.input.SimpleButton; +import xyz.valnet.hadean.interfaces.IBottomBarItem; +import xyz.valnet.hadean.util.Layers; public class BottomBar extends GameObject implements IButtonListener { public static final int bottomBarHeight = 32; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/IHaulable.java b/src/main/java/xyz/valnet/hadean/gameobjects/IHaulable.java deleted file mode 100644 index 0225013..0000000 --- a/src/main/java/xyz/valnet/hadean/gameobjects/IHaulable.java +++ /dev/null @@ -1,8 +0,0 @@ -package xyz.valnet.hadean.gameobjects; - -import xyz.valnet.hadean.Tile; - -public interface IHaulable extends IJob { - public Log take(); - public Tile getDestination(); -} diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/Selection.java b/src/main/java/xyz/valnet/hadean/gameobjects/Selection.java index b9773d6..5ac3db1 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/Selection.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/Selection.java @@ -9,8 +9,10 @@ import xyz.valnet.engine.math.Vector2f; import xyz.valnet.engine.math.Vector4f; import xyz.valnet.engine.scenegraph.GameObject; import xyz.valnet.engine.scenegraph.IMouseCaptureArea; -import xyz.valnet.hadean.Layers; +import xyz.valnet.hadean.interfaces.ISelectable; +import xyz.valnet.hadean.interfaces.ISelectionChangeListener; import xyz.valnet.hadean.util.Assets; +import xyz.valnet.hadean.util.Layers; import static xyz.valnet.engine.util.Math.lerp; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/SelectionUI.java b/src/main/java/xyz/valnet/hadean/gameobjects/SelectionUI.java index 08991bf..f3209d1 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/SelectionUI.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/SelectionUI.java @@ -7,12 +7,14 @@ import java.util.List; import xyz.valnet.engine.math.Vector4f; import xyz.valnet.engine.scenegraph.GameObject; import xyz.valnet.engine.scenegraph.IMouseCaptureArea; -import xyz.valnet.hadean.Layers; import xyz.valnet.hadean.input.Button; import xyz.valnet.hadean.input.IButtonListener; import xyz.valnet.hadean.input.SimpleButton; +import xyz.valnet.hadean.interfaces.ISelectable; +import xyz.valnet.hadean.interfaces.ISelectionChangeListener; import xyz.valnet.hadean.util.Action; import xyz.valnet.hadean.util.Assets; +import xyz.valnet.hadean.util.Layers; public class SelectionUI extends GameObject implements ISelectionChangeListener, IButtonListener, IMouseCaptureArea { diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/Stockpile.java b/src/main/java/xyz/valnet/hadean/gameobjects/Stockpile.java index c15a1bf..58e2eb5 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/Stockpile.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/Stockpile.java @@ -2,10 +2,12 @@ package xyz.valnet.hadean.gameobjects; import xyz.valnet.engine.graphics.Drawing; import xyz.valnet.engine.math.Vector4f; -import xyz.valnet.hadean.Layers; -import xyz.valnet.hadean.Tile; +import xyz.valnet.hadean.gameobjects.worldobjects.WorldObject; +import xyz.valnet.hadean.interfaces.ISelectable; +import xyz.valnet.hadean.interfaces.ITileThing; import xyz.valnet.hadean.util.Action; import xyz.valnet.hadean.util.Assets; +import xyz.valnet.hadean.util.Layers; public class Stockpile extends WorldObject implements ITileThing, ISelectable { @@ -54,10 +56,6 @@ public class Stockpile extends WorldObject implements ITileThing, ISelectable { return ""; } - public Tile getTile() { - return terrain.getTile((int)x, (int)y); - } - @Override public void updatePosition(int x, int y) { this.x = x; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/Terrain.java b/src/main/java/xyz/valnet/hadean/gameobjects/Terrain.java index edad605..fd42da6 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/Terrain.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/Terrain.java @@ -2,7 +2,6 @@ package xyz.valnet.hadean.gameobjects; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.scenegraph.GameObject; -import xyz.valnet.hadean.Tile; import xyz.valnet.hadean.pathfinding.IPathable; public class Terrain extends GameObject implements IPathable { diff --git a/src/main/java/xyz/valnet/hadean/Tile.java b/src/main/java/xyz/valnet/hadean/gameobjects/Tile.java similarity index 89% rename from src/main/java/xyz/valnet/hadean/Tile.java rename to src/main/java/xyz/valnet/hadean/gameobjects/Tile.java index 8d2611a..d645b29 100644 --- a/src/main/java/xyz/valnet/hadean/Tile.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/Tile.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean; +package xyz.valnet.hadean.gameobjects; import java.util.ArrayList; import java.util.List; @@ -8,13 +8,12 @@ import xyz.valnet.engine.graphics.Sprite; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.math.Vector4f; import xyz.valnet.engine.scenegraph.GameObject; -import xyz.valnet.hadean.gameobjects.Camera; -import xyz.valnet.hadean.gameobjects.ITileThing; -import xyz.valnet.hadean.gameobjects.Log; -import xyz.valnet.hadean.gameobjects.Tree; +import xyz.valnet.hadean.gameobjects.worldobjects.Log; +import xyz.valnet.hadean.gameobjects.worldobjects.Tree; +import xyz.valnet.hadean.interfaces.ITileThing; import xyz.valnet.hadean.util.Assets; +import xyz.valnet.hadean.util.Layers; -// TODO make these tiles REAL gameobjects... public class Tile extends GameObject { private Camera camera; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/tabs/ArchitectTab.java b/src/main/java/xyz/valnet/hadean/gameobjects/tabs/ArchitectTab.java index 0698d3f..b2b082a 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/tabs/ArchitectTab.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/tabs/ArchitectTab.java @@ -4,9 +4,9 @@ import java.util.ArrayList; import java.util.List; import xyz.valnet.hadean.gameobjects.BottomBar; -import xyz.valnet.hadean.gameobjects.ISelectable; -import xyz.valnet.hadean.gameobjects.ISelectionChangeListener; import xyz.valnet.hadean.gameobjects.Selection; +import xyz.valnet.hadean.interfaces.ISelectable; +import xyz.valnet.hadean.interfaces.ISelectionChangeListener; import xyz.valnet.hadean.util.Assets; import static xyz.valnet.engine.util.Math.lerp; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/tabs/Tab.java b/src/main/java/xyz/valnet/hadean/gameobjects/tabs/Tab.java index e268c5d..ff481f6 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/tabs/Tab.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/tabs/Tab.java @@ -2,7 +2,7 @@ package xyz.valnet.hadean.gameobjects.tabs; import xyz.valnet.engine.scenegraph.GameObject; import xyz.valnet.hadean.gameobjects.BottomBar; -import xyz.valnet.hadean.gameobjects.IBottomBarItem; +import xyz.valnet.hadean.interfaces.IBottomBarItem; public abstract class Tab extends GameObject implements IBottomBarItem { diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/Log.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Log.java similarity index 85% rename from src/main/java/xyz/valnet/hadean/gameobjects/Log.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Log.java index ce52da7..06dceaf 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/Log.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Log.java @@ -1,12 +1,16 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.gameobjects.worldobjects; import xyz.valnet.engine.graphics.Drawing; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.math.Vector4f; -import xyz.valnet.hadean.Layers; -import xyz.valnet.hadean.Tile; +import xyz.valnet.hadean.gameobjects.Stockpile; +import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.interfaces.IHaulable; +import xyz.valnet.hadean.interfaces.ISelectable; +import xyz.valnet.hadean.interfaces.ITileThing; import xyz.valnet.hadean.util.Action; import xyz.valnet.hadean.util.Assets; +import xyz.valnet.hadean.util.Layers; public class Log extends WorldObject implements ITileThing, ISelectable, IHaulable { diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/Pawn.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Pawn.java similarity index 95% rename from src/main/java/xyz/valnet/hadean/gameobjects/Pawn.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Pawn.java index df9f0e8..dbc0a06 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/Pawn.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Pawn.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.gameobjects.worldobjects; import static org.lwjgl.opengl.GL11.GL_LINES; import static org.lwjgl.opengl.GL11.glBegin; @@ -15,7 +15,14 @@ import xyz.valnet.engine.math.Vector2f; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.math.Vector4f; import xyz.valnet.engine.shaders.SimpleShader; -import xyz.valnet.hadean.Tile; +import xyz.valnet.hadean.gameobjects.Camera; +import xyz.valnet.hadean.gameobjects.Terrain; +import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.interfaces.IHaulable; +import xyz.valnet.hadean.interfaces.IJob; +import xyz.valnet.hadean.interfaces.ISelectable; +import xyz.valnet.hadean.interfaces.ITileThing; +import xyz.valnet.hadean.interfaces.IWorkable; import xyz.valnet.hadean.pathfinding.AStarPathfinder; import xyz.valnet.hadean.pathfinding.IPathfinder; import xyz.valnet.hadean.pathfinding.Node; @@ -164,10 +171,6 @@ public class Pawn extends WorldObject implements ISelectable { } - private Tile getTile() { - return terrain.getTile((int) x, (int) y); - } - private Vector2i getCurrentPos() { return new Vector2i((int)Math.floor(x), (int)Math.floor(y)); } diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/Tree.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Tree.java similarity index 91% rename from src/main/java/xyz/valnet/hadean/gameobjects/Tree.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Tree.java index 4a84014..c535f4b 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/Tree.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Tree.java @@ -1,11 +1,14 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.gameobjects.worldobjects; import xyz.valnet.engine.graphics.Drawing; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.math.Vector4f; -import xyz.valnet.hadean.Layers; +import xyz.valnet.hadean.interfaces.ISelectable; +import xyz.valnet.hadean.interfaces.ITileThing; +import xyz.valnet.hadean.interfaces.IWorkable; import xyz.valnet.hadean.util.Action; import xyz.valnet.hadean.util.Assets; +import xyz.valnet.hadean.util.Layers; public class Tree extends WorldObject implements ITileThing, ISelectable, IWorkable { diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/WorldObject.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/WorldObject.java similarity index 54% rename from src/main/java/xyz/valnet/hadean/gameobjects/WorldObject.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/WorldObject.java index 287fd3d..a0d97e7 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/WorldObject.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/WorldObject.java @@ -1,6 +1,9 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.gameobjects.worldobjects; import xyz.valnet.engine.scenegraph.GameObject; +import xyz.valnet.hadean.gameobjects.Camera; +import xyz.valnet.hadean.gameobjects.Terrain; +import xyz.valnet.hadean.gameobjects.Tile; public class WorldObject extends GameObject { @@ -16,4 +19,8 @@ public class WorldObject extends GameObject { terrain = get(Terrain.class); } + public Tile getTile() { + return terrain.getTile((int)x, (int)y); + } + } diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/IBottomBarItem.java b/src/main/java/xyz/valnet/hadean/interfaces/IBottomBarItem.java similarity index 70% rename from src/main/java/xyz/valnet/hadean/gameobjects/IBottomBarItem.java rename to src/main/java/xyz/valnet/hadean/interfaces/IBottomBarItem.java index 7914826..cabcab3 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/IBottomBarItem.java +++ b/src/main/java/xyz/valnet/hadean/interfaces/IBottomBarItem.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.interfaces; public interface IBottomBarItem { public void evoke(); diff --git a/src/main/java/xyz/valnet/hadean/interfaces/IHaulable.java b/src/main/java/xyz/valnet/hadean/interfaces/IHaulable.java new file mode 100644 index 0000000..fd7ad45 --- /dev/null +++ b/src/main/java/xyz/valnet/hadean/interfaces/IHaulable.java @@ -0,0 +1,9 @@ +package xyz.valnet.hadean.interfaces; + +import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.worldobjects.Log; + +public interface IHaulable extends IJob { + public Log take(); + public Tile getDestination(); +} diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/IJob.java b/src/main/java/xyz/valnet/hadean/interfaces/IJob.java similarity index 81% rename from src/main/java/xyz/valnet/hadean/gameobjects/IJob.java rename to src/main/java/xyz/valnet/hadean/interfaces/IJob.java index 478a817..0c4c9d9 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/IJob.java +++ b/src/main/java/xyz/valnet/hadean/interfaces/IJob.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.interfaces; import xyz.valnet.engine.math.Vector2i; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/ISelectable.java b/src/main/java/xyz/valnet/hadean/interfaces/ISelectable.java similarity index 87% rename from src/main/java/xyz/valnet/hadean/gameobjects/ISelectable.java rename to src/main/java/xyz/valnet/hadean/interfaces/ISelectable.java index 47107d0..b0ab7b3 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/ISelectable.java +++ b/src/main/java/xyz/valnet/hadean/interfaces/ISelectable.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.interfaces; import xyz.valnet.engine.math.Vector4f; import xyz.valnet.hadean.util.Action; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/ISelectionChangeListener.java b/src/main/java/xyz/valnet/hadean/interfaces/ISelectionChangeListener.java similarity index 77% rename from src/main/java/xyz/valnet/hadean/gameobjects/ISelectionChangeListener.java rename to src/main/java/xyz/valnet/hadean/interfaces/ISelectionChangeListener.java index 352fb95..ef3ad60 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/ISelectionChangeListener.java +++ b/src/main/java/xyz/valnet/hadean/interfaces/ISelectionChangeListener.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.interfaces; import java.util.List; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/ITileThing.java b/src/main/java/xyz/valnet/hadean/interfaces/ITileThing.java similarity index 81% rename from src/main/java/xyz/valnet/hadean/gameobjects/ITileThing.java rename to src/main/java/xyz/valnet/hadean/interfaces/ITileThing.java index 209c472..fa9d30d 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/ITileThing.java +++ b/src/main/java/xyz/valnet/hadean/interfaces/ITileThing.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.interfaces; public interface ITileThing { public boolean isWalkable(); diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/IWorkable.java b/src/main/java/xyz/valnet/hadean/interfaces/IWorkable.java similarity index 63% rename from src/main/java/xyz/valnet/hadean/gameobjects/IWorkable.java rename to src/main/java/xyz/valnet/hadean/interfaces/IWorkable.java index ccbf0e3..37954a6 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/IWorkable.java +++ b/src/main/java/xyz/valnet/hadean/interfaces/IWorkable.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.interfaces; public interface IWorkable extends IJob { public void doWork(); diff --git a/src/main/java/xyz/valnet/hadean/scenes/GameScene.java b/src/main/java/xyz/valnet/hadean/scenes/GameScene.java index 8be2b20..52de5b8 100644 --- a/src/main/java/xyz/valnet/hadean/scenes/GameScene.java +++ b/src/main/java/xyz/valnet/hadean/scenes/GameScene.java @@ -1,22 +1,14 @@ package xyz.valnet.hadean.scenes; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; - -import xyz.valnet.engine.App; -import xyz.valnet.engine.scenegraph.GameObject; -import xyz.valnet.engine.scenegraph.IMouseCaptureArea; -import xyz.valnet.engine.scenegraph.IScene; import xyz.valnet.engine.scenegraph.SceneGraph; import xyz.valnet.hadean.gameobjects.BottomBar; import xyz.valnet.hadean.gameobjects.Camera; -import xyz.valnet.hadean.gameobjects.Pawn; import xyz.valnet.hadean.gameobjects.Selection; import xyz.valnet.hadean.gameobjects.SelectionUI; import xyz.valnet.hadean.gameobjects.Terrain; import xyz.valnet.hadean.gameobjects.tabs.ArchitectTab; import xyz.valnet.hadean.gameobjects.tabs.MenuTab; +import xyz.valnet.hadean.gameobjects.worldobjects.Pawn; // TODO BIG IDEAS // have caches of types that ill need (Like IMouseListener) @@ -33,14 +25,15 @@ public class GameScene extends SceneGraph { protected void construct() { objects.add(new Terrain()); + objects.add(new Camera()); for(int i = 0; i < 5; i ++) { objects.add(new Pawn()); } - objects.add(new Camera()); objects.add(new Selection()); objects.add(new SelectionUI()); + objects.add(new BottomBar()); objects.add(new ArchitectTab()); objects.add(new MenuTab()); diff --git a/src/main/java/xyz/valnet/hadean/scenes/MenuScene.java b/src/main/java/xyz/valnet/hadean/scenes/MenuScene.java index 797d0ae..1f9f699 100644 --- a/src/main/java/xyz/valnet/hadean/scenes/MenuScene.java +++ b/src/main/java/xyz/valnet/hadean/scenes/MenuScene.java @@ -3,10 +3,10 @@ package xyz.valnet.hadean.scenes; import xyz.valnet.engine.App; import xyz.valnet.engine.math.Vector4f; import xyz.valnet.engine.scenegraph.IScene; -import xyz.valnet.hadean.Layers; import xyz.valnet.hadean.input.Button; import xyz.valnet.hadean.input.IButtonListener; import xyz.valnet.hadean.util.Assets; +import xyz.valnet.hadean.util.Layers; import static xyz.valnet.hadean.HadeanGame.Hadean; diff --git a/src/main/java/xyz/valnet/hadean/Layers.java b/src/main/java/xyz/valnet/hadean/util/Layers.java similarity index 95% rename from src/main/java/xyz/valnet/hadean/Layers.java rename to src/main/java/xyz/valnet/hadean/util/Layers.java index e1953c2..56b16c4 100644 --- a/src/main/java/xyz/valnet/hadean/Layers.java +++ b/src/main/java/xyz/valnet/hadean/util/Layers.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean; +package xyz.valnet.hadean.util; public class Layers { private static int current = 0;