Fixed #5725
This commit is contained in:
@@ -41,6 +41,7 @@ abstract class PuddleComp implements Posc, Puddlec, Drawc{
|
||||
@Import int id;
|
||||
@Import float x, y;
|
||||
|
||||
transient private boolean mismatch = false;
|
||||
transient float accepting, updateTime, lastRipple = Time.time + Mathf.random(40f);
|
||||
float amount;
|
||||
Tile tile;
|
||||
@@ -73,8 +74,15 @@ abstract class PuddleComp implements Posc, Puddlec, Drawc{
|
||||
|
||||
amount = Mathf.clamp(amount, 0, maxLiquid);
|
||||
|
||||
if(amount <= 0f || Puddles.get(tile) != self()){
|
||||
if(amount <= 0f){
|
||||
remove();
|
||||
return;
|
||||
}
|
||||
|
||||
if(Puddles.get(tile) != self()){
|
||||
mismatch = true;
|
||||
remove();
|
||||
return;
|
||||
}
|
||||
|
||||
//effects-only code
|
||||
@@ -83,7 +91,7 @@ abstract class PuddleComp implements Posc, Puddlec, Drawc{
|
||||
|
||||
Units.nearby(rect.setSize(Mathf.clamp(amount / (maxLiquid / 1.5f)) * 10f).setCenter(x, y), unitCons);
|
||||
|
||||
if(liquid.temperature > 0.7f && (tile.build != null) && Mathf.chance(0.5)){
|
||||
if(liquid.temperature > 0.7f && tile.build != null && Mathf.chance(0.5)){
|
||||
Fires.create(tile);
|
||||
}
|
||||
|
||||
@@ -126,7 +134,9 @@ abstract class PuddleComp implements Posc, Puddlec, Drawc{
|
||||
|
||||
@Override
|
||||
public void remove(){
|
||||
Puddles.remove(tile);
|
||||
if(!mismatch){
|
||||
Puddles.remove(tile);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user