Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken 2020-12-24 11:43:08 -05:00
commit 1e8621d9d4
5 changed files with 22 additions and 5 deletions

View File

@ -109,3 +109,4 @@ VolasYouKnow
Quick-Korx
Ángel Rodríguez Aguilera
Catchears
younggam

View File

@ -53,7 +53,7 @@ public class Version{
int dot = str.indexOf('.');
if(dot != -1){
int major = Strings.parseInt(str.substring(0, dot), 0), minor = Strings.parseInt(str.substring(dot + 1), 0);
return build >= major && revision >= minor;
return build > major || (build == major && revision >= minor);
}else{
return build >= Strings.parseInt(str, 0);
}

View File

@ -384,6 +384,10 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc,
//endregion
//region handler methods
public boolean canUnload(){
return block.unloadable;
}
/** Called when an unloader takes an item. */
public void itemTaken(Item item){

View File

@ -179,14 +179,23 @@ public class StackConveyor extends Block implements Autotiler{
}
}
@Override
public boolean canUnload(){
return state != stateLoad;
}
@Override
public float efficiency(){
return 1f;
}
@Override
public void updateTile(){
// reel in crater
if(cooldown > 0f) cooldown = Mathf.clamp(cooldown - speed * edelta(), 0f, recharge);
if(link == -1){
return;
}
// indicates empty state
if(link == -1) return;
// crater needs to be centered
if(cooldown > 0f) return;
@ -196,6 +205,9 @@ public class StackConveyor extends Block implements Autotiler{
lastItem = items.first();
}
// do not continue if disabled, will still allow one to be reeled in to prevent visual stacking
if(!enabled) return;
if(state == stateUnload){ //unload
while(lastItem != null && (!splitOut ? moveForward(lastItem) : dump(lastItem))){
if(items.empty()) poofOut();

View File

@ -61,7 +61,7 @@ public class Unloader extends Block{
int pos = (offset + i) % proximity.size;
var other = proximity.get(pos);
if(other.interactable(team) && other.block.unloadable && other.block.hasItems
if(other.interactable(team) && other.block.unloadable && other.canUnload() && other.block.hasItems
&& ((sortItem == null && other.items.total() > 0) || (sortItem != null && other.items.has(sortItem)))){
//make sure the item can't be dumped back into this block
dumpingTo = other;