From 62d8cb0b25ce7ab48d110ac4516247cffc9ad617 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 3 Feb 2019 11:22:53 -0500 Subject: [PATCH] Impact reactor --- ...r-bottom.png => impact-reactor-bottom.png} | Bin ...tor-light.png => impact-reactor-light.png} | Bin ...asma-0.png => impact-reactor-plasma-0.png} | Bin ...asma-1.png => impact-reactor-plasma-1.png} | Bin ...asma-2.png => impact-reactor-plasma-2.png} | Bin ...asma-3.png => impact-reactor-plasma-3.png} | Bin ...reactor-top.png => impact-reactor-top.png} | Bin ...{fusion-reactor.png => impact-reactor.png} | Bin core/assets/bundles/bundle.properties | 1 + .../io/anuke/mindustry/content/Blocks.java | 13 +++++----- .../src/io/anuke/mindustry/content/Zones.java | 2 +- .../world/blocks/power/ImpactGenerator.java | 24 ------------------ ...{FusionReactor.java => ImpactReactor.java} | 11 ++++++-- .../world/blocks/power/PowerGraph.java | 5 +++- 14 files changed, 21 insertions(+), 35 deletions(-) rename core/assets-raw/sprites/blocks/power/{fusion-reactor-bottom.png => impact-reactor-bottom.png} (100%) rename core/assets-raw/sprites/blocks/power/{fusion-reactor-light.png => impact-reactor-light.png} (100%) rename core/assets-raw/sprites/blocks/power/{fusion-reactor-plasma-0.png => impact-reactor-plasma-0.png} (100%) rename core/assets-raw/sprites/blocks/power/{fusion-reactor-plasma-1.png => impact-reactor-plasma-1.png} (100%) rename core/assets-raw/sprites/blocks/power/{fusion-reactor-plasma-2.png => impact-reactor-plasma-2.png} (100%) rename core/assets-raw/sprites/blocks/power/{fusion-reactor-plasma-3.png => impact-reactor-plasma-3.png} (100%) rename core/assets-raw/sprites/blocks/power/{fusion-reactor-top.png => impact-reactor-top.png} (100%) rename core/assets-raw/sprites/blocks/power/{fusion-reactor.png => impact-reactor.png} (100%) delete mode 100644 core/src/io/anuke/mindustry/world/blocks/power/ImpactGenerator.java rename core/src/io/anuke/mindustry/world/blocks/power/{FusionReactor.java => ImpactReactor.java} (92%) diff --git a/core/assets-raw/sprites/blocks/power/fusion-reactor-bottom.png b/core/assets-raw/sprites/blocks/power/impact-reactor-bottom.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/fusion-reactor-bottom.png rename to core/assets-raw/sprites/blocks/power/impact-reactor-bottom.png diff --git a/core/assets-raw/sprites/blocks/power/fusion-reactor-light.png b/core/assets-raw/sprites/blocks/power/impact-reactor-light.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/fusion-reactor-light.png rename to core/assets-raw/sprites/blocks/power/impact-reactor-light.png diff --git a/core/assets-raw/sprites/blocks/power/fusion-reactor-plasma-0.png b/core/assets-raw/sprites/blocks/power/impact-reactor-plasma-0.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/fusion-reactor-plasma-0.png rename to core/assets-raw/sprites/blocks/power/impact-reactor-plasma-0.png diff --git a/core/assets-raw/sprites/blocks/power/fusion-reactor-plasma-1.png b/core/assets-raw/sprites/blocks/power/impact-reactor-plasma-1.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/fusion-reactor-plasma-1.png rename to core/assets-raw/sprites/blocks/power/impact-reactor-plasma-1.png diff --git a/core/assets-raw/sprites/blocks/power/fusion-reactor-plasma-2.png b/core/assets-raw/sprites/blocks/power/impact-reactor-plasma-2.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/fusion-reactor-plasma-2.png rename to core/assets-raw/sprites/blocks/power/impact-reactor-plasma-2.png diff --git a/core/assets-raw/sprites/blocks/power/fusion-reactor-plasma-3.png b/core/assets-raw/sprites/blocks/power/impact-reactor-plasma-3.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/fusion-reactor-plasma-3.png rename to core/assets-raw/sprites/blocks/power/impact-reactor-plasma-3.png diff --git a/core/assets-raw/sprites/blocks/power/fusion-reactor-top.png b/core/assets-raw/sprites/blocks/power/impact-reactor-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/fusion-reactor-top.png rename to core/assets-raw/sprites/blocks/power/impact-reactor-top.png diff --git a/core/assets-raw/sprites/blocks/power/fusion-reactor.png b/core/assets-raw/sprites/blocks/power/impact-reactor.png similarity index 100% rename from core/assets-raw/sprites/blocks/power/fusion-reactor.png rename to core/assets-raw/sprites/blocks/power/impact-reactor.png diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 2db528fe7f..e55cd6222e 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -579,6 +579,7 @@ block.battery-large.name = Large Battery block.combustion-generator.name = Combustion Generator block.turbine-generator.name = Turbine Generator block.differential-generator.name = Differential Generator +block.impact-reactor.name = Impact Reactor block.mechanical-drill.name = Mechanical Drill block.pneumatic-drill.name = Pneumatic Drill block.laser-drill.name = Laser Drill diff --git a/core/src/io/anuke/mindustry/content/Blocks.java b/core/src/io/anuke/mindustry/content/Blocks.java index 53717f3fa9..f24f78749d 100644 --- a/core/src/io/anuke/mindustry/content/Blocks.java +++ b/core/src/io/anuke/mindustry/content/Blocks.java @@ -60,7 +60,7 @@ public class Blocks implements ContentList{ //power combustionGenerator, thermalGenerator, turbineGenerator, differentialGenerator, rtgGenerator, solarPanel, largeSolarPanel, thoriumReactor, - fusionReactor, battery, batteryLarge, powerNode, powerNodeLarge, surgeTower, + impactReactor, battery, batteryLarge, powerNode, powerNodeLarge, surgeTower, //production mechanicalDrill, pneumaticDrill, laserDrill, blastDrill, plasmaDrill, waterExtractor, oilExtractor, cultivator, @@ -408,12 +408,10 @@ public class Blocks implements ContentList{ requirements(Category.crafting, ItemStack.with(Items.lead, 60, Items.titanium, 40)); hasItems = true; hasPower = true; - hasLiquids = true; output = Items.blastCompound; size = 2; - consumes.liquid(Liquids.oil, 0.05f); - consumes.item(Items.pyratite, 1); + consumes.items(new ItemStack(Items.pyratite, 1), new ItemStack(Items.biomatter, 1)); consumes.power(0.40f); }}; @@ -884,13 +882,14 @@ public class Blocks implements ContentList{ consumes.liquid(Liquids.cryofluid, maxLiquidUse); }}; - fusionReactor = new ImpactGenerator("fusion-reactor"){{ + impactReactor = new ImpactReactor("impact-reactor"){{ requirements(Category.power, ItemStack.with(Items.lead, 800, Items.silicon, 600, Items.graphite, 600, Items.thorium, 200, Items.surgealloy, 400, Items.metaglass, 200)); size = 4; health = 900; powerProduction = 70f; - //consumes.power(20f); - consumes.liquid(Liquids.water, 0.5f); + consumes.power(20f); + consumes.item(Items.blastCompound); + consumes.liquid(Liquids.water, 0.3f); }}; //endregion power diff --git a/core/src/io/anuke/mindustry/content/Zones.java b/core/src/io/anuke/mindustry/content/Zones.java index b1e2bfdf45..ee5306da67 100644 --- a/core/src/io/anuke/mindustry/content/Zones.java +++ b/core/src/io/anuke/mindustry/content/Zones.java @@ -477,7 +477,7 @@ public class Zones implements ContentList{ }}; */ - nuclearComplex = new Zone("nuclearComplex", new MapGenerator("nuclearProductionComplex") + nuclearComplex = new Zone("nuclearComplex", new MapGenerator("nuclearProductionComplex", 1) .drops(ItemStack.with(Items.copper, 2000, Items.lead, 1500, Items.silicon, 1000, Items.graphite, 1000, Items.thorium, 200, Items.titanium, 2000, Items.metaglass, 1000)) .decor(new Decoration(Blocks.snow, Blocks.sporeCluster, 0.01))){{ deployCost = ItemStack.with(Items.copper, 3000, Items.lead, 2000, Items.silicon, 1000, Items.metaglass, 500); diff --git a/core/src/io/anuke/mindustry/world/blocks/power/ImpactGenerator.java b/core/src/io/anuke/mindustry/world/blocks/power/ImpactGenerator.java deleted file mode 100644 index 3523bd0880..0000000000 --- a/core/src/io/anuke/mindustry/world/blocks/power/ImpactGenerator.java +++ /dev/null @@ -1,24 +0,0 @@ -package io.anuke.mindustry.world.blocks.power; - -import io.anuke.mindustry.type.Item; -import io.anuke.mindustry.type.Liquid; - -public class ImpactGenerator extends TurbineGenerator{ - - public ImpactGenerator(String name){ - super(name); - minItemEfficiency = 0.5f; - minLiquidEfficiency = 0.5f; - randomlyExplode = false; - } - - @Override - protected float getItemEfficiency(Item item){ - return item.explosiveness; - } - - @Override - protected float getLiquidEfficiency(Liquid liquid){ - return liquid.explosiveness; - } -} diff --git a/core/src/io/anuke/mindustry/world/blocks/power/FusionReactor.java b/core/src/io/anuke/mindustry/world/blocks/power/ImpactReactor.java similarity index 92% rename from core/src/io/anuke/mindustry/world/blocks/power/FusionReactor.java rename to core/src/io/anuke/mindustry/world/blocks/power/ImpactReactor.java index 644b7a3620..c9f18e8aed 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/FusionReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/ImpactReactor.java @@ -14,14 +14,17 @@ import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; -public class FusionReactor extends PowerGenerator{ +public class ImpactReactor extends PowerGenerator{ + protected int timerUse = timers++; + protected int plasmas = 4; protected float warmupSpeed = 0.001f; + protected float useTime = 60f; protected Color plasma1 = Color.valueOf("ffd06b"), plasma2 = Color.valueOf("ff361b"); protected Color ind1 = Color.valueOf("858585"), ind2 = Color.valueOf("fea080"); - public FusionReactor(String name){ + public ImpactReactor(String name){ super(name); hasPower = true; hasLiquids = true; @@ -37,6 +40,10 @@ public class FusionReactor extends PowerGenerator{ if(entity.cons.valid()){ entity.warmup = Mathf.lerpDelta(entity.warmup, 1f, warmupSpeed); + + if(entity.timer.get(timerUse, useTime)){ + entity.items.remove(consumes.item(), consumes.itemAmount()); + } }else{ entity.warmup = Mathf.lerpDelta(entity.warmup, 0f, 0.01f); } diff --git a/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java b/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java index e25e8a649e..c0c88feb5d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java @@ -167,7 +167,10 @@ public class PowerGraph{ tile.entity.power.graph = this; all.add(tile); - if(tile.block().outputsPower && tile.block().consumesPower){ + if(tile.block().outputsPower && tile.block().consumesPower && !tile.block().consumes.get(ConsumePower.class).isBuffered){ + producers.add(tile); + consumers.add(tile); + }else if(tile.block().outputsPower && tile.block().consumesPower){ batteries.add(tile); }else if(tile.block().outputsPower){ producers.add(tile);