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:
1ue999
2025-04-21 15:36:24 +02:00
committed by GitHub
parent b9c900490e
commit ab0a47a837
2 changed files with 31 additions and 0 deletions

View File

@@ -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];

View File

@@ -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);
}
}
}