Conveyor progress (#10620)
* sensor progressssssssssssssssssssssssss * for duct aswell * better setprop for conveyors * slight performance improvement i assume * * import * check if len is 0
This commit is contained in:
@@ -9,6 +9,7 @@ import arc.util.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.content.*;
|
||||
import mindustry.ctype.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.entities.units.*;
|
||||
import mindustry.gen.*;
|
||||
@@ -431,12 +432,35 @@ public class Conveyor extends Block implements Autotiler{
|
||||
updateTile();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double sense(LAccess sensor){
|
||||
if(sensor == LAccess.progress){
|
||||
if(len == 0) return 0;
|
||||
return ys[len - 1];
|
||||
}
|
||||
return super.sense(sensor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object senseObject(LAccess sensor){
|
||||
if(sensor == LAccess.firstItem && len > 0) return ids[len - 1];
|
||||
return super.senseObject(sensor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setProp(UnlockableContent content, double value){
|
||||
if(content instanceof Item item && items != null){
|
||||
int amount = Math.min((int)value, capacity);
|
||||
if(items.get(item) != amount){
|
||||
if(items.get(item) < amount){
|
||||
handleStack(item, amount - items.get(item), null);
|
||||
}else if(amount >= 0){
|
||||
removeStack(item, items.get(item) - amount);
|
||||
}
|
||||
}
|
||||
}else super.setProp(content, value);
|
||||
}
|
||||
|
||||
public final void add(int o){
|
||||
for(int i = Math.max(o + 1, len); i > o; i--){
|
||||
ids[i] = ids[i - 1];
|
||||
|
||||
@@ -16,6 +16,7 @@ import mindustry.entities.units.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.input.*;
|
||||
import mindustry.logic.*;
|
||||
import mindustry.type.*;
|
||||
import mindustry.world.*;
|
||||
import mindustry.world.blocks.*;
|
||||
@@ -263,5 +264,11 @@ public class Duct extends Block implements Autotiler{
|
||||
}
|
||||
current = items.first();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double sense(LAccess sensor){
|
||||
if(sensor == LAccess.progress) return progress;
|
||||
return super.sense(sensor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user