auto haul logs on creation
parent
6f977bd972
commit
fa654bac35
|
|
@ -20,6 +20,14 @@ public abstract class Item extends WorldObject implements ISelectable, ITileThin
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void start() {
|
||||||
super.start();
|
super.start();
|
||||||
|
if(jobboard == null) {
|
||||||
|
jobboard = get(JobBoard.class);
|
||||||
|
markForHaul();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean haulOnCreate() {
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -44,7 +52,7 @@ public abstract class Item extends WorldObject implements ISelectable, ITileThin
|
||||||
@Override
|
@Override
|
||||||
public void renderAlpha() {
|
public void renderAlpha() {
|
||||||
if(haulJob != null) {
|
if(haulJob != null) {
|
||||||
Assets.flat.pushColor(Vector4f.opacity(0.6f));
|
Assets.flat.pushColor(Vector4f.opacity(0.4f));
|
||||||
camera.draw(Layers.GENERAL_UI, Assets.haulArrow, getWorldPosition());
|
camera.draw(Layers.GENERAL_UI, Assets.haulArrow, getWorldPosition());
|
||||||
Assets.flat.popColor();
|
Assets.flat.popColor();
|
||||||
}
|
}
|
||||||
|
|
@ -53,14 +61,33 @@ public abstract class Item extends WorldObject implements ISelectable, ITileThin
|
||||||
@Override
|
@Override
|
||||||
public void runAction(Action action) {
|
public void runAction(Action action) {
|
||||||
if (action == ACTION_HAUL) {
|
if (action == ACTION_HAUL) {
|
||||||
|
toggleHaul();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void toggleHaul() {
|
||||||
|
if(haulJob == null) {
|
||||||
|
markForHaul();
|
||||||
|
} else {
|
||||||
|
cancelHaul();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cancelHaul() {
|
||||||
|
if(haulJob == null) return;
|
||||||
|
jobboard.rescindJob(haulJob);
|
||||||
|
haulJob = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void markForHaul() {
|
||||||
|
if(haulJob != null) return;
|
||||||
haulJob = add(new Job("Haul " + this.getName()));
|
haulJob = add(new Job("Haul " + this.getName()));
|
||||||
haulJob.addStep(haulJob.new PickupItem(this, new Vector2f[] { this.getWorldPosition() }));
|
haulJob.addStep(haulJob.new PickupItem(this, new Vector2f[] { this.getWorldPosition() }));
|
||||||
haulJob.addStep(haulJob.new DropoffAtStockpile(this));
|
haulJob.addStep(haulJob.new DropoffAtStockpile(this));
|
||||||
haulJob.registerClosedListener(() -> {
|
haulJob.registerClosedListener(() -> {
|
||||||
haulJob = null;
|
haulJob = null;
|
||||||
});
|
});
|
||||||
get(JobBoard.class).postJob(haulJob);
|
jobboard.postJob(haulJob);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue