Allow conveyors/ducts to use duct/conveyor bridges (#10179)

* Allow conveyors/ducts to use duct/conveyor bridges

* Apply suggestions from code review

---------

Co-authored-by: Anuken <arnukren@gmail.com>
This commit is contained in:
patatayui
2025-02-10 17:04:14 +01:00
committed by GitHub
parent 73bde0d3af
commit 5f8f0140a2
4 changed files with 11 additions and 10 deletions

View File

@@ -64,7 +64,7 @@ public class Conveyor extends Block implements Autotiler{
super.init();
if(junctionReplacement == null) junctionReplacement = Blocks.junction;
if(bridgeReplacement == null || !(bridgeReplacement instanceof ItemBridge)) bridgeReplacement = Blocks.itemBridge;
if(bridgeReplacement == null || !(bridgeReplacement instanceof ItemBridge || bridgeReplacement instanceof DuctBridge)) bridgeReplacement = Blocks.itemBridge;
}
@Override
@@ -92,8 +92,9 @@ public class Conveyor extends Block implements Autotiler{
@Override
public void handlePlacementLine(Seq<BuildPlan> plans){
if(bridgeReplacement == null) return;
Placement.calculateBridges(plans, (ItemBridge)bridgeReplacement, b -> b instanceof Conveyor);
boolean hasJuntionReplacement = junctionReplacement != null;
if(bridgeReplacement instanceof DuctBridge bridge) Placement.calculateBridges(plans, bridge, hasJuntionReplacement, b -> b instanceof Duct || b instanceof Conveyor);
if(bridgeReplacement instanceof ItemBridge bridge) Placement.calculateBridges(plans, bridge, hasJuntionReplacement, b -> b instanceof Conveyor);
}
@Override

View File

@@ -62,7 +62,7 @@ public class Duct extends Block implements Autotiler{
public void init(){
super.init();
if(bridgeReplacement == null || !(bridgeReplacement instanceof DuctBridge)) bridgeReplacement = Blocks.ductBridge;
if(bridgeReplacement == null || !(bridgeReplacement instanceof DuctBridge || bridgeReplacement instanceof ItemBridge)) bridgeReplacement = Blocks.ductBridge;
}
@Override
@@ -106,8 +106,8 @@ public class Duct extends Block implements Autotiler{
@Override
public void handlePlacementLine(Seq<BuildPlan> plans){
if(bridgeReplacement == null) return;
Placement.calculateBridges(plans, (DuctBridge)bridgeReplacement, false, b -> b instanceof Duct || b instanceof StackConveyor || b instanceof Conveyor);
if(bridgeReplacement instanceof ItemBridge bridge) Placement.calculateBridges(plans, bridge, false, b -> b instanceof Duct || b instanceof StackConveyor || b instanceof Conveyor);
if(bridgeReplacement instanceof DuctBridge bridge) Placement.calculateBridges(plans, bridge, false, b -> b instanceof Duct || b instanceof StackConveyor || b instanceof Conveyor);
}
public class DuctBuild extends Building{

View File

@@ -140,7 +140,7 @@ public class Conduit extends LiquidBlock implements Autotiler{
if(rotBridgeReplacement instanceof DirectionBridge duct){
Placement.calculateBridges(plans, duct, true, b -> b instanceof Conduit);
}else{
Placement.calculateBridges(plans, (ItemBridge)bridgeReplacement, b -> b instanceof Conduit);
Placement.calculateBridges(plans, (ItemBridge)bridgeReplacement, true, b -> b instanceof Conduit);
}
}