ner ner ner ner ner ner nernnnnn

stable
Ivory 2023-02-05 02:11:47 -05:00
parent 04eaf1434f
commit ce5906b768
8 changed files with 53 additions and 9 deletions

View File

@ -16,6 +16,7 @@ import java.util.stream.Collectors;
import xyz.valnet.engine.App;
import xyz.valnet.engine.math.Box;
import xyz.valnet.hadean.HadeanGame;
import xyz.valnet.hadean.gameobjects.ui.tabs.DebugTab;
public abstract class SceneGraph implements IScene {
@ -49,6 +50,7 @@ public abstract class SceneGraph implements IScene {
@Override
public void update(float dTime) {
dTime = 1;
// ADD OBJECTS
if(!newObjects.isEmpty()) {
List<GameObject> added = new ArrayList<GameObject>();

View File

@ -14,6 +14,7 @@ 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.items.Log;
import xyz.valnet.hadean.gameobjects.worldobjects.zones.FarmPlot;
import xyz.valnet.hadean.interfaces.IItemPredicate;
import xyz.valnet.hadean.interfaces.IPingable;
@ -69,7 +70,7 @@ public class Tile extends WorldObject implements IWorkable {
add(new Tree(pos.x, pos.y));
} else if(Math.random() > 0.98) {
rocks = false;
add(new Boulder(pos.x, pos.y));
add(new Log(pos.x, pos.y));
}
}

View File

@ -132,7 +132,7 @@ public class SelectionUI extends ImmediateUI implements ISelectionChangeListener
if(details.length == 0) {
text("No details available.");
} else for(Detail detail : details) {
text(detail.toString(15));
text(detail.toString(30));
}
});
} else {

View File

@ -19,6 +19,7 @@ import xyz.valnet.hadean.gameobjects.inputlayer.SelectionLayer;
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.MasonWorkshop;
import xyz.valnet.hadean.gameobjects.worldobjects.constructions.Quarry;
import xyz.valnet.hadean.gameobjects.worldobjects.constructions.Wall;
import xyz.valnet.hadean.interfaces.BuildType;
@ -55,6 +56,7 @@ public class BuildTab extends Tab implements ISelectionChangeListener, IBuildLay
BuildTab.registerBuildable(FarmPlot.class);
BuildTab.registerBuildable(Stockpile.class);
BuildTab.registerBuildable(MasonWorkshop.class);
}
public record BuildableRecord(

View File

@ -24,7 +24,6 @@ public abstract class Buildable extends WorldObject implements IBuildable, ITile
@Override
public Action[] getActions() {
// TODO Auto-generated method stub
return new Action[] {};
}

View File

@ -9,7 +9,6 @@ import xyz.valnet.engine.math.Vector2i;
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;
import xyz.valnet.hadean.interfaces.BuildType;
import xyz.valnet.hadean.interfaces.IItemPredicate;
@ -55,7 +54,7 @@ public abstract class Construction extends Buildable implements IItemReceiver {
work += dTime;
return isBuilt();
}
@Override
public Vector2i[] getWorkablePositions() {
return getWorldBox().toXYWH().asInt().getBorders();
@ -115,9 +114,9 @@ public abstract class Construction extends Buildable implements IItemReceiver {
@Override
public final boolean receive(Item item) {
if(item == null) return false;
if(!item.matches(Boulder.BOULDER_PREDICATE)) return false;
if(!item.matches(getBuildingMaterial())) return false;
remove(item);
// boulders ++;
containedItems.add(item);
return true;
}
@ -148,7 +147,7 @@ public abstract class Construction extends Buildable implements IItemReceiver {
@Override
public BuildType getBuildType() {
return BuildType.SINGLE;
return BuildType.AREA;
}
@Override
public String getBuildTabCategory() {

View File

@ -0,0 +1,41 @@
package xyz.valnet.hadean.gameobjects.worldobjects.constructions;
import xyz.valnet.engine.graphics.Sprite;
import xyz.valnet.engine.math.Vector2i;
import xyz.valnet.hadean.gameobjects.worldobjects.items.Log;
import xyz.valnet.hadean.interfaces.IItemPredicate;
import xyz.valnet.hadean.util.Assets;
public class MasonWorkshop extends Construction {
@Override
protected IItemPredicate getBuildingMaterial() {
return Log.LOG_PREDICATE;
}
@Override
protected int getBuildingMaterialCount() {
return 1;
}
@Override
public boolean isWalkable() {
return false;
}
@Override
public String getName() {
return "Mason's Workshop";
}
@Override
protected Sprite getDefaultSprite() {
return Assets.testTile;
}
@Override
protected Vector2i getDimensions() {
return new Vector2i(3, 3);
}
}

View File

@ -100,7 +100,7 @@ public class Assets {
egg = new Sprite(atlas, 8, 104, 8, 8);
bigRock = new Sprite(atlas, 16, 104, 8, 8);
lilPickaxe = new Sprite(atlas, 8, 120, 16, 16);
testTile = new Sprite(atlas, 16, 16, 64, 112);
testTile = new Sprite(atlas, 64, 112, 16, 16);
quarry = new Sprite(atlas, 88, 64, 24, 24);
Map<Character, Sprite> charset = new HashMap<Character, Sprite>();