Fixed #9731
This commit is contained in:
@@ -189,6 +189,13 @@ public class StackConveyor extends Block implements Autotiler{
|
||||
Draw.rect(lastItem.fullIcon, Tmp.v1.x, Tmp.v1.y, size, size, 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dropped(){
|
||||
super.dropped();
|
||||
var prev = Geometry.d4[(rotation + 2) % 4];
|
||||
link = Point2.pack(tile.x + prev.x, tile.y + prev.y);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawCracks(){
|
||||
Draw.z(Layer.block - 0.15f);
|
||||
|
||||
@@ -12,6 +12,7 @@ import mindustry.graphics.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.ui.*;
|
||||
import mindustry.world.blocks.payloads.PayloadUnloader.*;
|
||||
import mindustry.world.blocks.sandbox.*;
|
||||
|
||||
import static mindustry.Vars.*;
|
||||
|
||||
@@ -152,6 +153,7 @@ public class PayloadLoader extends PayloadBlock{
|
||||
|
||||
//load up items
|
||||
if(payload.block().hasItems && items.any()){
|
||||
boolean acceptedAny = false;
|
||||
if(efficiency > 0.01f && timer(timerLoad, loadTime / efficiency)){
|
||||
//load up items a set amount of times
|
||||
for(int j = 0; j < itemsLoaded && items.any(); j++){
|
||||
@@ -162,6 +164,7 @@ public class PayloadLoader extends PayloadBlock{
|
||||
if(payload.build.acceptItem(payload.build, item)){
|
||||
payload.build.handleItem(payload.build, item);
|
||||
items.remove(item, 1);
|
||||
acceptedAny = true;
|
||||
break;
|
||||
}else if(payload.block().separateItemCapacity || payload.block().consumesItem(item)){
|
||||
exporting = true;
|
||||
@@ -171,6 +174,9 @@ public class PayloadLoader extends PayloadBlock{
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!acceptedAny){
|
||||
exporting = true;
|
||||
}
|
||||
}
|
||||
|
||||
//load up liquids
|
||||
@@ -180,8 +186,12 @@ public class PayloadLoader extends PayloadBlock{
|
||||
float flow = Math.min(Math.min(liquidsLoaded * edelta(), payload.block().liquidCapacity - payload.build.liquids.get(liq)), total);
|
||||
//TODO potential crash here
|
||||
if(payload.build.acceptLiquid(payload.build, liq)){
|
||||
payload.build.liquids.add(liq, flow);
|
||||
if(!(payload.block() instanceof LiquidVoid)){
|
||||
payload.build.liquids.add(liq, flow);
|
||||
}
|
||||
liquids.remove(liq, flow);
|
||||
}else{
|
||||
exporting = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,12 @@ public class LiquidVoid extends Block{
|
||||
}
|
||||
|
||||
public class LiquidVoidBuild extends Building{
|
||||
@Override
|
||||
public void placed(){
|
||||
super.placed();
|
||||
liquids.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean acceptLiquid(Building source, Liquid liquid){
|
||||
return enabled;
|
||||
|
||||
Reference in New Issue
Block a user