From f4608463e0e1979c917d1b06539ed591dc258a01 Mon Sep 17 00:00:00 2001 From: Ivory Date: Thu, 2 Feb 2023 00:03:32 -0500 Subject: [PATCH] mild reorganizations --- bin/stats.js | 41 +++++++++++++ .../xyz/valnet/hadean/ItemDescriptor.java | 5 -- .../hadean/gameobjects/{ => jobs}/Job.java | 4 +- .../gameobjects/{ => jobs}/JobBoard.java | 5 +- .../gameobjects/{ => terrain}/Terrain.java | 3 +- .../gameobjects/{ => terrain}/Tile.java | 5 +- .../gameobjects/{ => ui}/BottomBar.java | 2 +- .../hadean/gameobjects/ui/HoverQuery.java | 3 +- .../gameobjects/{ => ui}/SelectionUI.java | 3 +- .../hadean/gameobjects/ui/tabs/BuildTab.java | 6 +- .../hadean/gameobjects/ui/tabs/DebugTab.java | 2 +- .../gameobjects/ui/tabs/JobBoardTab.java | 4 +- .../hadean/gameobjects/ui/tabs/Tab.java | 2 +- .../gameobjects/worldobjects/Buildable.java | 2 +- .../hadean/gameobjects/worldobjects/Rice.java | 61 ------------------- .../hadean/gameobjects/worldobjects/Tree.java | 6 +- .../gameobjects/worldobjects/WorldObject.java | 4 +- .../worldobjects/agents/Agent.java | 4 +- .../{ => agents}/pawn/Activity.java | 2 +- .../{ => agents}/pawn/JobActivity.java | 8 +-- .../worldobjects/{ => agents}/pawn/Needs.java | 2 +- .../worldobjects/{ => agents}/pawn/Pawn.java | 6 +- .../{ => agents}/pawn/SleepActivity.java | 2 +- .../{ => agents}/pawn/WanderActivity.java | 6 +- .../worldobjects/constructions/Bed.java | 4 +- .../constructions/Construction.java | 4 +- .../worldobjects/constructions/Quarry.java | 4 +- .../worldobjects/constructions/Wall.java | 6 +- .../gameobjects/worldobjects/items/Item.java | 6 +- .../worldobjects/{ => zones}/FarmPlot.java | 5 +- .../worldobjects/{ => zones}/Stockpile.java | 5 +- .../valnet/hadean/interfaces/ITileThing.java | 2 +- .../xyz/valnet/hadean/scenes/GameScene.java | 10 +-- .../java/xyz/valnet/hadean/util/Action.java | 31 ++++++++++ .../xyz/valnet/hadean/util/SmartBoolean.java | 41 ------------- 35 files changed, 137 insertions(+), 169 deletions(-) create mode 100755 bin/stats.js delete mode 100644 src/main/java/xyz/valnet/hadean/ItemDescriptor.java rename src/main/java/xyz/valnet/hadean/gameobjects/{ => jobs}/Job.java (97%) rename src/main/java/xyz/valnet/hadean/gameobjects/{ => jobs}/JobBoard.java (97%) rename src/main/java/xyz/valnet/hadean/gameobjects/{ => terrain}/Terrain.java (96%) rename src/main/java/xyz/valnet/hadean/gameobjects/{ => terrain}/Tile.java (97%) rename src/main/java/xyz/valnet/hadean/gameobjects/{ => ui}/BottomBar.java (97%) rename src/main/java/xyz/valnet/hadean/gameobjects/{ => ui}/SelectionUI.java (98%) delete mode 100644 src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Rice.java rename src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/{ => agents}/pawn/Activity.java (90%) rename src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/{ => agents}/pawn/JobActivity.java (94%) rename src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/{ => agents}/pawn/Needs.java (93%) rename src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/{ => agents}/pawn/Pawn.java (97%) rename src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/{ => agents}/pawn/SleepActivity.java (95%) rename src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/{ => agents}/pawn/WanderActivity.java (87%) rename src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/{ => zones}/FarmPlot.java (89%) rename src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/{ => zones}/Stockpile.java (91%) delete mode 100644 src/main/java/xyz/valnet/hadean/util/SmartBoolean.java diff --git a/bin/stats.js b/bin/stats.js new file mode 100755 index 0000000..e2a25a6 --- /dev/null +++ b/bin/stats.js @@ -0,0 +1,41 @@ +#!/usr/bin/env node + +const { readdirSync, readFileSync } = require('fs'); +const { resolve, parse, relative } = require('path'); + +const trimWhitespace = true; +const base = "./src"; + +let lines = 0; +let files = []; + +function processDir(path) { + const children = readdirSync(path, { + withFileTypes: true + }); + for(const entity of children) { + const { name } = entity + const full = resolve(path, name); + if(entity.isFile()) { + processFile(full); + } else if(entity.isDirectory()) { + processDir(full); + } + } +} + +function processFile(path) { + const parsed = parse(path); + const rel = relative(resolve(base), path) + const type = parsed.ext; + const text = readFileSync(path); + + console.log(path); +} + +function printStats() { + console.log("") +} + +processDir(base); +printStats(); \ No newline at end of file diff --git a/src/main/java/xyz/valnet/hadean/ItemDescriptor.java b/src/main/java/xyz/valnet/hadean/ItemDescriptor.java deleted file mode 100644 index 986c464..0000000 --- a/src/main/java/xyz/valnet/hadean/ItemDescriptor.java +++ /dev/null @@ -1,5 +0,0 @@ -package xyz.valnet.hadean; - -public class ItemDescriptor { - -} diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/Job.java b/src/main/java/xyz/valnet/hadean/gameobjects/jobs/Job.java similarity index 97% rename from src/main/java/xyz/valnet/hadean/gameobjects/Job.java rename to src/main/java/xyz/valnet/hadean/gameobjects/jobs/Job.java index f26ee67..d0e531d 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/Job.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/jobs/Job.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.gameobjects.jobs; import java.io.Serializable; import java.util.ArrayList; @@ -8,8 +8,8 @@ import java.util.Set; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.scenegraph.GameObject; -import xyz.valnet.hadean.gameobjects.worldobjects.Stockpile; import xyz.valnet.hadean.gameobjects.worldobjects.items.Item; +import xyz.valnet.hadean.gameobjects.worldobjects.zones.Stockpile; import xyz.valnet.hadean.interfaces.IItemPredicate; import xyz.valnet.hadean.interfaces.IItemReceiver; import xyz.valnet.hadean.interfaces.IWorkable; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/JobBoard.java b/src/main/java/xyz/valnet/hadean/gameobjects/jobs/JobBoard.java similarity index 97% rename from src/main/java/xyz/valnet/hadean/gameobjects/JobBoard.java rename to src/main/java/xyz/valnet/hadean/gameobjects/jobs/JobBoard.java index 44a69d2..66d3ebd 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/JobBoard.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/jobs/JobBoard.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.gameobjects.jobs; import java.util.ArrayList; import java.util.HashMap; @@ -13,7 +13,8 @@ import xyz.valnet.engine.graphics.Color; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.scenegraph.GameObject; import xyz.valnet.hadean.HadeanGame; -import xyz.valnet.hadean.gameobjects.worldobjects.pawn.Pawn; +import xyz.valnet.hadean.gameobjects.Camera; +import xyz.valnet.hadean.gameobjects.worldobjects.agents.pawn.Pawn; import xyz.valnet.hadean.interfaces.IItemPredicate; import xyz.valnet.hadean.interfaces.IItemReceiver; import xyz.valnet.hadean.interfaces.IWorkable; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/Terrain.java b/src/main/java/xyz/valnet/hadean/gameobjects/terrain/Terrain.java similarity index 96% rename from src/main/java/xyz/valnet/hadean/gameobjects/Terrain.java rename to src/main/java/xyz/valnet/hadean/gameobjects/terrain/Terrain.java index 2cd8e63..e794b93 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/Terrain.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/terrain/Terrain.java @@ -1,10 +1,11 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.gameobjects.terrain; import xyz.valnet.engine.math.Box; import xyz.valnet.engine.math.FastNoiseLite; 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.interfaces.IWorldBoundsAdapter; import xyz.valnet.hadean.pathfinding.IPathable; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/Tile.java b/src/main/java/xyz/valnet/hadean/gameobjects/terrain/Tile.java similarity index 97% rename from src/main/java/xyz/valnet/hadean/gameobjects/Tile.java rename to src/main/java/xyz/valnet/hadean/gameobjects/terrain/Tile.java index 2746d83..fcfc8ee 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/Tile.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/terrain/Tile.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.gameobjects.terrain; import java.util.ArrayList; import java.util.HashSet; @@ -9,11 +9,12 @@ import xyz.valnet.engine.graphics.Color; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.math.Vector4i; import xyz.valnet.engine.scenegraph.GameObject; -import xyz.valnet.hadean.gameobjects.worldobjects.FarmPlot; +import xyz.valnet.hadean.gameobjects.jobs.JobBoard; 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.gameobjects.worldobjects.zones.FarmPlot; import xyz.valnet.hadean.interfaces.IItemPredicate; import xyz.valnet.hadean.interfaces.IPingable; import xyz.valnet.hadean.interfaces.ITileThing; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/BottomBar.java b/src/main/java/xyz/valnet/hadean/gameobjects/ui/BottomBar.java similarity index 97% rename from src/main/java/xyz/valnet/hadean/gameobjects/BottomBar.java rename to src/main/java/xyz/valnet/hadean/gameobjects/ui/BottomBar.java index 8834128..e05d3a6 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/BottomBar.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/ui/BottomBar.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.gameobjects.ui; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/ui/HoverQuery.java b/src/main/java/xyz/valnet/hadean/gameobjects/ui/HoverQuery.java index 14f0733..5e8aa7e 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/ui/HoverQuery.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/ui/HoverQuery.java @@ -10,9 +10,8 @@ import xyz.valnet.engine.math.Vector4f; import xyz.valnet.engine.scenegraph.GameObject; import xyz.valnet.engine.scenegraph.ITransient; import xyz.valnet.hadean.HadeanGame; -import xyz.valnet.hadean.gameobjects.BottomBar; import xyz.valnet.hadean.gameobjects.Camera; -import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.terrain.Tile; import xyz.valnet.hadean.gameobjects.inputlayer.SelectionLayer; import xyz.valnet.hadean.gameobjects.worldobjects.WorldObject; import xyz.valnet.hadean.util.Assets; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/SelectionUI.java b/src/main/java/xyz/valnet/hadean/gameobjects/ui/SelectionUI.java similarity index 98% rename from src/main/java/xyz/valnet/hadean/gameobjects/SelectionUI.java rename to src/main/java/xyz/valnet/hadean/gameobjects/ui/SelectionUI.java index 4cdccf0..50ae5e4 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/SelectionUI.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/ui/SelectionUI.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects; +package xyz.valnet.hadean.gameobjects.ui; import static xyz.valnet.engine.util.Math.*; @@ -13,7 +13,6 @@ import xyz.valnet.engine.graphics.ImmediateUI; import xyz.valnet.engine.scenegraph.ITransient; import xyz.valnet.hadean.Constants; import xyz.valnet.hadean.gameobjects.inputlayer.SelectionLayer; -import xyz.valnet.hadean.gameobjects.ui.ExclusivityManager; import xyz.valnet.hadean.interfaces.ISelectable; import xyz.valnet.hadean.interfaces.ISelectionChangeListener; import xyz.valnet.hadean.util.Action; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/BuildTab.java b/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/BuildTab.java index 4d54b5a..3243463 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/BuildTab.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/BuildTab.java @@ -12,12 +12,12 @@ import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.scenegraph.GameObject; import xyz.valnet.hadean.designation.CutTreesDesignation; import xyz.valnet.hadean.designation.HaulItemDesignation; -import xyz.valnet.hadean.gameobjects.BottomBar; +import xyz.valnet.hadean.gameobjects.ui.BottomBar; import xyz.valnet.hadean.gameobjects.Camera; import xyz.valnet.hadean.gameobjects.inputlayer.BuildLayer; import xyz.valnet.hadean.gameobjects.inputlayer.SelectionLayer; -import xyz.valnet.hadean.gameobjects.worldobjects.FarmPlot; -import xyz.valnet.hadean.gameobjects.worldobjects.Stockpile; +import xyz.valnet.hadean.gameobjects.worldobjects.zones.FarmPlot; +import xyz.valnet.hadean.gameobjects.worldobjects.zones.Stockpile; import xyz.valnet.hadean.gameobjects.worldobjects.constructions.Bed; import xyz.valnet.hadean.gameobjects.worldobjects.constructions.Quarry; import xyz.valnet.hadean.gameobjects.worldobjects.constructions.Wall; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/DebugTab.java b/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/DebugTab.java index 3f82522..dbb4478 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/DebugTab.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/DebugTab.java @@ -5,7 +5,7 @@ import java.util.List; import xyz.valnet.engine.scenegraph.IKeyboardListener; import xyz.valnet.hadean.HadeanGame; -import xyz.valnet.hadean.gameobjects.BottomBar; +import xyz.valnet.hadean.gameobjects.ui.BottomBar; public class DebugTab extends Tab implements IKeyboardListener { diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/JobBoardTab.java b/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/JobBoardTab.java index f67a2e0..96f147f 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/JobBoardTab.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/JobBoardTab.java @@ -1,7 +1,7 @@ package xyz.valnet.hadean.gameobjects.ui.tabs; -import xyz.valnet.hadean.gameobjects.BottomBar; -import xyz.valnet.hadean.gameobjects.JobBoard; +import xyz.valnet.hadean.gameobjects.ui.BottomBar; +import xyz.valnet.hadean.gameobjects.jobs.JobBoard; public class JobBoardTab extends Tab { diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/Tab.java b/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/Tab.java index ca705b7..f9b483e 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/Tab.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/ui/tabs/Tab.java @@ -6,7 +6,7 @@ import xyz.valnet.engine.graphics.IModalUI; import xyz.valnet.engine.graphics.ImmediateUI; import xyz.valnet.engine.scenegraph.ITransient; import xyz.valnet.hadean.Constants; -import xyz.valnet.hadean.gameobjects.BottomBar; +import xyz.valnet.hadean.gameobjects.ui.BottomBar; import xyz.valnet.hadean.gameobjects.ui.ExclusivityManager; import xyz.valnet.hadean.interfaces.IBottomBarItem; import xyz.valnet.hadean.util.Layers; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Buildable.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Buildable.java index 009bc0e..0cad28c 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Buildable.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Buildable.java @@ -1,7 +1,7 @@ package xyz.valnet.hadean.gameobjects.worldobjects; import xyz.valnet.engine.math.Vector2i; -import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.terrain.Tile; import xyz.valnet.hadean.interfaces.IBuildable; import xyz.valnet.hadean.interfaces.ISelectable; import xyz.valnet.hadean.interfaces.ITileThing; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Rice.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Rice.java deleted file mode 100644 index 491bbe3..0000000 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Rice.java +++ /dev/null @@ -1,61 +0,0 @@ -package xyz.valnet.hadean.gameobjects.worldobjects; - -import xyz.valnet.engine.graphics.Color; -import xyz.valnet.engine.math.Vector2i; -import xyz.valnet.hadean.gameobjects.worldobjects.items.Item; -import xyz.valnet.hadean.util.Action; -import xyz.valnet.hadean.util.Assets; -import xyz.valnet.hadean.util.Layers; -import xyz.valnet.hadean.util.detail.Detail; - -public class Rice extends Item { - - - public Rice(int x, int y) { - setPosition(x, y); - } - - @Override - public void render() { - Vector2i pos = getWorldPosition().xy(); - camera.draw(Layers.AIR, Assets.riceBag, pos.x, pos.y); - - Assets.flat.pushColor(Color.black); - Vector2i screeCoords = camera.world2screen(pos.x, pos.y); - Assets.miniFont.drawString("123", (int)screeCoords.x, (int)screeCoords.y); - Assets.flat.popColor(); - } - - @Override - public boolean isWalkable() { - return true; - } - - @Override - public boolean shouldRemove() { - return false; - } - - @Override - public void onRemove() {} - - @Override - public Action[] getActions() { - return new Action[] {}; - } - - @Override - public void runAction(Action action) { - } - - @Override - public Detail[] getDetails() { - return new Detail[] {}; - } - - @Override - public String getName() { - return "Rice"; - } - -} diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Tree.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Tree.java index 7530796..9044c40 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Tree.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Tree.java @@ -2,9 +2,9 @@ package xyz.valnet.hadean.gameobjects.worldobjects; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.math.Vector4f; -import xyz.valnet.hadean.gameobjects.Job; -import xyz.valnet.hadean.gameobjects.JobBoard; -import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.jobs.Job; +import xyz.valnet.hadean.gameobjects.jobs.JobBoard; +import xyz.valnet.hadean.gameobjects.terrain.Tile; import xyz.valnet.hadean.gameobjects.worldobjects.items.Log; import xyz.valnet.hadean.interfaces.ISelectable; import xyz.valnet.hadean.interfaces.ITileThing; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/WorldObject.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/WorldObject.java index e3d2ddb..2dc8203 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/WorldObject.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/WorldObject.java @@ -8,8 +8,8 @@ import xyz.valnet.engine.math.Vector4f; import xyz.valnet.engine.math.Vector4i; import xyz.valnet.engine.scenegraph.GameObject; import xyz.valnet.hadean.gameobjects.Camera; -import xyz.valnet.hadean.gameobjects.Terrain; -import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.terrain.Terrain; +import xyz.valnet.hadean.gameobjects.terrain.Tile; import xyz.valnet.hadean.interfaces.ITileThing; public abstract class WorldObject extends GameObject { diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/Agent.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/Agent.java index 31f2b29..196e047 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/Agent.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/Agent.java @@ -12,8 +12,8 @@ import xyz.valnet.engine.math.Vector2f; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.shaders.SimpleShader; import xyz.valnet.hadean.HadeanGame; -import xyz.valnet.hadean.gameobjects.Terrain; -import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.terrain.Terrain; +import xyz.valnet.hadean.gameobjects.terrain.Tile; import xyz.valnet.hadean.gameobjects.worldobjects.WorldObject; import xyz.valnet.hadean.interfaces.ISelectable; import xyz.valnet.hadean.pathfinding.AStarPathfinder; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/Activity.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/Activity.java similarity index 90% rename from src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/Activity.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/Activity.java index 7133b3f..0d80994 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/Activity.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/Activity.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects.worldobjects.pawn; +package xyz.valnet.hadean.gameobjects.worldobjects.agents.pawn; import java.io.Serializable; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/JobActivity.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/JobActivity.java similarity index 94% rename from src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/JobActivity.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/JobActivity.java index 17b47e0..d05899d 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/JobActivity.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/JobActivity.java @@ -1,9 +1,9 @@ -package xyz.valnet.hadean.gameobjects.worldobjects.pawn; +package xyz.valnet.hadean.gameobjects.worldobjects.agents.pawn; import xyz.valnet.engine.math.Vector2i; -import xyz.valnet.hadean.gameobjects.Job; -import xyz.valnet.hadean.gameobjects.Job.JobStep; -import xyz.valnet.hadean.gameobjects.JobBoard; +import xyz.valnet.hadean.gameobjects.jobs.Job; +import xyz.valnet.hadean.gameobjects.jobs.Job.JobStep; +import xyz.valnet.hadean.gameobjects.jobs.JobBoard; public class JobActivity extends Activity { diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/Needs.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/Needs.java similarity index 93% rename from src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/Needs.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/Needs.java index 16cf3cc..e47500c 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/Needs.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/Needs.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects.worldobjects.pawn; +package xyz.valnet.hadean.gameobjects.worldobjects.agents.pawn; import java.io.Serializable; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/Pawn.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/Pawn.java similarity index 97% rename from src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/Pawn.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/Pawn.java index 644ea43..703fee6 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/Pawn.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/Pawn.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects.worldobjects.pawn; +package xyz.valnet.hadean.gameobjects.worldobjects.agents.pawn; import static xyz.valnet.hadean.util.detail.Detail.*; @@ -12,8 +12,8 @@ import xyz.valnet.engine.math.Vector4f; import xyz.valnet.engine.util.Names; import xyz.valnet.hadean.HadeanGame; import xyz.valnet.hadean.gameobjects.Clock; -import xyz.valnet.hadean.gameobjects.JobBoard; -import xyz.valnet.hadean.gameobjects.Terrain; +import xyz.valnet.hadean.gameobjects.jobs.JobBoard; +import xyz.valnet.hadean.gameobjects.terrain.Terrain; import xyz.valnet.hadean.gameobjects.worldobjects.agents.Agent; import xyz.valnet.hadean.gameobjects.worldobjects.items.Item; import xyz.valnet.hadean.interfaces.IItemPredicate; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/SleepActivity.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/SleepActivity.java similarity index 95% rename from src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/SleepActivity.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/SleepActivity.java index 166a511..71d607b 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/SleepActivity.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/SleepActivity.java @@ -1,4 +1,4 @@ -package xyz.valnet.hadean.gameobjects.worldobjects.pawn; +package xyz.valnet.hadean.gameobjects.worldobjects.agents.pawn; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.util.Math.WeightedAverage; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/WanderActivity.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/WanderActivity.java similarity index 87% rename from src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/WanderActivity.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/WanderActivity.java index f1fc154..c340b27 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/pawn/WanderActivity.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/agents/pawn/WanderActivity.java @@ -1,8 +1,8 @@ -package xyz.valnet.hadean.gameobjects.worldobjects.pawn; +package xyz.valnet.hadean.gameobjects.worldobjects.agents.pawn; import xyz.valnet.engine.math.Vector2i; -import xyz.valnet.hadean.gameobjects.Terrain; -import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.terrain.Terrain; +import xyz.valnet.hadean.gameobjects.terrain.Tile; // TODO actually implement this activity. public class WanderActivity extends Activity { diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Bed.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Bed.java index ac14300..2cc834a 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Bed.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Bed.java @@ -2,8 +2,8 @@ package xyz.valnet.hadean.gameobjects.worldobjects.constructions; import xyz.valnet.engine.graphics.Color; import xyz.valnet.engine.math.Vector2i; -import xyz.valnet.hadean.gameobjects.Job; -import xyz.valnet.hadean.gameobjects.JobBoard; +import xyz.valnet.hadean.gameobjects.jobs.Job; +import xyz.valnet.hadean.gameobjects.jobs.JobBoard; import xyz.valnet.hadean.gameobjects.worldobjects.Buildable; import xyz.valnet.hadean.gameobjects.worldobjects.items.Item; import xyz.valnet.hadean.gameobjects.worldobjects.items.Log; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Construction.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Construction.java index 17a70af..4f6a3d5 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Construction.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Construction.java @@ -4,8 +4,8 @@ import java.util.ArrayList; import java.util.List; import xyz.valnet.engine.math.Vector2i; -import xyz.valnet.hadean.gameobjects.Job; -import xyz.valnet.hadean.gameobjects.JobBoard; +import xyz.valnet.hadean.gameobjects.jobs.Job; +import xyz.valnet.hadean.gameobjects.jobs.JobBoard; import xyz.valnet.hadean.gameobjects.worldobjects.Buildable; import xyz.valnet.hadean.gameobjects.worldobjects.items.Boulder; import xyz.valnet.hadean.gameobjects.worldobjects.items.Item; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Quarry.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Quarry.java index 7989a0f..fdbd5cf 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Quarry.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Quarry.java @@ -2,8 +2,8 @@ package xyz.valnet.hadean.gameobjects.worldobjects.constructions; import xyz.valnet.engine.graphics.Color; import xyz.valnet.engine.math.Vector2i; -import xyz.valnet.hadean.gameobjects.Job; -import xyz.valnet.hadean.gameobjects.JobBoard; +import xyz.valnet.hadean.gameobjects.jobs.Job; +import xyz.valnet.hadean.gameobjects.jobs.JobBoard; import xyz.valnet.hadean.gameobjects.worldobjects.items.Boulder; import xyz.valnet.hadean.interfaces.BuildableMetadata; import xyz.valnet.hadean.interfaces.IItemPredicate; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Wall.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Wall.java index 25dc9c8..a1638cd 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Wall.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/constructions/Wall.java @@ -6,9 +6,9 @@ import xyz.valnet.engine.graphics.Color; import xyz.valnet.engine.graphics.Tile16.Direction; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.hadean.HadeanGame; -import xyz.valnet.hadean.gameobjects.Job; -import xyz.valnet.hadean.gameobjects.JobBoard; -import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.jobs.Job; +import xyz.valnet.hadean.gameobjects.jobs.JobBoard; +import xyz.valnet.hadean.gameobjects.terrain.Tile; import xyz.valnet.hadean.gameobjects.worldobjects.Buildable; import xyz.valnet.hadean.gameobjects.worldobjects.items.Boulder; import xyz.valnet.hadean.gameobjects.worldobjects.items.Item; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/items/Item.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/items/Item.java index c979196..06d9da3 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/items/Item.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/items/Item.java @@ -2,9 +2,9 @@ package xyz.valnet.hadean.gameobjects.worldobjects.items; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.math.Vector4i; -import xyz.valnet.hadean.gameobjects.Job; -import xyz.valnet.hadean.gameobjects.JobBoard; -import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.jobs.Job; +import xyz.valnet.hadean.gameobjects.jobs.JobBoard; +import xyz.valnet.hadean.gameobjects.terrain.Tile; import xyz.valnet.hadean.gameobjects.worldobjects.WorldObject; import xyz.valnet.hadean.interfaces.IItemPredicate; import xyz.valnet.hadean.interfaces.ISelectable; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/FarmPlot.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/zones/FarmPlot.java similarity index 89% rename from src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/FarmPlot.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/zones/FarmPlot.java index d2f1245..e14360a 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/FarmPlot.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/zones/FarmPlot.java @@ -1,8 +1,9 @@ -package xyz.valnet.hadean.gameobjects.worldobjects; +package xyz.valnet.hadean.gameobjects.worldobjects.zones; import xyz.valnet.engine.graphics.Color; import xyz.valnet.engine.math.Vector4i; -import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.terrain.Tile; +import xyz.valnet.hadean.gameobjects.worldobjects.Buildable; import xyz.valnet.hadean.interfaces.BuildableMetadata; import xyz.valnet.hadean.util.Action; import xyz.valnet.hadean.util.Assets; diff --git a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Stockpile.java b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/zones/Stockpile.java similarity index 91% rename from src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Stockpile.java rename to src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/zones/Stockpile.java index dec3f8a..678e1b5 100644 --- a/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/Stockpile.java +++ b/src/main/java/xyz/valnet/hadean/gameobjects/worldobjects/zones/Stockpile.java @@ -1,11 +1,12 @@ -package xyz.valnet.hadean.gameobjects.worldobjects; +package xyz.valnet.hadean.gameobjects.worldobjects.zones; import java.util.Set; import xyz.valnet.engine.graphics.Color; import xyz.valnet.engine.math.Vector2i; import xyz.valnet.engine.math.Vector4i; -import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.terrain.Tile; +import xyz.valnet.hadean.gameobjects.worldobjects.Buildable; import xyz.valnet.hadean.interfaces.BuildableMetadata; import xyz.valnet.hadean.interfaces.ISelectable; import xyz.valnet.hadean.util.Action; diff --git a/src/main/java/xyz/valnet/hadean/interfaces/ITileThing.java b/src/main/java/xyz/valnet/hadean/interfaces/ITileThing.java index 5a5429a..def25ce 100644 --- a/src/main/java/xyz/valnet/hadean/interfaces/ITileThing.java +++ b/src/main/java/xyz/valnet/hadean/interfaces/ITileThing.java @@ -1,6 +1,6 @@ package xyz.valnet.hadean.interfaces; -import xyz.valnet.hadean.gameobjects.Tile; +import xyz.valnet.hadean.gameobjects.terrain.Tile; public interface ITileThing { public boolean isWalkable(); diff --git a/src/main/java/xyz/valnet/hadean/scenes/GameScene.java b/src/main/java/xyz/valnet/hadean/scenes/GameScene.java index b65f14d..bef4735 100644 --- a/src/main/java/xyz/valnet/hadean/scenes/GameScene.java +++ b/src/main/java/xyz/valnet/hadean/scenes/GameScene.java @@ -2,12 +2,12 @@ package xyz.valnet.hadean.scenes; import xyz.valnet.engine.scenegraph.SceneGraph; import xyz.valnet.engine.util.Names; -import xyz.valnet.hadean.gameobjects.BottomBar; +import xyz.valnet.hadean.gameobjects.ui.BottomBar; import xyz.valnet.hadean.gameobjects.Camera; import xyz.valnet.hadean.gameobjects.Clock; -import xyz.valnet.hadean.gameobjects.JobBoard; -import xyz.valnet.hadean.gameobjects.SelectionUI; -import xyz.valnet.hadean.gameobjects.Terrain; +import xyz.valnet.hadean.gameobjects.jobs.JobBoard; +import xyz.valnet.hadean.gameobjects.ui.SelectionUI; +import xyz.valnet.hadean.gameobjects.terrain.Terrain; import xyz.valnet.hadean.gameobjects.inputlayer.BuildLayer; import xyz.valnet.hadean.gameobjects.inputlayer.SelectionLayer; import xyz.valnet.hadean.gameobjects.ui.ExclusivityManager; @@ -16,7 +16,7 @@ import xyz.valnet.hadean.gameobjects.ui.tabs.BuildTab; import xyz.valnet.hadean.gameobjects.ui.tabs.DebugTab; import xyz.valnet.hadean.gameobjects.ui.tabs.JobBoardTab; import xyz.valnet.hadean.gameobjects.ui.tabs.MenuTab; -import xyz.valnet.hadean.gameobjects.worldobjects.pawn.Pawn; +import xyz.valnet.hadean.gameobjects.worldobjects.agents.pawn.Pawn; // TODO BIG IDEAS // have caches of types that ill need (Like IMouseListener) diff --git a/src/main/java/xyz/valnet/hadean/util/Action.java b/src/main/java/xyz/valnet/hadean/util/Action.java index fd4a44d..436af16 100644 --- a/src/main/java/xyz/valnet/hadean/util/Action.java +++ b/src/main/java/xyz/valnet/hadean/util/Action.java @@ -6,4 +6,35 @@ public class Action { public Action(String name) { this.name = name; } + + public static Action[] mergeActions(Action[] a, Action[] b) { + Action[] c = new Action[a.length + b.length]; + System.arraycopy(a, 0, c, 0, a.length); + System.arraycopy(b, 0, c, a.length, b.length); + return c; + } + + public static Action[] mergeActions(Action[] a, Action[] b, Action[] c) { + Action[] d = new Action[a.length + b.length + c.length]; + System.arraycopy(a, 0, d, 0, a.length); + System.arraycopy(b, 0, d, a.length, b.length); + System.arraycopy(c, 0, d, a.length + b.length, c.length); + return c; + } + + public static Action[] mergeActions(Action[] ... args) { + if(args.length == 1) return new Action[0]; + if(args.length == 1) return args[0]; + if(args.length == 2) return mergeActions(args[0], args[1]); + if(args.length == 3) return mergeActions(args[0], args[1], args[2]); + + Action[][] merge = new Action[3][]; + Action[][] rest = new Action[args.length - 3][]; + System.arraycopy(args, 0, merge, 0, 3); + System.arraycopy(args, 3, rest, 0, rest.length); + + Action[] first = mergeActions(merge); + Action[] merged = mergeActions(rest); + return mergeActions(first, merged); + } } diff --git a/src/main/java/xyz/valnet/hadean/util/SmartBoolean.java b/src/main/java/xyz/valnet/hadean/util/SmartBoolean.java deleted file mode 100644 index cee661e..0000000 --- a/src/main/java/xyz/valnet/hadean/util/SmartBoolean.java +++ /dev/null @@ -1,41 +0,0 @@ -package xyz.valnet.hadean.util; - -import java.io.Serializable; - -public class SmartBoolean implements Serializable { - private boolean value; - - public interface IListener extends Serializable { - public default void rise() {} - public default void fall() {} - public default void changed() {} - } - - private IListener isbl; - - public SmartBoolean(boolean v, IListener isbl) { - value = v; - this.isbl = isbl; - } - - public void set(boolean b) { - if(value != b) { - value = b; - isbl.changed(); - if(b) { - isbl.rise(); - } else { - isbl.fall(); - } - } - } - - public void toggle() { - set(!value); - } - - public boolean value() { - return value; - } - -}