Logic sensor accesses more infos of payload (#8766)
* Added Logic Sense Payload * Update UnitComp.java --------- Co-authored-by: Anuken <arnukren@gmail.com>
This commit is contained in:
@@ -1988,6 +1988,10 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
||||
public double sense(Content content){
|
||||
if(content instanceof Item i && items != null) return items.get(i);
|
||||
if(content instanceof Liquid l && liquids != null) return liquids.get(l);
|
||||
if(getPayloads() != null){
|
||||
if(content instanceof UnitType u) return getPayloads().get(u);
|
||||
if(content instanceof Block b) return getPayloads().get(b);
|
||||
}
|
||||
return Float.NaN; //invalid sense
|
||||
}
|
||||
|
||||
|
||||
@@ -241,6 +241,8 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
|
||||
controller instanceof CommandAI command && command.hasCommand() ? ctrlCommand :
|
||||
0;
|
||||
case payloadCount -> ((Object)this) instanceof Payloadc pay ? pay.payloads().size : 0;
|
||||
case totalPayload -> ((Object)this) instanceof Payloadc pay ? pay.payloadUsed() : 0;
|
||||
case payloadCapacity -> type.payloadCapacity;
|
||||
case size -> hitSize / tilesize;
|
||||
case color -> Color.toDoubleBits(team.color.r, team.color.g, team.color.b, 1f);
|
||||
default -> Float.NaN;
|
||||
@@ -265,6 +267,16 @@ abstract class UnitComp implements Healthc, Physicsc, Hitboxc, Statusc, Teamc, I
|
||||
@Override
|
||||
public double sense(Content content){
|
||||
if(content == stack().item) return stack().amount;
|
||||
if(content instanceof UnitType u){
|
||||
return ((Object)this) instanceof Payloadc pay ?
|
||||
(pay.payloads().isEmpty() ? 0 :
|
||||
pay.payloads().count(p -> p instanceof UnitPayload up && up.unit.type == u)) : 0;
|
||||
}
|
||||
if(content instanceof Block b){
|
||||
return ((Object)this) instanceof Payloadc pay ?
|
||||
(pay.payloads().isEmpty() ? 0 :
|
||||
pay.payloads().count(p -> p instanceof BuildPayload bp && bp.build.block == b)) : 0;
|
||||
}
|
||||
return Float.NaN;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user