Conveyor upgrade system (#3912)

* conveyor/conduit upgrading system

* style
This commit is contained in:
Slava0135
2020-12-15 10:52:20 -05:00
committed by GitHub
parent 4b1c55b876
commit 0c581c520f
5 changed files with 52 additions and 4 deletions
@@ -0,0 +1,7 @@
package mindustry.world.blocks.distribution;
import mindustry.gen.*;
public interface ChainedBuilding{
Building next();
}
@@ -91,7 +91,7 @@ public class Conveyor extends Block implements Autotiler{
Mathf.mod(req.tile().build.rotation - req.rotation, 2) == 1 ? Blocks.junction : this;
}
public class ConveyorBuild extends Building{
public class ConveyorBuild extends Building implements ChainedBuilding{
//parallel array data
public Item[] ids = new Item[capacity];
public float[] xs = new float[capacity];
@@ -391,5 +391,11 @@ public class Conveyor extends Block implements Autotiler{
len--;
}
@Nullable
@Override
public Building next(){
return nextc;
}
}
}
@@ -16,6 +16,7 @@ import mindustry.graphics.*;
import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.blocks.*;
import mindustry.world.blocks.distribution.*;
import static mindustry.Vars.*;
@@ -73,7 +74,7 @@ public class Conduit extends LiquidBlock implements Autotiler{
return new TextureRegion[]{Core.atlas.find("conduit-bottom"), topRegions[0]};
}
public class ConduitBuild extends LiquidBuild{
public class ConduitBuild extends LiquidBuild implements ChainedBuilding{
public float smoothLiquid;
public int blendbits, xscl, yscl, blending;
@@ -137,5 +138,15 @@ public class Conduit extends LiquidBlock implements Autotiler{
sleep();
}
}
@Nullable
@Override
public Building next(){
Tile next = tile.nearby(rotation);
if(next != null && next.build instanceof ConduitBuild){
return next.build;
}
return null;
}
}
}