Upgradeable cores

This commit is contained in:
Anuken
2020-06-27 19:16:39 -04:00
parent 313cadb763
commit 80332e37d5
63 changed files with 365 additions and 290 deletions

View File

@@ -9,7 +9,9 @@ import mindustry.content.*;
import mindustry.mod.Mods.*;
import mindustry.type.*;
import mindustry.world.*;
import mindustry.world.blocks.power.*;
import mindustry.world.blocks.storage.*;
import mindustry.world.consumers.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
@@ -29,6 +31,14 @@ public class Schematic implements Publishable, Comparable<Schematic>{
this.height = height;
}
public float powerProduction(){
return tiles.sumf(s -> s.block instanceof PowerGenerator ? ((PowerGenerator)s.block).powerProduction : 0f);
}
public float powerConsumption(){
return tiles.sumf(s -> s.block.consumes.has(ConsumeType.power) ? s.block.consumes.getPower().usage : 0f);
}
public Seq<ItemStack> requirements(){
IntIntMap amounts = new IntIntMap();

View File

@@ -349,7 +349,7 @@ public class Schematics implements Loadable{
Building tile = world.ent(cx, cy);
if(tile != null && !counted.contains(tile.pos()) && !(tile.block() instanceof BuildBlock)
&& (tile.block().isVisible() || (tile.block() instanceof CoreBlock && Core.settings.getBool("coreselect")))){
&& (tile.block().isVisible() || (tile.block() instanceof CoreBlock))){
Object config = tile.config();
tiles.add(new Stile(tile.block(), tile.tileX() + offsetX, tile.tileY() + offsetY, config, (byte)tile.rotation()));
@@ -388,8 +388,8 @@ public class Schematics implements Loadable{
tile.rotation(st.rotation);
Object config = st.config;
if(tile.entity != null){
tile.entity.configureAny(config);
if(tile.build != null){
tile.build.configureAny(config);
}
if(st.block instanceof Drill){
@@ -408,8 +408,8 @@ public class Schematics implements Loadable{
tile.rotation(st.rotation);
Object config = st.config;
if(tile.entity != null){
tile.entity.configureAny(config);
if(tile.build != null){
tile.build.configureAny(config);
}
});
}