Payload unit update rule

This commit is contained in:
Anuken
2022-01-08 11:06:05 -05:00
parent dcfdf37b4f
commit 5611a212c5
7 changed files with 35 additions and 28 deletions

View File

@@ -11,50 +11,59 @@ import mindustry.content.*;
import mindustry.core.*;
import mindustry.entities.*;
import mindustry.game.EventType.*;
import mindustry.game.*;
import mindustry.gen.*;
import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.blocks.payloads.*;
import mindustry.world.blocks.power.*;
/** An entity that holds a payload. */
@Component
abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{
@Import float x, y, rotation;
@Import Team team;
@Import UnitType type;
Seq<Payload> payloads = new Seq<>();
//uncomment for insanity
/*
private transient @Nullable PowerGraph payloadPower;
@Override
public void update(){
if(payloadPower != null){
payloadPower.clear();
}
if(Vars.state.rules.unitPayloadUpdate){
if(payloadPower != null){
payloadPower.clear();
}
//update power graph first, resolve everything
for(Payload pay : payloads){
if(pay instanceof BuildPayload pb && pb.build.power != null){
if(payloadPower == null) payloadPower = new PowerGraph();
//update power graph first, resolve everything
for(Payload pay : payloads){
if(pay instanceof BuildPayload pb && pb.build.power != null){
if(payloadPower == null) payloadPower = new PowerGraph();
pb.build.power.graph = null;
payloadPower.add(pb.build);
pb.build.team = team;
pb.build.power.graph = null;
payloadPower.add(pb.build);
}
}
if(payloadPower != null){
payloadPower.update();
}
for(Payload pay : payloads){
if(pay instanceof BuildPayload build){
build.build.team = team;
}
pay.set(x, y, rotation);
pay.update(true);
}
}
if(payloadPower != null){
payloadPower.update();
}
for(Payload pay : payloads){
pay.set(x, y, rotation);
pay.update(true);
}
}*/
}
float payloadUsed(){
return payloads.sumf(p -> p.size() * p.size());