canvas read/write + multiplayer overwrite bug fix (#10899)

* stuff

* Update CanvasBlock.java

* canvas read/write

* updated flag

* dispose on every possible closing condition (back/cancel/ok)

* arraycopy

* hide listener

* partial colons

* fix updated and dedupe closing

* typo?
This commit is contained in:
The4codeblocks
2025-06-17 11:36:42 -05:00
committed by GitHub
parent 7a33de8fe3
commit 0185b08ca7
2 changed files with 62 additions and 16 deletions

View File

@@ -25,6 +25,7 @@ import mindustry.ui.*;
import mindustry.world.*;
import mindustry.world.blocks.environment.*;
import mindustry.world.blocks.logic.*;
import mindustry.world.blocks.logic.CanvasBlock.*;
import mindustry.world.blocks.logic.LogicBlock.*;
import mindustry.world.blocks.logic.LogicDisplay.*;
import mindustry.world.blocks.logic.MemoryBlock.*;
@@ -581,6 +582,8 @@ public class LExecutor{
}
}else if(target.isobj && target.objval instanceof CharSequence str){
output.setnum(address < 0 || address >= str.length() ? Double.NaN : (int)str.charAt(address));
}else if(from instanceof CanvasBuild canvas && (exec.privileged || (from.team == exec.team))){
output.setnum(canvas.getPixel(address));
}
}
}
@@ -611,6 +614,8 @@ public class LExecutor{
toVar.numval = value.numval;
toVar.isobj = value.isobj;
}
}else if(from instanceof CanvasBuild canvas && (exec.privileged || (from.team == exec.team))){
canvas.setPixel(address, (int)(value.numval));
}
}
}