An experiment

This commit is contained in:
Anuken
2021-10-20 10:45:15 -04:00
parent a21f6d335f
commit 4436a5ced9
10 changed files with 55 additions and 9 deletions

View File

@@ -15,6 +15,7 @@ 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
@@ -22,8 +23,38 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{
@Import float x, y, rotation;
@Import UnitType type;
private transient @Nullable PowerGraph payloadPower;
Seq<Payload> payloads = new Seq<>();
//uncomment for insanity
/*
@Override
public void update(){
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();
pb.build.power.graph = null;
payloadPower.add(pb.build);
}
}
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());
}
@@ -50,7 +81,7 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{
void pickup(Unit unit){
unit.remove();
payloads.add(new UnitPayload(unit));
addPayload(new UnitPayload(unit));
Fx.unitPickup.at(unit);
if(Vars.net.client()){
Vars.netClient.clearRemovedEntity(unit.id);
@@ -62,7 +93,7 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{
tile.pickedUp();
tile.tile.remove();
tile.tile = Vars.emptyTile;
payloads.add(new BuildPayload(tile));
addPayload(new BuildPayload(tile));
Fx.unitPickup.at(tile);
Events.fire(new PickupEvent(self(), tile));
}