Fixed order of operations causing Has Work to flicker on and off when pointed at a clear Filler in loop mode that currently had no blocks to clear. Also fixes Fillers running while done and not in loop mode.
This commit is contained in:
parent
7e5e277a4c
commit
98b68810a3
1 changed files with 14 additions and 7 deletions
|
@ -84,12 +84,6 @@ public class TileFiller extends TileAbstractBuilder implements IMachine, IAction
|
|||
return;
|
||||
}
|
||||
|
||||
if (done) {
|
||||
if (lastMode == Mode.Loop) {
|
||||
done = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (lastMode == Mode.Off) {
|
||||
return;
|
||||
}
|
||||
|
@ -102,6 +96,16 @@ public class TileFiller extends TileAbstractBuilder implements IMachine, IAction
|
|||
return;
|
||||
}
|
||||
|
||||
boolean oldDone = done;
|
||||
|
||||
if (done) {
|
||||
if (lastMode == Mode.Loop) {
|
||||
done = false;
|
||||
}else{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (currentPattern != null && currentTemplate == null) {
|
||||
currentTemplate = currentPattern.getTemplateBuilder(box, getWorld());
|
||||
context = currentTemplate.getContext();
|
||||
|
@ -113,9 +117,12 @@ public class TileFiller extends TileAbstractBuilder implements IMachine, IAction
|
|||
if (currentTemplate.isDone(this)) {
|
||||
done = true;
|
||||
currentTemplate = null;
|
||||
sendNetworkUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
if(oldDone != done){
|
||||
sendNetworkUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue