Fixed #9731
This commit is contained in:
@@ -2782,6 +2782,7 @@ public class Blocks{
|
|||||||
ambientSoundVolume = 0.06f;
|
ambientSoundVolume = 0.06f;
|
||||||
hasLiquids = true;
|
hasLiquids = true;
|
||||||
boostScale = 1f / 9f;
|
boostScale = 1f / 9f;
|
||||||
|
itemCapacity = 0;
|
||||||
outputLiquid = new LiquidStack(Liquids.water, 30f / 60f);
|
outputLiquid = new LiquidStack(Liquids.water, 30f / 60f);
|
||||||
consumePower(0.5f);
|
consumePower(0.5f);
|
||||||
liquidCapacity = 60f;
|
liquidCapacity = 60f;
|
||||||
@@ -5791,6 +5792,8 @@ public class Blocks{
|
|||||||
heatOutput = 1000f;
|
heatOutput = 1000f;
|
||||||
warmupRate = 1000f;
|
warmupRate = 1000f;
|
||||||
regionRotated1 = 1;
|
regionRotated1 = 1;
|
||||||
|
itemCapacity = 0;
|
||||||
|
alwaysUnlocked = false;
|
||||||
ambientSound = Sounds.none;
|
ambientSound = Sounds.none;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ public class Puddles{
|
|||||||
Puddle puddle = Puddle.create();
|
Puddle puddle = Puddle.create();
|
||||||
puddle.tile = tile;
|
puddle.tile = tile;
|
||||||
puddle.liquid = liquid;
|
puddle.liquid = liquid;
|
||||||
puddle.amount = amount;
|
puddle.amount = Math.min(amount, maxLiquid);
|
||||||
puddle.set(ax, ay);
|
puddle.set(ax, ay);
|
||||||
register(puddle);
|
register(puddle);
|
||||||
puddle.add();
|
puddle.add();
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ abstract class PuddleComp implements Posc, Puddlec, Drawc, Syncc{
|
|||||||
|
|
||||||
amount -= Time.delta * (1f - liquid.viscosity) / (5f + addSpeed);
|
amount -= Time.delta * (1f - liquid.viscosity) / (5f + addSpeed);
|
||||||
amount += accepting;
|
amount += accepting;
|
||||||
|
amount = Math.min(amount, maxLiquid);
|
||||||
accepting = 0f;
|
accepting = 0f;
|
||||||
|
|
||||||
if(amount >= maxLiquid / 1.5f){
|
if(amount >= maxLiquid / 1.5f){
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import arc.scene.ui.layout.*;
|
|||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
|
import mindustry.ai.types.*;
|
||||||
import mindustry.content.*;
|
import mindustry.content.*;
|
||||||
import mindustry.game.EventType.*;
|
import mindustry.game.EventType.*;
|
||||||
import mindustry.game.*;
|
import mindustry.game.*;
|
||||||
@@ -169,7 +170,8 @@ public class HintsFragment{
|
|||||||
depositItems(() -> player.unit().hasItem(), () -> !player.unit().hasItem()),
|
depositItems(() -> player.unit().hasItem(), () -> !player.unit().hasItem()),
|
||||||
desktopPause(visibleDesktop, () -> isTutorial.get() && !Vars.net.active() && state.wave >= 2, () -> Core.input.keyTap(Binding.pause)),
|
desktopPause(visibleDesktop, () -> isTutorial.get() && !Vars.net.active() && state.wave >= 2, () -> Core.input.keyTap(Binding.pause)),
|
||||||
unitControl(() -> isSerpulo() && state.rules.defaultTeam.data().units.size > 2 && !net.active() && !player.dead(), () -> !player.dead() && !player.unit().spawnedByCore),
|
unitControl(() -> isSerpulo() && state.rules.defaultTeam.data().units.size > 2 && !net.active() && !player.dead(), () -> !player.dead() && !player.unit().spawnedByCore),
|
||||||
unitSelectControl(() -> isSerpulo() && state.rules.defaultTeam.data().units.size > 3 && !net.active() && !player.dead(), () -> control.input.commandMode && control.input.selectedUnits.size > 0),
|
unitSelectControl(() -> isSerpulo() && state.rules.defaultTeam.data().units.size > 3 && !net.active() && !player.dead(),
|
||||||
|
() -> control.input.commandMode && control.input.selectedUnits.size > 0 && control.input.selectedUnits.first().controller() instanceof CommandAI ai && ai.targetPos != null),
|
||||||
respawn(visibleMobile, () -> !player.dead() && !player.unit().spawnedByCore, () -> !player.dead() && player.unit().spawnedByCore),
|
respawn(visibleMobile, () -> !player.dead() && !player.unit().spawnedByCore, () -> !player.dead() && player.unit().spawnedByCore),
|
||||||
launch(() -> (isTutorial.get() || Vars.state.rules.sector == SectorPresets.onset.sector) && state.rules.sector.isCaptured(), () -> ui.planet.isShown()),
|
launch(() -> (isTutorial.get() || Vars.state.rules.sector == SectorPresets.onset.sector) && state.rules.sector.isCaptured(), () -> ui.planet.isShown()),
|
||||||
schematicSelect(visibleDesktop, () -> ui.hints.placedBlocks.contains(Blocks.router) || ui.hints.placedBlocks.contains(Blocks.ductRouter), () -> Core.input.keyRelease(Binding.schematic_select) || Core.input.keyTap(Binding.pick)),
|
schematicSelect(visibleDesktop, () -> ui.hints.placedBlocks.contains(Blocks.router) || ui.hints.placedBlocks.contains(Blocks.ductRouter), () -> Core.input.keyRelease(Binding.schematic_select) || Core.input.keyTap(Binding.pick)),
|
||||||
|
|||||||
@@ -189,6 +189,13 @@ public class StackConveyor extends Block implements Autotiler{
|
|||||||
Draw.rect(lastItem.fullIcon, Tmp.v1.x, Tmp.v1.y, size, size, 0);
|
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
|
@Override
|
||||||
public void drawCracks(){
|
public void drawCracks(){
|
||||||
Draw.z(Layer.block - 0.15f);
|
Draw.z(Layer.block - 0.15f);
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import mindustry.graphics.*;
|
|||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
import mindustry.ui.*;
|
import mindustry.ui.*;
|
||||||
import mindustry.world.blocks.payloads.PayloadUnloader.*;
|
import mindustry.world.blocks.payloads.PayloadUnloader.*;
|
||||||
|
import mindustry.world.blocks.sandbox.*;
|
||||||
|
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
@@ -152,6 +153,7 @@ public class PayloadLoader extends PayloadBlock{
|
|||||||
|
|
||||||
//load up items
|
//load up items
|
||||||
if(payload.block().hasItems && items.any()){
|
if(payload.block().hasItems && items.any()){
|
||||||
|
boolean acceptedAny = false;
|
||||||
if(efficiency > 0.01f && timer(timerLoad, loadTime / efficiency)){
|
if(efficiency > 0.01f && timer(timerLoad, loadTime / efficiency)){
|
||||||
//load up items a set amount of times
|
//load up items a set amount of times
|
||||||
for(int j = 0; j < itemsLoaded && items.any(); j++){
|
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)){
|
if(payload.build.acceptItem(payload.build, item)){
|
||||||
payload.build.handleItem(payload.build, item);
|
payload.build.handleItem(payload.build, item);
|
||||||
items.remove(item, 1);
|
items.remove(item, 1);
|
||||||
|
acceptedAny = true;
|
||||||
break;
|
break;
|
||||||
}else if(payload.block().separateItemCapacity || payload.block().consumesItem(item)){
|
}else if(payload.block().separateItemCapacity || payload.block().consumesItem(item)){
|
||||||
exporting = true;
|
exporting = true;
|
||||||
@@ -171,6 +174,9 @@ public class PayloadLoader extends PayloadBlock{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(!acceptedAny){
|
||||||
|
exporting = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//load up liquids
|
//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);
|
float flow = Math.min(Math.min(liquidsLoaded * edelta(), payload.block().liquidCapacity - payload.build.liquids.get(liq)), total);
|
||||||
//TODO potential crash here
|
//TODO potential crash here
|
||||||
if(payload.build.acceptLiquid(payload.build, liq)){
|
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);
|
liquids.remove(liq, flow);
|
||||||
|
}else{
|
||||||
|
exporting = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,12 @@ public class LiquidVoid extends Block{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class LiquidVoidBuild extends Building{
|
public class LiquidVoidBuild extends Building{
|
||||||
|
@Override
|
||||||
|
public void placed(){
|
||||||
|
super.placed();
|
||||||
|
liquids.clear();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean acceptLiquid(Building source, Liquid liquid){
|
public boolean acceptLiquid(Building source, Liquid liquid){
|
||||||
return enabled;
|
return enabled;
|
||||||
|
|||||||
Reference in New Issue
Block a user