Fixed #11268
This commit is contained in:
@@ -97,6 +97,7 @@ public class Build{
|
|||||||
tile.build.enabled = true;
|
tile.build.enabled = true;
|
||||||
if(tile.build.power != null){
|
if(tile.build.power != null){
|
||||||
tile.build.power.links.clear();
|
tile.build.power.links.clear();
|
||||||
|
tile.build.powerGraphRemoved();
|
||||||
}
|
}
|
||||||
tile.build.checkAllowUpdate();
|
tile.build.checkAllowUpdate();
|
||||||
tile.build.updateProximity();
|
tile.build.updateProximity();
|
||||||
|
|||||||
@@ -38,6 +38,11 @@ public class BuildPayload implements Payload{
|
|||||||
build.dropped();
|
build.dropped();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean contentEquals(Payload other){
|
||||||
|
return other instanceof BuildPayload bp && bp.block() == build.block;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UnlockableContent content(){
|
public UnlockableContent content(){
|
||||||
return build.block;
|
return build.block;
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ public interface Payload extends Position{
|
|||||||
/** @return the time taken to build this payload. */
|
/** @return the time taken to build this payload. */
|
||||||
float buildTime();
|
float buildTime();
|
||||||
|
|
||||||
|
boolean contentEquals(Payload other);
|
||||||
|
|
||||||
/** update this payload inside a container unit or building. either can be null. */
|
/** update this payload inside a container unit or building. either can be null. */
|
||||||
default void update(@Nullable Unit unitHolder, @Nullable Building buildingHolder){}
|
default void update(@Nullable Unit unitHolder, @Nullable Building buildingHolder){}
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,11 @@ public class UnitPayload implements Payload{
|
|||||||
showOverlay(icon.getRegion());
|
showOverlay(icon.getRegion());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean contentEquals(Payload other){
|
||||||
|
return other instanceof UnitPayload up && up.unit.type == unit.type;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(@Nullable Unit unitHolder, @Nullable Building buildingHolder){
|
public void update(@Nullable Unit unitHolder, @Nullable Building buildingHolder){
|
||||||
unit.type.updatePayload(unit, unitHolder, buildingHolder);
|
unit.type.updatePayload(unit, unitHolder, buildingHolder);
|
||||||
|
|||||||
@@ -667,8 +667,10 @@ public class UnitAssembler extends PayloadBlock{
|
|||||||
@Override
|
@Override
|
||||||
public boolean acceptPayload(Building source, Payload payload){
|
public boolean acceptPayload(Building source, Payload payload){
|
||||||
var plan = plan();
|
var plan = plan();
|
||||||
return (this.payload == null || source instanceof UnitAssemblerModuleBuild) &&
|
return (this.payload == null || (source instanceof UnitAssemblerModuleBuild)) &&
|
||||||
plan.requirements.contains(b -> b.item == payload.content() && blocks.get(payload.content()) < Mathf.round(b.amount * state.rules.unitCost(team)));
|
plan.requirements.contains(b -> b.item == payload.content() &&
|
||||||
|
blocks.get(payload.content()) < Mathf.round(b.amount * state.rules.unitCost(team)) -
|
||||||
|
(source instanceof UnitAssemblerModuleBuild && (this.payload != null && this.payload.contentEquals(payload)) ? 1 : 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user