Small deconstructor

This commit is contained in:
Anuken
2021-12-06 14:30:54 -05:00
parent c4dc6511fd
commit 26692a3199
14 changed files with 30 additions and 8 deletions

View File

@@ -781,6 +781,10 @@ public class Block extends UnlockableContent{
return buildVisibility != BuildVisibility.hidden && buildVisibility != BuildVisibility.debugOnly;
}
public boolean environmentBuildable(){
return (state.rules.hiddenBuildItems.isEmpty() || !Structs.contains(requirements, i -> state.rules.hiddenBuildItems.contains(i.item)));
}
public boolean isStatic(){
return cacheLayer == CacheLayer.walls;
}

View File

@@ -9,6 +9,7 @@ import mindustry.content.*;
import mindustry.entities.units.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.logic.*;
import mindustry.type.*;
import mindustry.ui.*;
import mindustry.world.*;
@@ -136,6 +137,12 @@ public abstract class BlockProducer extends PayloadBlock{
Draw.rect(topRegion, x, y);
}
@Override
public double sense(LAccess sensor){
if(sensor == LAccess.progress) return progress;
return super.sense(sensor);
}
@Override
public void write(Writes write){
super.write(write);

View File

@@ -43,7 +43,7 @@ public class Constructor extends BlockProducer{
}
public boolean canProduce(Block b){
return b.isVisible() && b.size >= minBlockSize && b.size <= maxBlockSize && !(b instanceof CoreBlock) && !state.rules.bannedBlocks.contains(b);
return b.isVisible() && b.size >= minBlockSize && b.size <= maxBlockSize && !(b instanceof CoreBlock) && !state.rules.bannedBlocks.contains(b) && b.environmentBuildable();
}
public class ConstructorBuild extends BlockProducerBuild{

View File

@@ -7,6 +7,7 @@ import arc.util.io.*;
import mindustry.content.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.logic.*;
import mindustry.ui.*;
import static mindustry.Vars.*;
@@ -189,6 +190,12 @@ public class PayloadDeconstructor extends PayloadBlock{
}
}
@Override
public double sense(LAccess sensor){
if(sensor == LAccess.progress) return progress;
return super.sense(sensor);
}
@Override
public boolean shouldConsume(){
return deconstructing != null && enabled;

View File

@@ -71,7 +71,7 @@ public class PayloadSource extends PayloadBlock{
}
public boolean canProduce(Block b){
return b.isVisible() && b.size < size && !(b instanceof CoreBlock) && !state.rules.bannedBlocks.contains(b);
return b.isVisible() && b.size < size && !(b instanceof CoreBlock) && !state.rules.bannedBlocks.contains(b) && b.environmentBuildable();
}
public boolean canProduce(UnitType t){