This commit is contained in:
Anuken
2022-02-18 19:12:36 -05:00
parent d4e26ea23c
commit 60720dbf8e
5 changed files with 33 additions and 15 deletions

View File

@@ -7,6 +7,7 @@ import arc.math.*;
import arc.util.*;
import arc.util.io.*;
import mindustry.*;
import mindustry.annotations.Annotations.*;
import mindustry.content.*;
import mindustry.entities.*;
import mindustry.game.*;
@@ -16,6 +17,8 @@ import mindustry.type.*;
import mindustry.ui.*;
import mindustry.world.*;
import static mindustry.Vars.*;
public class UnitCargoLoader extends Block{
public UnitType unitType = UnitTypes.manifold;
public float buildTime = 60f * 8f;
@@ -65,6 +68,12 @@ public class UnitCargoLoader extends Block{
}
}
@Remote(called = Loc.server)
public static void cargoLoaderDroneSpawned(Tile tile, int id){
if(tile == null || !(tile.build instanceof UnitTransportSourceBuild build)) return;
build.spawned(id);
}
public class UnitTransportSourceBuild extends Building{
//needs to be "unboxed" after reading, since units are read after buildings.
public int readUnitId = -1;
@@ -92,21 +101,28 @@ public class UnitCargoLoader extends Block{
totalProgress += edelta();
if(buildProgress >= 1f){
unit = unitType.create(team);
if(unit instanceof BuildingTetherc bt){
bt.building(this);
if(!net.client()){
unit = unitType.create(team);
if(unit instanceof BuildingTetherc bt){
bt.building(this);
}
unit.set(x, y);
unit.rotation = 90f;
unit.add();
Call.cargoLoaderDroneSpawned(tile, unit.id);
}
unit.set(x, y);
unit.rotation = 90f;
unit.add();
Fx.spawn.at(unit);
buildProgress = 0f;
}
}
}
public void spawned(int id){
Fx.spawn.at(x, y);
buildProgress = 0f;
if(net.client()){
readUnitId = id;
}
}
@Override
public boolean acceptItem(Building source, Item item){
return items.total() < itemCapacity;