Allow setting attack mode wave unit spawn position

This commit is contained in:
Anuken
2025-05-05 20:50:43 -04:00
parent 317f9878dc
commit 16cb530b99
9 changed files with 143 additions and 29 deletions
@@ -13,6 +13,7 @@ import arc.scene.ui.*;
import arc.scene.ui.layout.*;
import arc.struct.*;
import arc.util.*;
import arc.util.io.*;
import mindustry.*;
import mindustry.annotations.Annotations.*;
import mindustry.content.*;
@@ -23,6 +24,7 @@ import mindustry.game.EventType.*;
import mindustry.game.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.io.*;
import mindustry.logic.*;
import mindustry.type.*;
import mindustry.ui.*;
@@ -71,6 +73,7 @@ public class CoreBlock extends StorageBlock{
unitCapModifier = 10;
drawDisabled = false;
canOverdrive = false;
commandable = true;
envEnabled |= Env.space;
//support everything
@@ -247,9 +250,25 @@ public class CoreBlock extends StorageBlock{
public Team lastDamage = Team.derelict;
public float iframes = -1f;
public float thrusterTime = 0f;
public @Nullable Vec2 commandPos;
protected float cloudSeed, landParticleTimer;
@Override
public boolean isCommandable(){
return team != state.rules.defaultTeam && state.rules.attackMode;
}
@Override
public Vec2 getCommandPosition(){
return commandPos;
}
@Override
public void onCommand(Vec2 target){
commandPos = target;
}
@Override
public void draw(){
//draw thrusters when just landed
@@ -806,5 +825,24 @@ public class CoreBlock extends StorageBlock{
noEffect = false;
}
}
@Override
public byte version(){
return 1;
}
@Override
public void write(Writes write){
super.write(write);
TypeIO.writeVecNullable(write, commandPos);
}
@Override
public void read(Reads read, byte revision){
super.read(read, revision);
if(revision >= 1){
commandPos = TypeIO.readVecNullable(read);
}
}
}
}