Fixed #2834
This commit is contained in:
@@ -465,8 +465,8 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
return block.consumes.itemFilters.get(item.id) && items.get(item) < getMaximumAccepted(item);
|
return block.consumes.itemFilters.get(item.id) && items.get(item) < getMaximumAccepted(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean acceptLiquid(Building source, Liquid liquid, float amount){
|
public boolean acceptLiquid(Building source, Liquid liquid){
|
||||||
return block.hasLiquids && liquids.get(liquid) + amount < block.liquidCapacity && block.consumes.liquidfilters.get(liquid.id);
|
return block.hasLiquids && block.consumes.liquidfilters.get(liquid.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleLiquid(Building source, Liquid liquid, float amount){
|
public void handleLiquid(Building source, Liquid liquid, float amount){
|
||||||
@@ -498,7 +498,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
public void transferLiquid(Building next, float amount, Liquid liquid){
|
public void transferLiquid(Building next, float amount, Liquid liquid){
|
||||||
float flow = Math.min(next.block.liquidCapacity - next.liquids.get(liquid), amount);
|
float flow = Math.min(next.block.liquidCapacity - next.liquids.get(liquid), amount);
|
||||||
|
|
||||||
if(next.acceptLiquid(self(), liquid, flow)){
|
if(next.acceptLiquid(self(), liquid)){
|
||||||
next.handleLiquid(self(), liquid, flow);
|
next.handleLiquid(self(), liquid, flow);
|
||||||
liquids.remove(liquid, flow);
|
liquids.remove(liquid, flow);
|
||||||
}
|
}
|
||||||
@@ -530,7 +530,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
|
|||||||
float flow = Math.min(Mathf.clamp((fract - ofract) * (1f)) * (block.liquidCapacity), liquids.get(liquid));
|
float flow = Math.min(Mathf.clamp((fract - ofract) * (1f)) * (block.liquidCapacity), liquids.get(liquid));
|
||||||
flow = Math.min(flow, next.block.liquidCapacity - next.liquids.get(liquid));
|
flow = Math.min(flow, next.block.liquidCapacity - next.liquids.get(liquid));
|
||||||
|
|
||||||
if(flow > 0f && ofract <= fract && next.acceptLiquid(self(), liquid, flow)){
|
if(flow > 0f && ofract <= fract && next.acceptLiquid(self(), liquid)){
|
||||||
next.handleLiquid(self(), liquid, flow);
|
next.handleLiquid(self(), liquid, flow);
|
||||||
liquids.remove(liquid, flow);
|
liquids.remove(liquid, flow);
|
||||||
return flow;
|
return flow;
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ public class LiquidTurret extends Turret{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean acceptLiquid(Building source, Liquid liquid, float amount){
|
public boolean acceptLiquid(Building source, Liquid liquid){
|
||||||
return ammoTypes.get(liquid) != null
|
return ammoTypes.get(liquid) != null
|
||||||
&& (liquids.current() == liquid || (ammoTypes.containsKey(liquids.current())
|
&& (liquids.current() == liquid || (ammoTypes.containsKey(liquids.current())
|
||||||
&& liquids.get(liquids.current()) <= 1f / ammoTypes.get(liquids.current()).ammoMultiplier + 0.001f));
|
&& liquids.get(liquids.current()) <= 1f / ammoTypes.get(liquids.current()).ammoMultiplier + 0.001f));
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ public class ItemBridge extends Block{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean acceptLiquid(Building source, Liquid liquid, float amount){
|
public boolean acceptLiquid(Building source, Liquid liquid){
|
||||||
if(team != source.team || !hasLiquids) return false;
|
if(team != source.team || !hasLiquids) return false;
|
||||||
|
|
||||||
Tile other = world.tile(link);
|
Tile other = world.tile(link);
|
||||||
@@ -368,7 +368,7 @@ public class ItemBridge extends Block{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return liquids.get(liquid) + amount < liquidCapacity && (liquids.current() == liquid || liquids.get(liquids.current()) < 0.2f);
|
return (liquids.current() == liquid || liquids.get(liquids.current()) < 0.2f);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean linked(Building source){
|
protected boolean linked(Building source){
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ public class ArmoredConduit extends Conduit{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean acceptLiquid(Building source, Liquid liquid, float amount){
|
public boolean acceptLiquid(Building source, Liquid liquid){
|
||||||
return super.acceptLiquid(source, liquid, amount) && (source.block instanceof Conduit ||
|
return super.acceptLiquid(source, liquid) && (source.block instanceof Conduit ||
|
||||||
source.tile.absoluteRelativeTo(tile.x, tile.y) == rotation);
|
source.tile.absoluteRelativeTo(tile.x, tile.y) == rotation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,9 +120,9 @@ public class Conduit extends LiquidBlock implements Autotiler{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean acceptLiquid(Building source, Liquid liquid, float amount){
|
public boolean acceptLiquid(Building source, Liquid liquid){
|
||||||
noSleep();
|
noSleep();
|
||||||
return liquids.get(liquid) + amount < liquidCapacity && (liquids.current() == liquid || liquids.currentAmount() < 0.2f)
|
return (liquids.current() == liquid || liquids.currentAmount() < 0.2f)
|
||||||
&& ((source.relativeTo(tile.x, tile.y) + 2) % 4 != rotation);
|
&& ((source.relativeTo(tile.x, tile.y) + 2) % 4 != rotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class LiquidJunction extends LiquidBlock{
|
|||||||
int dir = source.relativeTo(tile.x, tile.y);
|
int dir = source.relativeTo(tile.x, tile.y);
|
||||||
dir = (dir + 4) % 4;
|
dir = (dir + 4) % 4;
|
||||||
Building next = nearby(dir);
|
Building next = nearby(dir);
|
||||||
if(next == null || (!next.acceptLiquid(this, liquid, 0f) && !(next.block instanceof LiquidJunction))){
|
if(next == null || (!next.acceptLiquid(this, liquid) && !(next.block instanceof LiquidJunction))){
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
return next.getLiquidDestination(this, liquid);
|
return next.getLiquidDestination(this, liquid);
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ public class LiquidRouter extends LiquidBlock{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean acceptLiquid(Building source, Liquid liquid, float amount){
|
public boolean acceptLiquid(Building source, Liquid liquid){
|
||||||
return liquids.get(liquid) + amount < liquidCapacity && (liquids.current() == liquid || liquids.currentAmount() < 0.2f);
|
return (liquids.current() == liquid || liquids.currentAmount() < 0.2f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class Incinerator extends Block{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean acceptLiquid(Building source, Liquid liquid, float amount){
|
public boolean acceptLiquid(Building source, Liquid liquid){
|
||||||
return heat > 0.5f;
|
return heat > 0.5f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public class LiquidVoid extends Block{
|
|||||||
|
|
||||||
public class LiquidVoidBuild extends Building{
|
public class LiquidVoidBuild extends Building{
|
||||||
@Override
|
@Override
|
||||||
public boolean acceptLiquid(Building source, Liquid liquid, float amount){
|
public boolean acceptLiquid(Building source, Liquid liquid){
|
||||||
return enabled;
|
return enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ public class ItemLiquidGeneratorTests extends PowerTestFixture{
|
|||||||
final float expectedRemainingLiquidAmount = Math.max(0.0f, availableLiquidAmount - expectedConsumptionPerTick * Time.delta);
|
final float expectedRemainingLiquidAmount = Math.max(0.0f, availableLiquidAmount - expectedConsumptionPerTick * Time.delta);
|
||||||
|
|
||||||
createGenerator(inputType);
|
createGenerator(inputType);
|
||||||
assertTrue(entity.acceptLiquid(null, liquid, availableLiquidAmount), inputType + " | " + parameterDescription + ": Liquids which will be declined by the generator don't need to be tested - The code won't be called for those cases.");
|
assertTrue(entity.acceptLiquid(null, liquid), inputType + " | " + parameterDescription + ": Liquids which will be declined by the generator don't need to be tested - The code won't be called for those cases.");
|
||||||
|
|
||||||
entity.liquids.add(liquid, availableLiquidAmount);
|
entity.liquids.add(liquid, availableLiquidAmount);
|
||||||
entity.cons.update();
|
entity.cons.update();
|
||||||
|
|||||||
Reference in New Issue
Block a user