move render to construction

stable
Ivory 2023-02-04 03:38:55 -05:00
parent 3c2a62c7dd
commit fe29860988
2 changed files with 39 additions and 20 deletions

View File

@ -3,6 +3,8 @@ package xyz.valnet.hadean.gameobjects.worldobjects.constructions;
import java.util.ArrayList;
import java.util.List;
import xyz.valnet.engine.graphics.Color;
import xyz.valnet.engine.graphics.Sprite;
import xyz.valnet.engine.math.Vector2i;
import xyz.valnet.hadean.gameobjects.jobs.Job;
import xyz.valnet.hadean.gameobjects.jobs.JobBoard;
@ -12,6 +14,8 @@ import xyz.valnet.hadean.gameobjects.worldobjects.items.Item;
import xyz.valnet.hadean.interfaces.IItemPredicate;
import xyz.valnet.hadean.interfaces.IItemReceiver;
import xyz.valnet.hadean.interfaces.IWorkable;
import xyz.valnet.hadean.util.Assets;
import xyz.valnet.hadean.util.Layers;
public abstract class Construction extends Buildable implements IItemReceiver {
@ -120,4 +124,23 @@ public abstract class Construction extends Buildable implements IItemReceiver {
public Vector2i[] getItemDropoffLocations() {
return getWorldBox().toXYWH().asInt().getBorders();
}
@Override
public void render() {
Sprite sprite = getDefaultSprite();
if(isBuilt()) {
camera.draw(Layers.TILES, sprite, getWorldPosition());
} else {
float b = 4;
Assets.flat.pushColor(Color.grey(b).withAlpha(0.5f));
camera.draw(Layers.GROUND, Assets.quarry, getWorldPosition());
Assets.flat.popColor();
camera.drawProgressBar(getBuildProgress(), getWorldBox());
}
}
protected abstract Sprite getDefaultSprite();
}

View File

@ -1,6 +1,7 @@
package xyz.valnet.hadean.gameobjects.worldobjects.constructions;
import xyz.valnet.engine.graphics.Color;
import xyz.valnet.engine.graphics.Sprite;
import xyz.valnet.engine.math.Vector2i;
import xyz.valnet.hadean.gameobjects.jobs.Job;
import xyz.valnet.hadean.gameobjects.jobs.JobBoard;
@ -16,26 +17,6 @@ public class Quarry extends Construction {
private Job digJob = null;
@Override
public void render() {
if(isBuilt()) {
camera.draw(Layers.TILES, Assets.quarry, getWorldPosition());
if(digJob != null && !digJob.isCompleted()) {
camera.drawProgressBar(digProgress, getWorldBox());
}
} else {
float b = 4;
Assets.flat.pushColor(Color.grey(b).withAlpha(0.5f));
camera.draw(Layers.GROUND, Assets.quarry, getWorldPosition());
Assets.flat.popColor();
camera.drawProgressBar(getBuildProgress(), getWorldBox());
}
}
@Override
public Vector2i getDimensions() {
return new Vector2i(3, 3);
@ -118,4 +99,19 @@ public class Quarry extends Construction {
protected int getBuildingMaterialCount() {
return 0;
}
@Override
protected final Sprite getDefaultSprite() {
return Assets.quarry;
}
@Override
public void render() {
super.render();
if(!isBuilt()) return;
if(digJob != null && !digJob.isCompleted() && digProgress > 0) {
camera.drawProgressBar(digProgress, getWorldBox());
}
}
}