Bugfixes / Logic category (no icon) / Switch block

This commit is contained in:
Anuken
2020-08-10 17:09:54 -04:00
parent c560de9c53
commit 4f7d6fc018
25 changed files with 2879 additions and 2712 deletions

View File

@@ -284,7 +284,7 @@ public abstract class Turret extends Block{
}
protected boolean validateTarget(){
return !Units.invalidateTarget(target, team, x, y) || isControlled();
return !Units.invalidateTarget(target, team, x, y) || isControlled() || logicControlled();
}
protected void findTarget(){

View File

@@ -1,4 +1,4 @@
package mindustry.world.blocks.storage;
package mindustry.world.blocks.logic;
import arc.*;
import arc.Input.*;

View File

@@ -0,0 +1,45 @@
package mindustry.world.blocks.logic;
import arc.graphics.g2d.*;
import mindustry.annotations.Annotations.*;
import mindustry.gen.*;
import mindustry.logic.*;
import mindustry.world.*;
public class SwitchBlock extends Block{
public @Load("@-on") TextureRegion onRegion;
public SwitchBlock(String name){
super(name);
configurable = true;
update = true;
config(Boolean.class, (ButtonEntity entity, Boolean b) -> entity.on = b);
}
public class ButtonEntity extends Building{
public boolean on;
@Override
public double sense(LAccess sensor){
if(sensor == LAccess.enabled) return on ? 1 : 0;
return super.sense(sensor);
}
@Override
public boolean configTapped(){
configure(!on);
Sounds.click.at(this);
return false;
}
@Override
public void draw(){
super.draw();
if(on){
Draw.rect(onRegion, x, y);
}
}
}
}