This commit is contained in:
Anuken
2020-12-21 13:08:44 -05:00
parent e3c68b485d
commit e4e428f84a

View File

@@ -194,6 +194,7 @@ public class LogicBlock extends Block{
public LExecutor executor = new LExecutor();
public float accumulator = 0;
public Seq<LogicLink> links = new Seq<>();
public boolean checkedDuplicates = false;
public void readCompressed(byte[] data, boolean relative){
DataInputStream stream = new DataInputStream(new InflaterInputStream(new ByteArrayInputStream(data)));
@@ -362,6 +363,21 @@ public class LogicBlock extends Block{
public void updateTile(){
executor.team = team;
if(!checkedDuplicates){
checkedDuplicates = true;
var removal = new IntSet();
var removeLinks = new Seq<LogicLink>();
for(var link : links){
var build = world.build(link.x, link.y);
if(build != null){
if(!removal.add(build.id)){
removeLinks.add(link);
}
}
}
links.removeAll(removeLinks);
}
//check for previously invalid links to add after configuration
boolean changed = false;
@@ -371,7 +387,7 @@ public class LogicBlock extends Block{
if(!l.active) continue;
boolean valid = validLink(world.build(l.x, l.y));
if(valid != l.valid ){
if(valid != l.valid){
changed = true;
l.valid = valid;
if(valid){