deleted ITileThing, added depth shader :)
parent
10d86c45ab
commit
7afa863ee8
|
|
@ -9,9 +9,11 @@ attribute vec2 TexCoord;
|
|||
//"out" varyings to our fragment shader
|
||||
varying vec4 vColor;
|
||||
varying vec2 vTexCoord;
|
||||
varying float vDepth;
|
||||
|
||||
void main() {
|
||||
vColor = uColor;
|
||||
vTexCoord = TexCoord;
|
||||
gl_Position = uProjection * vec4(Position, 1.0);
|
||||
vDepth = Position.z;
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
//SpriteBatch will use texture unit 0
|
||||
uniform sampler2D u_texture;
|
||||
|
||||
//"in" varyings from our vertex shader
|
||||
varying vec4 vColor;
|
||||
varying vec2 vTexCoord;
|
||||
varying float vDepth;
|
||||
|
||||
void main() {
|
||||
vec4 texColor = texture2D(u_texture, vTexCoord);
|
||||
if(texColor == vec4(1, 0, 1, 1) || texColor == vec4(1, 0, 0, 1) || texColor.w == 0.0) {
|
||||
discard;
|
||||
} else {
|
||||
gl_FragColor = texColor * vColor;
|
||||
gl_FragColor = vec4(vDepth / 20.0, vDepth / 20.0, vDepth / 20.0, gl_FragColor.w);
|
||||
}
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ uniform sampler2D u_texture;
|
|||
//"in" varyings from our vertex shader
|
||||
varying vec4 vColor;
|
||||
varying vec2 vTexCoord;
|
||||
varying float vDepth;
|
||||
|
||||
void main() {
|
||||
vec4 texColor = texture2D(u_texture, vTexCoord);
|
||||
|
|
|
|||
|
|
@ -2,9 +2,7 @@ package xyz.valnet.engine.math;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
public class TileBox implements Serializable {
|
||||
public final int x, y;
|
||||
|
|
|
|||
|
|
@ -100,4 +100,8 @@ public class GameObject implements IRenderable, ITickable, Serializable {
|
|||
protected void onRemoveGameObject(GameObjectCallback listener) {
|
||||
scene.registerRemoveListener(listener);
|
||||
}
|
||||
|
||||
protected void beforeRemoved() {}
|
||||
|
||||
protected void afterRemoved() {}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -216,9 +216,11 @@ public abstract class SceneGraph implements IScene {
|
|||
|
||||
public void remove(GameObject obj) {
|
||||
removeObjects.add(obj);
|
||||
obj.beforeRemoved();
|
||||
for(GameObjectCallback listener : onRemoveListeners) {
|
||||
listener.apply(obj);
|
||||
}
|
||||
obj.afterRemoved();
|
||||
}
|
||||
|
||||
public boolean inScene(GameObject gameObject) {
|
||||
|
|
@ -332,7 +334,6 @@ public abstract class SceneGraph implements IScene {
|
|||
|
||||
@Override
|
||||
public final void keyPress(int key) {
|
||||
DebugTab.log("keyCode: " + key);
|
||||
keys.add(key);
|
||||
for(IKeyboardListener ikbl : getAll(IKeyboardListener.class)) {
|
||||
ikbl.keyPress(key);
|
||||
|
|
|
|||
|
|
@ -60,14 +60,14 @@ public class Shader {
|
|||
if (glGetShaderi(vertID, GL_COMPILE_STATUS) == GL_FALSE) {
|
||||
System.err.println("Failed to compile vertex shader!");
|
||||
System.err.println(glGetShaderInfoLog(vertID));
|
||||
return -1;
|
||||
throw new Error("Failed to compile vertex shader!");
|
||||
}
|
||||
|
||||
glCompileShader(fragID);
|
||||
if (glGetShaderi(fragID, GL_COMPILE_STATUS) == GL_FALSE) {
|
||||
System.err.println("Failed to compile fragment shader!");
|
||||
System.err.println(glGetShaderInfoLog(fragID));
|
||||
return -1;
|
||||
throw new Error("Failed to compile fragment shader!");
|
||||
}
|
||||
|
||||
bindAttributes(program);
|
||||
|
|
@ -114,14 +114,14 @@ public class Shader {
|
|||
glUniform2f(getUniform(name), x, y);
|
||||
}
|
||||
|
||||
public void setUniform3f(String name, Vector3f vector) {
|
||||
public void setUniform3f(String name, Vector3f v) {
|
||||
if (!enabled) enable();
|
||||
glUniform3f(getUniform(name), vector.x, vector.y, vector.z);
|
||||
glUniform3f(getUniform(name), v.x, v.y, v.z);
|
||||
}
|
||||
|
||||
public void setUniform4f(String name, Vector4f vector) {
|
||||
public void setUniform4f(String name, Vector4f v) {
|
||||
if (!enabled) enable();
|
||||
glUniform4f(getUniform(name), vector.x, vector.y, vector.z, vector.w);
|
||||
glUniform4f(getUniform(name), v.x, v.y, v.z, v.w);
|
||||
}
|
||||
|
||||
public void setUniform4f(String name, Color c) {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
package xyz.valnet.hadean.gameobjects.terrain;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import xyz.valnet.engine.graphics.Color;
|
||||
|
|
@ -17,8 +15,8 @@ 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;
|
||||
import xyz.valnet.hadean.interfaces.IWorkable;
|
||||
import xyz.valnet.hadean.interfaces.IWorldObject;
|
||||
import xyz.valnet.hadean.util.Assets;
|
||||
import xyz.valnet.hadean.util.Layers;
|
||||
|
||||
|
|
@ -32,11 +30,7 @@ public class Tile extends WorldObject implements IWorkable {
|
|||
private final int tileSelector = (int)Math.floor(Math.random() * 4);
|
||||
private boolean rocks = false;
|
||||
|
||||
private Set<ITileThing> stuff = new HashSet<ITileThing>();
|
||||
// TODO remove remove queue, cause like, we dont iterate over
|
||||
// things? so why remove queue them? that just leads to unneccesary
|
||||
// timing issues. you dumb fuck.
|
||||
private List<ITileThing> toRemove = new ArrayList<ITileThing>();
|
||||
private Set<IWorldObject> stuff = new HashSet<IWorldObject>();
|
||||
|
||||
public Tile(int x, int y) {
|
||||
setPosition(x, y);
|
||||
|
|
@ -75,14 +69,14 @@ public class Tile extends WorldObject implements IWorkable {
|
|||
|
||||
public boolean isTileFree() {
|
||||
if(!isWalkable()) return false;
|
||||
for(ITileThing thing : stuff) {
|
||||
for(var thing : stuff) {
|
||||
if(thing instanceof Item) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Item pickupByItemPredicate(IItemPredicate itemPredicate) {
|
||||
for(ITileThing thing : stuff) {
|
||||
for(var thing : stuff) {
|
||||
if(thing instanceof Item) {
|
||||
Item item = (Item) thing;
|
||||
if(item.matches(itemPredicate)) {
|
||||
|
|
@ -94,7 +88,9 @@ public class Tile extends WorldObject implements IWorkable {
|
|||
}
|
||||
|
||||
public void pingThings() {
|
||||
for(ITileThing thing : stuff) {
|
||||
// TODO this is a quick lil workaround for a concurerncy issue.
|
||||
// just clone the items
|
||||
for(var thing : new HashSet<IWorldObject>(stuff)) {
|
||||
if(thing instanceof IPingable) {
|
||||
((IPingable)thing).ping();
|
||||
}
|
||||
|
|
@ -113,12 +109,13 @@ public class Tile extends WorldObject implements IWorkable {
|
|||
if(west != null) west.pingThings();
|
||||
}
|
||||
|
||||
public void placeThing(ITileThing thing) {
|
||||
public void placeThing(IWorldObject thing) {
|
||||
if(thing == this) return;
|
||||
|
||||
stuff.add(thing);
|
||||
if(thing instanceof GameObject) {
|
||||
add((GameObject)thing);
|
||||
}
|
||||
thing.onPlaced(this);
|
||||
|
||||
pingThings();
|
||||
pingNeighbors();
|
||||
|
|
@ -128,11 +125,12 @@ public class Tile extends WorldObject implements IWorkable {
|
|||
}
|
||||
}
|
||||
|
||||
public <T extends ITileThing> T removeThing(T thing) {
|
||||
if(!(stuff.contains(thing))) return null;
|
||||
if(toRemove.contains(thing)) return null;
|
||||
public <T extends IWorldObject> T removeThing(T thing) {
|
||||
if(thing == this) return null;
|
||||
|
||||
toRemove.add(thing);
|
||||
if(!(stuff.contains(thing))) return null;
|
||||
|
||||
stuff.remove(thing);
|
||||
|
||||
pingThings();
|
||||
pingNeighbors();
|
||||
|
|
@ -141,21 +139,7 @@ public class Tile extends WorldObject implements IWorkable {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void update(float dTime) {
|
||||
for(ITileThing thing : stuff) {
|
||||
if(thing.shouldRemove()) {
|
||||
toRemove.add(thing);
|
||||
}
|
||||
}
|
||||
for(ITileThing thing : toRemove) {
|
||||
stuff.remove(thing);
|
||||
thing.onRemove();
|
||||
if(thing instanceof GameObject) {
|
||||
remove((GameObject)thing);
|
||||
}
|
||||
}
|
||||
toRemove.clear();
|
||||
}
|
||||
public void update(float dTime) {}
|
||||
|
||||
@Override
|
||||
public void render() {
|
||||
|
|
@ -174,7 +158,7 @@ public class Tile extends WorldObject implements IWorkable {
|
|||
}
|
||||
|
||||
public boolean isWalkable() {
|
||||
for(ITileThing thing : stuff) {
|
||||
for(var thing : stuff) {
|
||||
if(!thing.isWalkable()) return false;
|
||||
}
|
||||
return true;
|
||||
|
|
@ -222,14 +206,14 @@ public class Tile extends WorldObject implements IWorkable {
|
|||
public String toThingsString() {
|
||||
if(stuff.size() == 0) return " - Nothing";
|
||||
String str = "";
|
||||
for(ITileThing thing : stuff) {
|
||||
for(var thing : stuff) {
|
||||
str += " - " + thing + "\n";
|
||||
}
|
||||
return str.stripTrailing();
|
||||
}
|
||||
|
||||
public <T> boolean has(Class<T> clazz) {
|
||||
for(ITileThing thing : stuff) {
|
||||
for(var thing : stuff) {
|
||||
if(clazz.isInstance(thing)) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,10 +76,20 @@ public class DebugTab extends Tab implements IKeyboardListener {
|
|||
log(obj.toString());
|
||||
}
|
||||
|
||||
private boolean keyTest = false;
|
||||
|
||||
@Override
|
||||
public void keyPress(int code) {
|
||||
if(keyTest) {
|
||||
DebugTab.log("Key Code:" + code);
|
||||
keyTest = false;
|
||||
}
|
||||
if(code == 96) { // tilde
|
||||
evoke();
|
||||
} else if(code == 281) { // insert? top row second to last
|
||||
keyTest = true;
|
||||
} else if(code == 301) { // f12
|
||||
HadeanGame.debugView = !HadeanGame.debugView;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,31 +1,34 @@
|
|||
package xyz.valnet.hadean.gameobjects.worldobjects;
|
||||
|
||||
import xyz.valnet.engine.math.TileBox;
|
||||
import xyz.valnet.hadean.gameobjects.terrain.Tile;
|
||||
import xyz.valnet.hadean.gameobjects.ui.Popup;
|
||||
import xyz.valnet.hadean.interfaces.IBuildable;
|
||||
import xyz.valnet.hadean.interfaces.ISelectable;
|
||||
import xyz.valnet.hadean.interfaces.ITileThing;
|
||||
import xyz.valnet.hadean.util.Action;
|
||||
import xyz.valnet.hadean.util.detail.Detail;
|
||||
|
||||
public abstract class Buildable extends WorldObject implements IBuildable, ITileThing, ISelectable {
|
||||
// Buildable, means its in the build menu
|
||||
public abstract class Buildable extends WorldObject implements IBuildable, ISelectable {
|
||||
|
||||
public static Action CANCEL = new Action("Cancel");
|
||||
|
||||
@Override
|
||||
public void buildAt(TileBox box) {
|
||||
setPosition(box.asBox());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlaced(Tile tile) {}
|
||||
|
||||
@Override
|
||||
public Action[] getActions() {
|
||||
return new Action[] {};
|
||||
return new Action[] {
|
||||
CANCEL
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void runAction(Action action) {
|
||||
|
||||
if(action == CANCEL) {
|
||||
add(new Popup());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ 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;
|
||||
import xyz.valnet.hadean.interfaces.IWorkable;
|
||||
import xyz.valnet.hadean.util.Action;
|
||||
import xyz.valnet.hadean.util.Assets;
|
||||
|
|
@ -16,7 +15,7 @@ import xyz.valnet.hadean.util.detail.BooleanDetail;
|
|||
import xyz.valnet.hadean.util.detail.Detail;
|
||||
import xyz.valnet.hadean.util.detail.PercentDetail;
|
||||
|
||||
public class Tree extends WorldObject implements ITileThing, ISelectable, IWorkable {
|
||||
public class Tree extends WorldObject implements ISelectable, IWorkable {
|
||||
|
||||
private Job chopJob = null;
|
||||
|
||||
|
|
@ -85,6 +84,7 @@ public class Tree extends WorldObject implements ITileThing, ISelectable, IWorka
|
|||
@Override
|
||||
public boolean doWork(float dTime) {
|
||||
choppage += dTime;
|
||||
if(getProgress() >= 1.0) remove(this);
|
||||
return getProgress() >= 1;
|
||||
}
|
||||
|
||||
|
|
@ -110,12 +110,7 @@ public class Tree extends WorldObject implements ITileThing, ISelectable, IWorka
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRemove() {
|
||||
return getProgress() >= 1.0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove() {
|
||||
protected void beforeRemoved() {
|
||||
Vector2i pos = getWorldPosition().xy();
|
||||
add(new Log(pos.x, pos.y));
|
||||
}
|
||||
|
|
@ -129,7 +124,4 @@ public class Tree extends WorldObject implements ITileThing, ISelectable, IWorka
|
|||
public String getName() {
|
||||
return "Tree";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlaced(Tile tile) {}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import xyz.valnet.engine.scenegraph.GameObject;
|
|||
import xyz.valnet.hadean.gameobjects.Camera;
|
||||
import xyz.valnet.hadean.gameobjects.terrain.Terrain;
|
||||
import xyz.valnet.hadean.gameobjects.terrain.Tile;
|
||||
import xyz.valnet.hadean.interfaces.ITileThing;
|
||||
import xyz.valnet.hadean.interfaces.IWorldObject;
|
||||
|
||||
public abstract class WorldObject extends GameObject implements IWorldObject {
|
||||
|
|
@ -40,11 +39,11 @@ public abstract class WorldObject extends GameObject implements IWorldObject {
|
|||
@Override
|
||||
protected void start() {
|
||||
setPosition(x, y, w, h);
|
||||
getTile().placeThing(this);
|
||||
}
|
||||
|
||||
private void updateTileLinks(Set<Tile> tiles) {
|
||||
if(tiles == null || tiles.size() == 0) return;
|
||||
if(!(this instanceof ITileThing)) return;
|
||||
|
||||
Set<Tile> removeTiles = new HashSet<Tile>();
|
||||
Set<Tile> addTiles = new HashSet<Tile>();
|
||||
|
|
@ -61,16 +60,12 @@ public abstract class WorldObject extends GameObject implements IWorldObject {
|
|||
|
||||
for(Tile tile : removeTiles) {
|
||||
linkedTiles.remove(tile);
|
||||
if(this instanceof ITileThing) {
|
||||
tile.removeThing((ITileThing) this);
|
||||
}
|
||||
tile.removeThing(this);
|
||||
}
|
||||
|
||||
for(Tile tile : addTiles) {
|
||||
linkedTiles.add(tile);
|
||||
if(this instanceof ITileThing) {
|
||||
tile.placeThing((ITileThing) this);
|
||||
}
|
||||
tile.placeThing(this);
|
||||
}
|
||||
|
||||
if(linkedTiles.size() == 0 && inScene()) {
|
||||
|
|
|
|||
|
|
@ -236,4 +236,10 @@ public class Pawn extends Agent {
|
|||
}
|
||||
|
||||
private List<Item> inventory = new ArrayList<Item>();
|
||||
|
||||
@Override
|
||||
public boolean isWalkable() {
|
||||
// TODO thiss could be an interesting mechanic, but it may be bad
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,16 +23,6 @@ public class Bed extends Construction {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRemove() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IItemPredicate getBuildingMaterial() {
|
||||
return Log.LOG_PREDICATE;
|
||||
|
|
|
|||
|
|
@ -103,16 +103,6 @@ public abstract class Construction extends Buildable {
|
|||
@Override
|
||||
public abstract boolean isWalkable();
|
||||
|
||||
@Override
|
||||
public boolean shouldRemove() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract String getName();
|
||||
|
||||
|
|
@ -159,9 +149,6 @@ public abstract class Construction extends Buildable {
|
|||
|
||||
@Override
|
||||
public Action[] getActions() {
|
||||
return new Action[0];
|
||||
return super.getActions();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void runAction(Action action) {}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,15 +54,6 @@ public class Quarry extends Construction {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRemove() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Quarry";
|
||||
|
|
|
|||
|
|
@ -41,16 +41,6 @@ public class Wall extends Construction implements IPingable {
|
|||
return !isBuilt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRemove() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove() {
|
||||
|
||||
}
|
||||
|
||||
private EnumSet<Direction> wallSides = EnumSet.noneOf(Direction.class);
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -30,14 +30,6 @@ public class Boulder extends Item {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRemove() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove() {}
|
||||
|
||||
@Override
|
||||
public Detail[] getDetails() {
|
||||
return new Detail[] {};
|
||||
|
|
|
|||
|
|
@ -4,16 +4,14 @@ import xyz.valnet.engine.math.Vector2i;
|
|||
import xyz.valnet.engine.math.Vector4i;
|
||||
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;
|
||||
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 abstract class Item extends WorldObject implements ISelectable, ITileThing {
|
||||
public abstract class Item extends WorldObject implements ISelectable {
|
||||
protected JobBoard jobboard;
|
||||
|
||||
private Job haulJob = null;
|
||||
|
|
@ -84,17 +82,10 @@ public abstract class Item extends WorldObject implements ISelectable, ITileThin
|
|||
jobboard.postJob(haulJob);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlaced(Tile tile) {
|
||||
setPosition(tile.getWorldPosition());
|
||||
}
|
||||
|
||||
public boolean matches(IItemPredicate itemPredicate) {
|
||||
return itemPredicate.matches(this);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setPosition(Vector4i vector) {
|
||||
super.setPosition(vector);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,14 +30,6 @@ public class Log extends Item {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRemove() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove() {}
|
||||
|
||||
@Override
|
||||
public Detail[] getDetails() {
|
||||
return new Detail[] {};
|
||||
|
|
|
|||
|
|
@ -46,24 +46,11 @@ public class FarmPlot extends Zone {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRemove() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Farm Plot";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlaced(Tile tile) {}
|
||||
|
||||
@Override
|
||||
public ISelectable.Priority getSelectPriority() {
|
||||
return ISelectable.Priority.LOW;
|
||||
|
|
|
|||
|
|
@ -61,24 +61,11 @@ public class Stockpile extends Zone {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRemove() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Stockpile";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlaced(Tile tile) {}
|
||||
|
||||
@Override
|
||||
public ISelectable.Priority getSelectPriority() {
|
||||
return ISelectable.Priority.LOW;
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
package xyz.valnet.hadean.interfaces;
|
||||
|
||||
import xyz.valnet.hadean.gameobjects.terrain.Tile;
|
||||
|
||||
public interface ITileThing {
|
||||
public boolean isWalkable();
|
||||
public boolean shouldRemove();
|
||||
public void onRemove();
|
||||
public void onPlaced(Tile tile);
|
||||
}
|
||||
|
|
@ -4,4 +4,5 @@ import xyz.valnet.hadean.gameobjects.terrain.Tile;
|
|||
|
||||
public interface IWorldObject {
|
||||
public Tile getTile(int x, int y);
|
||||
public boolean isWalkable();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package xyz.valnet.hadean.util;
|
||||
|
||||
|
||||
// TODO consider making this an enum?
|
||||
public class Action {
|
||||
public final String name;
|
||||
|
||||
|
|
|
|||
|
|
@ -57,10 +57,12 @@ public class Assets {
|
|||
|
||||
|
||||
public static final SimpleShader flat;
|
||||
public static final SimpleShader depth;
|
||||
|
||||
static {
|
||||
DebugTab.log("=== [ LOADING ASSETS ] ===");
|
||||
flat = new SimpleShader("res/shaders/flat.vert", "res/shaders/flat.frag");
|
||||
flat = new SimpleShader("res/shaders/base.vert", "res/shaders/flat.frag");
|
||||
depth = new SimpleShader("res/shaders/base.vert", "res/shaders/depth.frag");
|
||||
|
||||
atlas = new Texture("res/textures.png");
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue