mild reorganizations

stable
Ivory 2023-02-02 00:03:32 -05:00
parent 93b2788c58
commit f4608463e0
35 changed files with 137 additions and 169 deletions

41
bin/stats.js 100755
View File

@ -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();

View File

@ -1,5 +0,0 @@
package xyz.valnet.hadean;
public class ItemDescriptor {
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -1,4 +1,4 @@
package xyz.valnet.hadean.gameobjects;
package xyz.valnet.hadean.gameobjects.ui;
import java.util.ArrayList;
import java.util.HashMap;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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 {

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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";
}
}

View File

@ -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;

View File

@ -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 {

View File

@ -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;

View File

@ -1,4 +1,4 @@
package xyz.valnet.hadean.gameobjects.worldobjects.pawn;
package xyz.valnet.hadean.gameobjects.worldobjects.agents.pawn;
import java.io.Serializable;

View File

@ -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 {

View File

@ -1,4 +1,4 @@
package xyz.valnet.hadean.gameobjects.worldobjects.pawn;
package xyz.valnet.hadean.gameobjects.worldobjects.agents.pawn;
import java.io.Serializable;

View File

@ -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;

View File

@ -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;

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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();

View File

@ -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)

View File

@ -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);
}
}

View File

@ -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;
}
}