mirror of
https://github.com/Anuken/Mindustry.git
synced 2026-10-02 11:10:50 +03:00
Removed camera sensors from non-privileged logic
This commit is contained in:
@@ -87,12 +87,19 @@ public enum LAccess{
|
||||
public final String[] params;
|
||||
public final boolean isObj;
|
||||
|
||||
public static final EnumSet<LAccess> privilegedAccess = EnumSet.of(cameraX, cameraY, cameraWidth, cameraHeight);
|
||||
|
||||
public static final LAccess[]
|
||||
all = values(),
|
||||
senseable = Seq.select(all, t -> t.params.length <= 1).toArray(LAccess.class),
|
||||
senseable = Seq.select(all, t -> t.params.length <= 1 && !t.isPrivileged()).toArray(LAccess.class),
|
||||
senseablePrivileged = Seq.select(all, t -> t.params.length <= 1).toArray(LAccess.class),
|
||||
controls = Seq.select(all, t -> t.params.length > 0).toArray(LAccess.class),
|
||||
settable = {x, y, velocityX, velocityY, rotation, speed, armor, health, shield, team, flag, totalPower, payloadType, bulletTime, bulletLifetime};
|
||||
|
||||
public boolean isPrivileged(){
|
||||
return privilegedAccess.contains(this);
|
||||
}
|
||||
|
||||
LAccess(String... params){
|
||||
this.params = params;
|
||||
isObj = false;
|
||||
|
||||
@@ -31,7 +31,6 @@ import mindustry.world.blocks.environment.*;
|
||||
import mindustry.world.blocks.logic.*;
|
||||
import mindustry.world.blocks.logic.LogicBlock.*;
|
||||
import mindustry.world.blocks.logic.LogicDisplay.*;
|
||||
import mindustry.world.blocks.logic.MessageBlock.*;
|
||||
import mindustry.world.blocks.payloads.*;
|
||||
import mindustry.world.meta.*;
|
||||
|
||||
@@ -694,7 +693,7 @@ public class LExecutor{
|
||||
if(sense instanceof Content co){
|
||||
to.setnum(se.sense(co));
|
||||
return;
|
||||
}else if(sense instanceof LAccess la){
|
||||
}else if(sense instanceof LAccess la && (exec.privileged || !la.isPrivileged())){
|
||||
Object objOut = se.senseObject(la);
|
||||
|
||||
if(objOut == Senseable.noSensed){
|
||||
|
||||
@@ -629,7 +629,8 @@ public class LStatements{
|
||||
}),
|
||||
//sensors
|
||||
new Table(i -> {
|
||||
for(LAccess sensor : LAccess.senseable){
|
||||
boolean currentPrivileged = ui.logic.isShown() && ui.logic.privileged;
|
||||
for(LAccess sensor : (currentPrivileged ? LAccess.senseablePrivileged : LAccess.senseable)){
|
||||
i.button(sensor.name(), Styles.flatt, () -> {
|
||||
stype("@" + sensor.name());
|
||||
hide.run();
|
||||
|
||||
Reference in New Issue
Block a user