diff --git a/core/assets-raw/sprites/blocks/environment/sand1.png b/core/assets-raw/sprites/blocks/environment/sand1.png index c7941f0059..9ca1dda7a0 100644 Binary files a/core/assets-raw/sprites/blocks/environment/sand1.png and b/core/assets-raw/sprites/blocks/environment/sand1.png differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 32b8e448c1..0f31d83147 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -30,6 +30,8 @@ import mindustry.world.consumers.*; import mindustry.world.draw.*; import mindustry.world.meta.*; +import static mindustry.type.ItemStack.*; + public class Blocks implements ContentList{ public static Block @@ -446,7 +448,7 @@ public class Blocks implements ContentList{ //region crafting graphitePress = new GenericCrafter("graphite-press"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 75, Items.lead, 30)); + requirements(Category.crafting, with(Items.copper, 75, Items.lead, 30)); craftEffect = Fx.pulverizeMedium; outputItem = new ItemStack(Items.graphite, 1); @@ -458,7 +460,7 @@ public class Blocks implements ContentList{ }}; multiPress = new GenericCrafter("multi-press"){{ - requirements(Category.crafting, ItemStack.with(Items.titanium, 100, Items.silicon, 25, Items.lead, 100, Items.graphite, 50)); + requirements(Category.crafting, with(Items.titanium, 100, Items.silicon, 25, Items.lead, 100, Items.graphite, 50)); craftEffect = Fx.pulverizeMedium; outputItem = new ItemStack(Items.graphite, 2); @@ -474,7 +476,7 @@ public class Blocks implements ContentList{ }}; siliconSmelter = new GenericSmelter("silicon-smelter"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 30, Items.lead, 25)); + requirements(Category.crafting, with(Items.copper, 30, Items.lead, 25)); craftEffect = Fx.smeltsmoke; outputItem = new ItemStack(Items.silicon, 1); craftTime = 40f; @@ -488,7 +490,7 @@ public class Blocks implements ContentList{ }}; siliconCrucible = new AttributeSmelter("silicon-crucible"){{ - requirements(Category.crafting, ItemStack.with(Items.titanium, 120, Items.metaglass, 80, Items.plastanium, 35, Items.silicon, 60)); + requirements(Category.crafting, with(Items.titanium, 120, Items.metaglass, 80, Items.plastanium, 35, Items.silicon, 60)); craftEffect = Fx.smeltsmoke; outputItem = new ItemStack(Items.silicon, 5); craftTime = 140f; @@ -504,7 +506,7 @@ public class Blocks implements ContentList{ }}; kiln = new GenericSmelter("kiln"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.graphite, 30, Items.lead, 30)); + requirements(Category.crafting, with(Items.copper, 60, Items.graphite, 30, Items.lead, 30)); craftEffect = Fx.smeltsmoke; outputItem = new ItemStack(Items.metaglass, 1); craftTime = 30f; @@ -517,7 +519,7 @@ public class Blocks implements ContentList{ }}; plastaniumCompressor = new GenericCrafter("plastanium-compressor"){{ - requirements(Category.crafting, ItemStack.with(Items.silicon, 80, Items.lead, 115, Items.graphite, 60, Items.titanium, 80)); + requirements(Category.crafting, with(Items.silicon, 80, Items.lead, 115, Items.graphite, 60, Items.titanium, 80)); hasItems = true; liquidCapacity = 60f; craftTime = 60f; @@ -535,7 +537,7 @@ public class Blocks implements ContentList{ }}; phaseWeaver = new GenericCrafter("phase-weaver"){{ - requirements(Category.crafting, ItemStack.with(Items.silicon, 130, Items.lead, 120, Items.thorium, 75)); + requirements(Category.crafting, with(Items.silicon, 130, Items.lead, 120, Items.thorium, 75)); craftEffect = Fx.smeltsmoke; outputItem = new ItemStack(Items.phasefabric, 1); craftTime = 120f; @@ -549,7 +551,7 @@ public class Blocks implements ContentList{ }}; surgeSmelter = new GenericSmelter("alloy-smelter"){{ - requirements(Category.crafting, ItemStack.with(Items.silicon, 80, Items.lead, 80, Items.thorium, 70)); + requirements(Category.crafting, with(Items.silicon, 80, Items.lead, 80, Items.thorium, 70)); craftEffect = Fx.smeltsmoke; outputItem = new ItemStack(Items.surgealloy, 1); craftTime = 75f; @@ -561,7 +563,7 @@ public class Blocks implements ContentList{ }}; cryofluidMixer = new LiquidConverter("cryofluidmixer"){{ - requirements(Category.crafting, ItemStack.with(Items.lead, 65, Items.silicon, 40, Items.titanium, 60)); + requirements(Category.crafting, with(Items.lead, 65, Items.silicon, 40, Items.titanium, 60)); outputLiquid = new LiquidStack(Liquids.cryofluid, 0.2f); craftTime = 120f; size = 2; @@ -579,7 +581,7 @@ public class Blocks implements ContentList{ }}; blastMixer = new GenericCrafter("blast-mixer"){{ - requirements(Category.crafting, ItemStack.with(Items.lead, 30, Items.titanium, 20)); + requirements(Category.crafting, with(Items.lead, 30, Items.titanium, 20)); hasItems = true; hasPower = true; outputItem = new ItemStack(Items.blastCompound, 1); @@ -590,7 +592,7 @@ public class Blocks implements ContentList{ }}; pyratiteMixer = new GenericSmelter("pyratite-mixer"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 50, Items.lead, 25)); + requirements(Category.crafting, with(Items.copper, 50, Items.lead, 25)); flameColor = Color.clear; hasItems = true; hasPower = true; @@ -603,7 +605,7 @@ public class Blocks implements ContentList{ }}; melter = new GenericCrafter("melter"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 30, Items.lead, 35, Items.graphite, 45)); + requirements(Category.crafting, with(Items.copper, 30, Items.lead, 35, Items.graphite, 45)); health = 200; outputLiquid = new LiquidStack(Liquids.slag, 2f); craftTime = 10f; @@ -614,8 +616,8 @@ public class Blocks implements ContentList{ }}; separator = new Separator("separator"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 30, Items.titanium, 25)); - results = ItemStack.with( + requirements(Category.crafting, with(Items.copper, 30, Items.titanium, 25)); + results = with( Items.copper, 5, Items.lead, 3, Items.graphite, 2, @@ -630,8 +632,8 @@ public class Blocks implements ContentList{ }}; disassembler = new Separator("disassembler"){{ - requirements(Category.crafting, ItemStack.with(Items.graphite, 140, Items.titanium, 100, Items.silicon, 150, Items.surgealloy, 70)); - results = ItemStack.with( + requirements(Category.crafting, with(Items.graphite, 140, Items.titanium, 100, Items.silicon, 150, Items.surgealloy, 70)); + results = with( Items.sand, 4, Items.graphite, 2, Items.titanium, 2, @@ -648,7 +650,7 @@ public class Blocks implements ContentList{ }}; sporePress = new GenericCrafter("spore-press"){{ - requirements(Category.crafting, ItemStack.with(Items.lead, 35, Items.silicon, 30)); + requirements(Category.crafting, with(Items.lead, 35, Items.silicon, 30)); liquidCapacity = 60f; craftTime = 20f; outputLiquid = new LiquidStack(Liquids.oil, 6f); @@ -664,7 +666,7 @@ public class Blocks implements ContentList{ }}; pulverizer = new GenericCrafter("pulverizer"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 30, Items.lead, 25)); + requirements(Category.crafting, with(Items.copper, 30, Items.lead, 25)); outputItem = new ItemStack(Items.sand, 1); craftEffect = Fx.pulverize; craftTime = 40f; @@ -677,7 +679,7 @@ public class Blocks implements ContentList{ }}; coalCentrifuge = new GenericCrafter("coal-centrifuge"){{ - requirements(Category.crafting, ItemStack.with(Items.titanium, 20, Items.graphite, 40, Items.lead, 30)); + requirements(Category.crafting, with(Items.titanium, 20, Items.graphite, 40, Items.lead, 30)); craftEffect = Fx.smeltsmoke; outputItem = new ItemStack(Items.coal, 1); craftTime = 30f; @@ -689,7 +691,7 @@ public class Blocks implements ContentList{ }}; incinerator = new Incinerator("incinerator"){{ - requirements(Category.crafting, ItemStack.with(Items.graphite, 5, Items.lead, 15)); + requirements(Category.crafting, with(Items.graphite, 5, Items.lead, 15)); health = 90; consumes.power(0.50f); }}; @@ -700,7 +702,7 @@ public class Blocks implements ContentList{ int wallHealthMultiplier = 4; copperWall = new Wall("copper-wall"){{ - requirements(Category.defense, ItemStack.with(Items.copper, 6)); + requirements(Category.defense, with(Items.copper, 6)); health = 80 * wallHealthMultiplier; }}; @@ -711,7 +713,7 @@ public class Blocks implements ContentList{ }}; titaniumWall = new Wall("titanium-wall"){{ - requirements(Category.defense, ItemStack.with(Items.titanium, 6)); + requirements(Category.defense, with(Items.titanium, 6)); health = 110 * wallHealthMultiplier; }}; @@ -722,7 +724,7 @@ public class Blocks implements ContentList{ }}; plastaniumWall = new Wall("plastanium-wall"){{ - requirements(Category.defense, ItemStack.with(Items.plastanium, 5, Items.metaglass, 2)); + requirements(Category.defense, with(Items.plastanium, 5, Items.metaglass, 2)); health = 190 * wallHealthMultiplier; insulated = true; absorbLasers = true; @@ -737,7 +739,7 @@ public class Blocks implements ContentList{ }}; thoriumWall = new Wall("thorium-wall"){{ - requirements(Category.defense, ItemStack.with(Items.thorium, 6)); + requirements(Category.defense, with(Items.thorium, 6)); health = 200 * wallHealthMultiplier; }}; @@ -748,7 +750,7 @@ public class Blocks implements ContentList{ }}; phaseWall = new DeflectorWall("phase-wall"){{ - requirements(Category.defense, ItemStack.with(Items.phasefabric, 6)); + requirements(Category.defense, with(Items.phasefabric, 6)); health = 150 * wallHealthMultiplier; }}; @@ -759,7 +761,7 @@ public class Blocks implements ContentList{ }}; surgeWall = new SurgeWall("surge-wall"){{ - requirements(Category.defense, ItemStack.with(Items.surgealloy, 6)); + requirements(Category.defense, with(Items.surgealloy, 6)); health = 230 * wallHealthMultiplier; }}; @@ -770,7 +772,7 @@ public class Blocks implements ContentList{ }}; door = new Door("door"){{ - requirements(Category.defense, ItemStack.with(Items.graphite, 6, Items.silicon, 4)); + requirements(Category.defense, with(Items.graphite, 6, Items.silicon, 4)); health = 100 * wallHealthMultiplier; }}; @@ -783,27 +785,27 @@ public class Blocks implements ContentList{ }}; scrapWall = new Wall("scrap-wall"){{ - requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with()); + requirements(Category.defense, BuildVisibility.sandboxOnly, with()); health = 60 * wallHealthMultiplier; variants = 5; }}; scrapWallLarge = new Wall("scrap-wall-large"){{ - requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with()); + requirements(Category.defense, BuildVisibility.sandboxOnly, with()); health = 60 * 4 * wallHealthMultiplier; size = 2; variants = 4; }}; scrapWallHuge = new Wall("scrap-wall-huge"){{ - requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with()); + requirements(Category.defense, BuildVisibility.sandboxOnly, with()); health = 60 * 9 * wallHealthMultiplier; size = 3; variants = 3; }}; scrapWallGigantic = new Wall("scrap-wall-gigantic"){{ - requirements(Category.defense, BuildVisibility.sandboxOnly, ItemStack.with()); + requirements(Category.defense, BuildVisibility.sandboxOnly, with()); health = 60 * 16 * wallHealthMultiplier; size = 4; }}; @@ -814,7 +816,7 @@ public class Blocks implements ContentList{ }}; mender = new MendProjector("mender"){{ - requirements(Category.effect, ItemStack.with(Items.lead, 30, Items.copper, 25)); + requirements(Category.effect, with(Items.lead, 30, Items.copper, 25)); consumes.power(0.3f); size = 1; reload = 200f; @@ -827,7 +829,7 @@ public class Blocks implements ContentList{ }}; mendProjector = new MendProjector("mend-projector"){{ - requirements(Category.effect, ItemStack.with(Items.lead, 100, Items.titanium, 25, Items.silicon, 40)); + requirements(Category.effect, with(Items.lead, 100, Items.titanium, 25, Items.silicon, 40)); consumes.power(1.5f); size = 2; reload = 250f; @@ -838,7 +840,7 @@ public class Blocks implements ContentList{ }}; overdriveProjector = new OverdriveProjector("overdrive-projector"){{ - requirements(Category.effect, ItemStack.with(Items.lead, 100, Items.titanium, 75, Items.silicon, 75, Items.plastanium, 30)); + requirements(Category.effect, with(Items.lead, 100, Items.titanium, 75, Items.silicon, 75, Items.plastanium, 30)); consumes.power(3.50f); size = 2; consumes.item(Items.phasefabric).boost(); @@ -846,25 +848,25 @@ public class Blocks implements ContentList{ //TODO better name largeOverdriveProjector = new OverdriveProjector("large-overdrive-projector"){{ - requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 130, Items.silicon, 130, Items.plastanium, 80, Items.surgealloy, 120)); + requirements(Category.effect, with(Items.lead, 200, Items.titanium, 130, Items.silicon, 130, Items.plastanium, 80, Items.surgealloy, 120)); consumes.power(10f); size = 3; range = 200f; speedBoost = 2.5f; useTime = 300f; hasBoost = false; - consumes.items(ItemStack.with(Items.phasefabric, 1, Items.silicon, 1)); + consumes.items(with(Items.phasefabric, 1, Items.silicon, 1)); }}; forceProjector = new ForceProjector("force-projector"){{ - requirements(Category.effect, ItemStack.with(Items.lead, 100, Items.titanium, 75, Items.silicon, 125)); + requirements(Category.effect, with(Items.lead, 100, Items.titanium, 75, Items.silicon, 125)); size = 3; consumes.item(Items.phasefabric).boost(); consumes.power(3f); }}; shockMine = new ShockMine("shock-mine"){{ - requirements(Category.effect, ItemStack.with(Items.lead, 25, Items.silicon, 12)); + requirements(Category.effect, with(Items.lead, 25, Items.silicon, 12)); hasShadow = false; health = 40; damage = 11; @@ -877,35 +879,35 @@ public class Blocks implements ContentList{ //region distribution conveyor = new Conveyor("conveyor"){{ - requirements(Category.distribution, ItemStack.with(Items.copper, 1), true); + requirements(Category.distribution, with(Items.copper, 1), true); health = 45; speed = 0.03f; displayedSpeed = 4.2f; }}; titaniumConveyor = new Conveyor("titanium-conveyor"){{ - requirements(Category.distribution, ItemStack.with(Items.copper, 1, Items.lead, 1, Items.titanium, 1)); + requirements(Category.distribution, with(Items.copper, 1, Items.lead, 1, Items.titanium, 1)); health = 65; speed = 0.08f; displayedSpeed = 11f; }}; plastaniumConveyor = new StackConveyor("plastanium-conveyor"){{ - requirements(Category.distribution, ItemStack.with(Items.plastanium, 1, Items.silicon, 1, Items.graphite, 1)); + requirements(Category.distribution, with(Items.plastanium, 1, Items.silicon, 1, Items.graphite, 1)); health = 75; speed = 2.5f / 60f; recharge = 2f; }}; armoredConveyor = new ArmoredConveyor("armored-conveyor"){{ - requirements(Category.distribution, ItemStack.with(Items.plastanium, 1, Items.thorium, 1, Items.metaglass, 1)); + requirements(Category.distribution, with(Items.plastanium, 1, Items.thorium, 1, Items.metaglass, 1)); health = 180; speed = 0.08f; displayedSpeed = 10f; }}; junction = new Junction("junction"){{ - requirements(Category.distribution, ItemStack.with(Items.copper, 2), true); + requirements(Category.distribution, with(Items.copper, 2), true); speed = 26; capacity = 12; health = 30; @@ -913,14 +915,14 @@ public class Blocks implements ContentList{ }}; itemBridge = new BufferedItemBridge("bridge-conveyor"){{ - requirements(Category.distribution, ItemStack.with(Items.lead, 4, Items.copper, 4)); + requirements(Category.distribution, with(Items.lead, 4, Items.copper, 4)); range = 4; speed = 70f; bufferCapacity = 14; }}; phaseConveyor = new ItemBridge("phase-conveyor"){{ - requirements(Category.distribution, ItemStack.with(Items.phasefabric, 5, Items.silicon, 7, Items.lead, 10, Items.graphite, 10)); + requirements(Category.distribution, with(Items.phasefabric, 5, Items.silicon, 7, Items.lead, 10, Items.graphite, 10)); range = 12; canOverdrive = false; hasPower = true; @@ -928,39 +930,39 @@ public class Blocks implements ContentList{ }}; sorter = new Sorter("sorter"){{ - requirements(Category.distribution, ItemStack.with(Items.lead, 2, Items.copper, 2)); + requirements(Category.distribution, with(Items.lead, 2, Items.copper, 2)); buildCostMultiplier = 3f; }}; invertedSorter = new Sorter("inverted-sorter"){{ - requirements(Category.distribution, ItemStack.with(Items.lead, 2, Items.copper, 2)); + requirements(Category.distribution, with(Items.lead, 2, Items.copper, 2)); buildCostMultiplier = 3f; invert = true; }}; router = new Router("router"){{ - requirements(Category.distribution, ItemStack.with(Items.copper, 3)); + requirements(Category.distribution, with(Items.copper, 3)); buildCostMultiplier = 2f; }}; distributor = new Router("distributor"){{ - requirements(Category.distribution, ItemStack.with(Items.lead, 4, Items.copper, 4)); + requirements(Category.distribution, with(Items.lead, 4, Items.copper, 4)); size = 2; }}; overflowGate = new OverflowGate("overflow-gate"){{ - requirements(Category.distribution, ItemStack.with(Items.lead, 2, Items.copper, 4)); + requirements(Category.distribution, with(Items.lead, 2, Items.copper, 4)); buildCostMultiplier = 3f; }}; underflowGate = new OverflowGate("underflow-gate"){{ - requirements(Category.distribution, ItemStack.with(Items.lead, 2, Items.copper, 4)); + requirements(Category.distribution, with(Items.lead, 2, Items.copper, 4)); buildCostMultiplier = 3f; invert = true; }}; massDriver = new MassDriver("mass-driver"){{ - requirements(Category.distribution, ItemStack.with(Items.titanium, 125, Items.silicon, 75, Items.lead, 125, Items.thorium, 50)); + requirements(Category.distribution, with(Items.titanium, 125, Items.silicon, 75, Items.lead, 125, Items.thorium, 50)); size = 3; itemCapacity = 120; reloadTime = 200f; @@ -969,23 +971,23 @@ public class Blocks implements ContentList{ }}; payloadConveyor = new PayloadConveyor("mass-conveyor"){{ - requirements(Category.distribution, ItemStack.with(Items.copper, 1)); + requirements(Category.distribution, with(Items.copper, 1)); }}; payloadRouter = new PayloadRouter("payload-router"){{ - requirements(Category.distribution, ItemStack.with(Items.copper, 1)); + requirements(Category.distribution, with(Items.copper, 1)); }}; //endregion //region liquid mechanicalPump = new Pump("mechanical-pump"){{ - requirements(Category.liquid, ItemStack.with(Items.copper, 15, Items.metaglass, 10)); + requirements(Category.liquid, with(Items.copper, 15, Items.metaglass, 10)); pumpAmount = 0.1f; }}; rotaryPump = new Pump("rotary-pump"){{ - requirements(Category.liquid, ItemStack.with(Items.copper, 70, Items.metaglass, 50, Items.silicon, 20, Items.titanium, 35)); + requirements(Category.liquid, with(Items.copper, 70, Items.metaglass, 50, Items.silicon, 20, Items.titanium, 35)); pumpAmount = 0.8f; consumes.power(0.15f); liquidCapacity = 30f; @@ -994,7 +996,7 @@ public class Blocks implements ContentList{ }}; thermalPump = new Pump("thermal-pump"){{ - requirements(Category.liquid, ItemStack.with(Items.copper, 80, Items.metaglass, 70, Items.silicon, 30, Items.titanium, 40, Items.thorium, 35)); + requirements(Category.liquid, with(Items.copper, 80, Items.metaglass, 70, Items.silicon, 30, Items.titanium, 40, Items.thorium, 35)); pumpAmount = 1.5f; consumes.power(0.30f); liquidCapacity = 40f; @@ -1003,48 +1005,48 @@ public class Blocks implements ContentList{ }}; conduit = new Conduit("conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.metaglass, 1)); + requirements(Category.liquid, with(Items.metaglass, 1)); health = 45; }}; pulseConduit = new Conduit("pulse-conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 2, Items.metaglass, 1)); + requirements(Category.liquid, with(Items.titanium, 2, Items.metaglass, 1)); liquidCapacity = 16f; liquidPressure = 1.025f; health = 90; }}; platedConduit = new ArmoredConduit("plated-conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.thorium, 2, Items.metaglass, 1, Items.plastanium, 1)); + requirements(Category.liquid, with(Items.thorium, 2, Items.metaglass, 1, Items.plastanium, 1)); liquidCapacity = 16f; liquidPressure = 1.025f; health = 220; }}; liquidRouter = new LiquidRouter("liquid-router"){{ - requirements(Category.liquid, ItemStack.with(Items.graphite, 4, Items.metaglass, 2)); + requirements(Category.liquid, with(Items.graphite, 4, Items.metaglass, 2)); liquidCapacity = 20f; }}; liquidTank = new LiquidRouter("liquid-tank"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 25, Items.metaglass, 25)); + requirements(Category.liquid, with(Items.titanium, 25, Items.metaglass, 25)); size = 3; liquidCapacity = 1500f; health = 500; }}; liquidJunction = new LiquidJunction("liquid-junction"){{ - requirements(Category.liquid, ItemStack.with(Items.graphite, 2, Items.metaglass, 2)); + requirements(Category.liquid, with(Items.graphite, 2, Items.metaglass, 2)); }}; bridgeConduit = new LiquidExtendingBridge("bridge-conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.graphite, 4, Items.metaglass, 8)); + requirements(Category.liquid, with(Items.graphite, 4, Items.metaglass, 8)); range = 4; hasPower = false; }}; phaseConduit = new LiquidBridge("phase-conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.phasefabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10)); + requirements(Category.liquid, with(Items.phasefabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10)); range = 12; hasPower = true; canOverdrive = false; @@ -1055,55 +1057,55 @@ public class Blocks implements ContentList{ //region power powerNode = new PowerNode("power-node"){{ - requirements(Category.power, ItemStack.with(Items.copper, 1, Items.lead, 3)); + requirements(Category.power, with(Items.copper, 1, Items.lead, 3)); maxNodes = 20; laserRange = 6; }}; powerNodeLarge = new PowerNode("power-node-large"){{ - requirements(Category.power, ItemStack.with(Items.titanium, 5, Items.lead, 10, Items.silicon, 3)); + requirements(Category.power, with(Items.titanium, 5, Items.lead, 10, Items.silicon, 3)); size = 2; maxNodes = 30; laserRange = 9.5f; }}; surgeTower = new PowerNode("surge-tower"){{ - requirements(Category.power, ItemStack.with(Items.titanium, 7, Items.lead, 10, Items.silicon, 15, Items.surgealloy, 15)); + requirements(Category.power, with(Items.titanium, 7, Items.lead, 10, Items.silicon, 15, Items.surgealloy, 15)); size = 2; maxNodes = 2; laserRange = 30f; }}; diode = new PowerDiode("diode"){{ - requirements(Category.power, ItemStack.with(Items.silicon, 10, Items.plastanium, 5, Items.metaglass, 10)); + requirements(Category.power, with(Items.silicon, 10, Items.plastanium, 5, Items.metaglass, 10)); }}; battery = new Battery("battery"){{ - requirements(Category.power, ItemStack.with(Items.copper, 4, Items.lead, 20)); + requirements(Category.power, with(Items.copper, 4, Items.lead, 20)); consumes.powerBuffered(4000f); }}; batteryLarge = new Battery("battery-large"){{ - requirements(Category.power, ItemStack.with(Items.titanium, 20, Items.lead, 40, Items.silicon, 20)); + requirements(Category.power, with(Items.titanium, 20, Items.lead, 40, Items.silicon, 20)); size = 3; consumes.powerBuffered(50000f); }}; combustionGenerator = new BurnerGenerator("combustion-generator"){{ - requirements(Category.power, ItemStack.with(Items.copper, 25, Items.lead, 15)); + requirements(Category.power, with(Items.copper, 25, Items.lead, 15)); powerProduction = 1f; itemDuration = 120f; }}; thermalGenerator = new ThermalGenerator("thermal-generator"){{ - requirements(Category.power, ItemStack.with(Items.copper, 40, Items.graphite, 35, Items.lead, 50, Items.silicon, 35, Items.metaglass, 40)); + requirements(Category.power, with(Items.copper, 40, Items.graphite, 35, Items.lead, 50, Items.silicon, 35, Items.metaglass, 40)); powerProduction = 1.8f; generateEffect = Fx.redgeneratespark; size = 2; }}; turbineGenerator = new BurnerGenerator("turbine-generator"){{ - requirements(Category.power, ItemStack.with(Items.copper, 35, Items.graphite, 25, Items.lead, 40, Items.silicon, 30)); + requirements(Category.power, with(Items.copper, 35, Items.graphite, 25, Items.lead, 40, Items.silicon, 30)); powerProduction = 6f; itemDuration = 90f; consumes.liquid(Liquids.water, 0.05f); @@ -1112,7 +1114,7 @@ public class Blocks implements ContentList{ }}; differentialGenerator = new SingleTypeGenerator("differential-generator"){{ - requirements(Category.power, ItemStack.with(Items.copper, 70, Items.titanium, 50, Items.lead, 100, Items.silicon, 65, Items.metaglass, 50)); + requirements(Category.power, with(Items.copper, 70, Items.titanium, 50, Items.lead, 100, Items.silicon, 65, Items.metaglass, 50)); powerProduction = 16f; itemDuration = 140f; hasLiquids = true; @@ -1124,25 +1126,25 @@ public class Blocks implements ContentList{ }}; rtgGenerator = new DecayGenerator("rtg-generator"){{ - requirements(Category.power, ItemStack.with(Items.lead, 100, Items.silicon, 75, Items.phasefabric, 25, Items.plastanium, 75, Items.thorium, 50)); + requirements(Category.power, with(Items.lead, 100, Items.silicon, 75, Items.phasefabric, 25, Items.plastanium, 75, Items.thorium, 50)); size = 2; powerProduction = 4f; itemDuration = 500f; }}; solarPanel = new SolarGenerator("solar-panel"){{ - requirements(Category.power, ItemStack.with(Items.lead, 10, Items.silicon, 15)); + requirements(Category.power, with(Items.lead, 10, Items.silicon, 15)); powerProduction = 0.06f; }}; largeSolarPanel = new SolarGenerator("solar-panel-large"){{ - requirements(Category.power, ItemStack.with(Items.lead, 100, Items.silicon, 145, Items.phasefabric, 15)); + requirements(Category.power, with(Items.lead, 100, Items.silicon, 145, Items.phasefabric, 15)); size = 3; powerProduction = 0.9f; }}; thoriumReactor = new NuclearReactor("thorium-reactor"){{ - requirements(Category.power, ItemStack.with(Items.lead, 300, Items.silicon, 200, Items.graphite, 150, Items.thorium, 150, Items.metaglass, 50)); + requirements(Category.power, with(Items.lead, 300, Items.silicon, 200, Items.graphite, 150, Items.thorium, 150, Items.metaglass, 50)); size = 3; health = 700; itemDuration = 360f; @@ -1153,7 +1155,7 @@ public class Blocks implements ContentList{ }}; impactReactor = new ImpactReactor("impact-reactor"){{ - requirements(Category.power, ItemStack.with(Items.lead, 500, Items.silicon, 300, Items.graphite, 400, Items.thorium, 100, Items.surgealloy, 250, Items.metaglass, 250)); + requirements(Category.power, with(Items.lead, 500, Items.silicon, 300, Items.graphite, 400, Items.thorium, 100, Items.surgealloy, 250, Items.metaglass, 250)); size = 4; health = 900; powerProduction = 130f; @@ -1167,7 +1169,7 @@ public class Blocks implements ContentList{ //region production mechanicalDrill = new Drill("mechanical-drill"){{ - requirements(Category.production, ItemStack.with(Items.copper, 12), true); + requirements(Category.production, with(Items.copper, 12), true); tier = 2; drillTime = 600; size = 2; @@ -1176,7 +1178,7 @@ public class Blocks implements ContentList{ }}; pneumaticDrill = new Drill("pneumatic-drill"){{ - requirements(Category.production, ItemStack.with(Items.copper, 18, Items.graphite, 10)); + requirements(Category.production, with(Items.copper, 18, Items.graphite, 10)); tier = 3; drillTime = 400; size = 2; @@ -1185,7 +1187,7 @@ public class Blocks implements ContentList{ }}; laserDrill = new Drill("laser-drill"){{ - requirements(Category.production, ItemStack.with(Items.copper, 35, Items.graphite, 30, Items.silicon, 30, Items.titanium, 20)); + requirements(Category.production, with(Items.copper, 35, Items.graphite, 30, Items.silicon, 30, Items.titanium, 20)); drillTime = 280; size = 3; hasPower = true; @@ -1198,7 +1200,7 @@ public class Blocks implements ContentList{ }}; blastDrill = new Drill("blast-drill"){{ - requirements(Category.production, ItemStack.with(Items.copper, 65, Items.silicon, 60, Items.titanium, 50, Items.thorium, 75)); + requirements(Category.production, with(Items.copper, 65, Items.silicon, 60, Items.titanium, 50, Items.thorium, 75)); drillTime = 280; size = 4; drawRim = true; @@ -1215,7 +1217,7 @@ public class Blocks implements ContentList{ }}; waterExtractor = new SolidPump("water-extractor"){{ - requirements(Category.production, ItemStack.with(Items.copper, 25, Items.graphite, 25, Items.lead, 20)); + requirements(Category.production, with(Items.copper, 25, Items.graphite, 25, Items.lead, 20)); result = Liquids.water; pumpAmount = 0.11f; size = 2; @@ -1227,7 +1229,7 @@ public class Blocks implements ContentList{ }}; cultivator = new Cultivator("cultivator"){{ - requirements(Category.production, ItemStack.with(Items.copper, 10, Items.lead, 25, Items.silicon, 10)); + requirements(Category.production, with(Items.copper, 10, Items.lead, 25, Items.silicon, 10)); outputItem = new ItemStack(Items.sporePod, 1); craftTime = 140; size = 2; @@ -1240,7 +1242,7 @@ public class Blocks implements ContentList{ }}; oilExtractor = new Fracker("oil-extractor"){{ - requirements(Category.production, ItemStack.with(Items.copper, 150, Items.graphite, 175, Items.lead, 115, Items.thorium, 115, Items.silicon, 75)); + requirements(Category.production, with(Items.copper, 150, Items.graphite, 175, Items.lead, 115, Items.thorium, 115, Items.silicon, 75)); result = Liquids.oil; updateEffect = Fx.pulverize; liquidCapacity = 50f; @@ -1259,7 +1261,7 @@ public class Blocks implements ContentList{ //region storage coreShard = new CoreBlock("core-shard"){{ - requirements(Category.effect, BuildVisibility.hidden, ItemStack.with()); + requirements(Category.effect, BuildVisibility.hidden, with(Items.copper, 1000, Items.lead, 1000)); alwaysUnlocked = true; health = 1100; @@ -1268,7 +1270,7 @@ public class Blocks implements ContentList{ }}; coreFoundation = new CoreBlock("core-foundation"){{ - requirements(Category.effect, BuildVisibility.hidden, ItemStack.with()); + requirements(Category.effect, BuildVisibility.hidden, with(Items.copper, 3000, Items.lead, 3000, Items.silicon, 2000)); health = 2000; itemCapacity = 9000; @@ -1276,7 +1278,7 @@ public class Blocks implements ContentList{ }}; coreNucleus = new CoreBlock("core-nucleus"){{ - requirements(Category.effect, BuildVisibility.hidden, ItemStack.with()); + requirements(Category.effect, BuildVisibility.hidden, with(Items.copper, 1000, Items.lead, 1000)); health = 4000; itemCapacity = 13000; @@ -1284,19 +1286,19 @@ public class Blocks implements ContentList{ }}; vault = new StorageBlock("vault"){{ - requirements(Category.effect, ItemStack.with(Items.titanium, 250, Items.thorium, 125)); + requirements(Category.effect, with(Items.titanium, 250, Items.thorium, 125)); size = 3; itemCapacity = 1000; }}; container = new StorageBlock("container"){{ - requirements(Category.effect, ItemStack.with(Items.titanium, 100)); + requirements(Category.effect, with(Items.titanium, 100)); size = 2; itemCapacity = 300; }}; unloader = new Unloader("unloader"){{ - requirements(Category.effect, ItemStack.with(Items.titanium, 25, Items.silicon, 30)); + requirements(Category.effect, with(Items.titanium, 25, Items.silicon, 30)); speed = 7f; }}; @@ -1304,7 +1306,7 @@ public class Blocks implements ContentList{ //region turrets duo = new ItemTurret("duo"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 35), true); + requirements(Category.turret, with(Items.copper, 35), true); ammo( Items.copper, Bullets.standardCopper, Items.graphite, Bullets.standardDense, @@ -1326,7 +1328,7 @@ public class Blocks implements ContentList{ }}; scatter = new ItemTurret("scatter"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 85, Items.lead, 45)); + requirements(Category.turret, with(Items.copper, 85, Items.lead, 45)); ammo( Items.scrap, Bullets.flakScrap, Items.lead, Bullets.flakLead, @@ -1349,7 +1351,7 @@ public class Blocks implements ContentList{ }}; scorch = new ItemTurret("scorch"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 25, Items.graphite, 22)); + requirements(Category.turret, with(Items.copper, 25, Items.graphite, 22)); ammo( Items.coal, Bullets.basicFlame, Items.pyratite, Bullets.pyraFlame @@ -1366,7 +1368,7 @@ public class Blocks implements ContentList{ }}; hail = new ItemTurret("hail"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 40, Items.graphite, 17)); + requirements(Category.turret, with(Items.copper, 40, Items.graphite, 17)); ammo( Items.graphite, Bullets.artilleryDense, Items.silicon, Bullets.artilleryHoming, @@ -1383,7 +1385,7 @@ public class Blocks implements ContentList{ }}; wave = new LiquidTurret("wave"){{ - requirements(Category.turret, ItemStack.with(Items.metaglass, 45, Items.lead, 75)); + requirements(Category.turret, with(Items.metaglass, 45, Items.lead, 75)); ammo( Liquids.water, Bullets.waterShot, Liquids.slag, Bullets.slagShot, @@ -1404,7 +1406,7 @@ public class Blocks implements ContentList{ }}; lancer = new ChargeTurret("lancer"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 25, Items.lead, 50, Items.silicon, 45)); + requirements(Category.turret, with(Items.copper, 25, Items.lead, 50, Items.silicon, 45)); range = 155f; chargeTime = 50f; chargeMaxDelay = 30f; @@ -1427,7 +1429,7 @@ public class Blocks implements ContentList{ }}; arc = new PowerTurret("arc"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 35, Items.lead, 50)); + requirements(Category.turret, with(Items.copper, 35, Items.lead, 50)); shootType = Bullets.arc; reloadTime = 35f; shootCone = 40f; @@ -1444,7 +1446,7 @@ public class Blocks implements ContentList{ }}; swarmer = new ItemTurret("swarmer"){{ - requirements(Category.turret, ItemStack.with(Items.graphite, 35, Items.titanium, 35, Items.plastanium, 45, Items.silicon, 30)); + requirements(Category.turret, with(Items.graphite, 35, Items.titanium, 35, Items.plastanium, 45, Items.silicon, 30)); ammo( Items.blastCompound, Bullets.missileExplosive, Items.pyratite, Bullets.missileIncendiary, @@ -1462,7 +1464,7 @@ public class Blocks implements ContentList{ }}; salvo = new ItemTurret("salvo"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 105, Items.graphite, 95, Items.titanium, 60)); + requirements(Category.turret, with(Items.copper, 105, Items.graphite, 95, Items.titanium, 60)); ammo( Items.copper, Bullets.standardCopper, Items.graphite, Bullets.standardDense, @@ -1487,7 +1489,7 @@ public class Blocks implements ContentList{ }}; fuse = new ItemTurret("fuse"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 225, Items.graphite, 225, Items.thorium, 100)); + requirements(Category.turret, with(Items.copper, 225, Items.graphite, 225, Items.thorium, 100)); reloadTime = 35f; shootShake = 4f; @@ -1541,7 +1543,7 @@ public class Blocks implements ContentList{ }}; ripple = new ItemTurret("ripple"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 150, Items.graphite, 135, Items.titanium, 60)); + requirements(Category.turret, with(Items.copper, 150, Items.graphite, 135, Items.titanium, 60)); ammo( Items.graphite, Bullets.artilleryDense, Items.silicon, Bullets.artilleryHoming, @@ -1570,7 +1572,7 @@ public class Blocks implements ContentList{ }}; cyclone = new ItemTurret("cyclone"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 200, Items.titanium, 125, Items.plastanium, 80)); + requirements(Category.turret, with(Items.copper, 200, Items.titanium, 125, Items.plastanium, 80)); ammo( Items.metaglass, Bullets.flakGlass, Items.blastCompound, Bullets.flakExplosive, @@ -1591,7 +1593,7 @@ public class Blocks implements ContentList{ }}; spectre = new ItemTurret("spectre"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 350, Items.graphite, 300, Items.surgealloy, 250, Items.plastanium, 175, Items.thorium, 250)); + requirements(Category.turret, with(Items.copper, 350, Items.graphite, 300, Items.surgealloy, 250, Items.plastanium, 175, Items.thorium, 250)); ammo( Items.graphite, Bullets.standardDenseBig, Items.pyratite, Bullets.standardIncendiaryBig, @@ -1617,7 +1619,7 @@ public class Blocks implements ContentList{ }}; meltdown = new LaserTurret("meltdown"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 250, Items.lead, 350, Items.graphite, 300, Items.surgealloy, 325, Items.silicon, 325)); + requirements(Category.turret, with(Items.copper, 250, Items.lead, 350, Items.graphite, 300, Items.surgealloy, 325, Items.silicon, 325)); shootType = Bullets.meltdownLaser; shootEffect = Fx.shootBigSmoke2; shootCone = 40f; @@ -1638,7 +1640,7 @@ public class Blocks implements ContentList{ }}; segment = new PointDefenseTurret("segment"){{ - requirements(Category.turret, ItemStack.with(Items.silicon, 80, Items.thorium, 80, Items.surgealloy, 50)); + requirements(Category.turret, with(Items.silicon, 80, Items.thorium, 80, Items.surgealloy, 50)); hasPower = true; consumes.power(3f); @@ -1653,32 +1655,32 @@ public class Blocks implements ContentList{ //region units groundFactory = new UnitFactory("ground-factory"){{ - requirements(Category.units, ItemStack.with(Items.copper, 30, Items.lead, 70)); + requirements(Category.units, with(Items.copper, 30, Items.lead, 70)); plans = new UnitPlan[]{ - new UnitPlan(UnitTypes.dagger, 200f, ItemStack.with(Items.silicon, 10, Items.lead, 10)), - new UnitPlan(UnitTypes.crawler, 200f, ItemStack.with(Items.silicon, 10, Items.blastCompound, 5)), - new UnitPlan(UnitTypes.tau, 200f, ItemStack.with(Items.silicon, 20, Items.lead, 10)), + new UnitPlan(UnitTypes.dagger, 200f, with(Items.silicon, 10, Items.lead, 10)), + new UnitPlan(UnitTypes.crawler, 200f, with(Items.silicon, 10, Items.blastCompound, 5)), + new UnitPlan(UnitTypes.tau, 200f, with(Items.silicon, 20, Items.lead, 10)), }; size = 3; consumes.power(1.2f); }}; airFactory = new UnitFactory("air-factory"){{ - requirements(Category.units, ItemStack.with(Items.copper, 30, Items.lead, 70)); + requirements(Category.units, with(Items.copper, 30, Items.lead, 70)); plans = new UnitPlan[]{ - new UnitPlan(UnitTypes.wraith, 200f, ItemStack.with(Items.silicon, 10)), - new UnitPlan(UnitTypes.spirit, 200f, ItemStack.with(Items.silicon, 10)), - new UnitPlan(UnitTypes.draug, 200f, ItemStack.with(Items.silicon, 10)), - new UnitPlan(UnitTypes.phantom, 200f, ItemStack.with(Items.silicon, 10)), + new UnitPlan(UnitTypes.wraith, 200f, with(Items.silicon, 10)), + new UnitPlan(UnitTypes.spirit, 200f, with(Items.silicon, 10)), + new UnitPlan(UnitTypes.draug, 200f, with(Items.silicon, 10)), + new UnitPlan(UnitTypes.phantom, 200f, with(Items.silicon, 10)), }; size = 3; consumes.power(1.2f); }}; navalFactory = new UnitFactory("naval-factory"){{ - requirements(Category.units, ItemStack.with(Items.copper, 30, Items.lead, 70)); + requirements(Category.units, with(Items.copper, 30, Items.lead, 70)); plans = new UnitPlan[]{ - new UnitPlan(UnitTypes.vanguard, 200f, ItemStack.with(Items.silicon, 10)), + new UnitPlan(UnitTypes.vanguard, 200f, with(Items.silicon, 10)), }; size = 3; requiresWater = true; @@ -1686,11 +1688,11 @@ public class Blocks implements ContentList{ }}; additiveReconstructor = new Reconstructor("additive-reconstructor"){{ - requirements(Category.units, ItemStack.with(Items.copper, 50, Items.lead, 120, Items.silicon, 230)); + requirements(Category.units, with(Items.copper, 50, Items.lead, 120, Items.silicon, 230)); size = 3; consumes.power(3f); - consumes.items(ItemStack.with(Items.silicon, 40, Items.graphite, 30)); + consumes.items(with(Items.silicon, 40, Items.graphite, 30)); constructTime = 60f * 5f; @@ -1703,11 +1705,11 @@ public class Blocks implements ContentList{ }}; multiplicativeReconstructor = new Reconstructor("multiplicative-reconstructor"){{ - requirements(Category.units, ItemStack.with(Items.copper, 50, Items.lead, 120, Items.silicon, 230)); + requirements(Category.units, with(Items.copper, 50, Items.lead, 120, Items.silicon, 230)); size = 5; consumes.power(6f); - consumes.items(ItemStack.with(Items.silicon, 120, Items.titanium, 80)); + consumes.items(with(Items.silicon, 120, Items.titanium, 80)); constructTime = 60f * 15f; @@ -1718,11 +1720,11 @@ public class Blocks implements ContentList{ }}; exponentialReconstructor = new Reconstructor("exponential-reconstructor"){{ - requirements(Category.units, ItemStack.with(Items.copper, 50, Items.lead, 120, Items.silicon, 230)); + requirements(Category.units, with(Items.copper, 50, Items.lead, 120, Items.silicon, 230)); size = 7; consumes.power(12f); - consumes.items(ItemStack.with(Items.silicon, 200, Items.titanium, 200, Items.surgealloy, 200)); + consumes.items(with(Items.silicon, 200, Items.titanium, 200, Items.surgealloy, 200)); consumes.liquid(Liquids.cryofluid, 1f); constructTime = 60f * 60f; @@ -1733,11 +1735,11 @@ public class Blocks implements ContentList{ }}; tetrativeReconstructor = new Reconstructor("tetrative-reconstructor"){{ - requirements(Category.units, ItemStack.with(Items.copper, 50, Items.lead, 120, Items.silicon, 230)); + requirements(Category.units, with(Items.copper, 50, Items.lead, 120, Items.silicon, 230)); size = 9; consumes.power(25f); - consumes.items(ItemStack.with(Items.silicon, 300, Items.plastanium, 300, Items.surgealloy, 300, Items.phasefabric, 250)); + consumes.items(with(Items.silicon, 300, Items.plastanium, 300, Items.surgealloy, 300, Items.phasefabric, 250)); consumes.liquid(Liquids.cryofluid, 3f); constructTime = 60f * 60f * 3; @@ -1748,14 +1750,14 @@ public class Blocks implements ContentList{ }}; repairPoint = new RepairPoint("repair-point"){{ - requirements(Category.units, ItemStack.with(Items.lead, 15, Items.copper, 15, Items.silicon, 15)); + requirements(Category.units, with(Items.lead, 15, Items.copper, 15, Items.silicon, 15)); repairSpeed = 0.5f; repairRadius = 65f; powerUse = 1f; }}; resupplyPoint = new ResupplyPoint("resupply-point"){{ - requirements(Category.units, BuildVisibility.ammoOnly, ItemStack.with(Items.lead, 20, Items.copper, 15, Items.silicon, 15)); + requirements(Category.units, BuildVisibility.ammoOnly, with(Items.lead, 20, Items.copper, 15, Items.silicon, 15)); size = 2; range = 80f; @@ -1767,41 +1769,41 @@ public class Blocks implements ContentList{ //region sandbox powerSource = new PowerSource("power-source"){{ - requirements(Category.power, BuildVisibility.sandboxOnly, ItemStack.with()); + requirements(Category.power, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; }}; powerVoid = new PowerVoid("power-void"){{ - requirements(Category.power, BuildVisibility.sandboxOnly, ItemStack.with()); + requirements(Category.power, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; }}; itemSource = new ItemSource("item-source"){{ - requirements(Category.distribution, BuildVisibility.sandboxOnly, ItemStack.with()); + requirements(Category.distribution, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; }}; itemVoid = new ItemVoid("item-void"){{ - requirements(Category.distribution, BuildVisibility.sandboxOnly, ItemStack.with()); + requirements(Category.distribution, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; }}; liquidSource = new LiquidSource("liquid-source"){{ - requirements(Category.liquid, BuildVisibility.sandboxOnly, ItemStack.with()); + requirements(Category.liquid, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; }}; liquidVoid = new LiquidVoid("liquid-void"){{ - requirements(Category.liquid, BuildVisibility.sandboxOnly, ItemStack.with()); + requirements(Category.liquid, BuildVisibility.sandboxOnly, with()); alwaysUnlocked = true; }}; message = new MessageBlock("message"){{ - requirements(Category.effect, ItemStack.with(Items.graphite, 5)); + requirements(Category.effect, with(Items.graphite, 5)); }}; illuminator = new LightBlock("illuminator"){{ - requirements(Category.effect, BuildVisibility.lightingOnly, ItemStack.with(Items.graphite, 4, Items.silicon, 2)); + requirements(Category.effect, BuildVisibility.lightingOnly, with(Items.graphite, 4, Items.silicon, 2)); brightness = 0.67f; radius = 120f; consumes.power(0.05f); @@ -1819,7 +1821,7 @@ public class Blocks implements ContentList{ //region campaign launchPad = new LaunchPad("launch-pad"){{ - requirements(Category.effect, BuildVisibility.campaignOnly, ItemStack.with(Items.copper, 350, Items.silicon, 140, Items.lead, 200, Items.titanium, 150)); + requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 350, Items.silicon, 140, Items.lead, 200, Items.titanium, 150)); size = 3; itemCapacity = 100; launchTime = 60f * 20; @@ -1828,7 +1830,7 @@ public class Blocks implements ContentList{ }}; launchPadLarge = new LaunchPad("launch-pad-large"){{ - requirements(Category.effect, BuildVisibility.campaignOnly, ItemStack.with(Items.titanium, 200, Items.silicon, 150, Items.lead, 250, Items.plastanium, 75)); + requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.titanium, 200, Items.silicon, 150, Items.lead, 250, Items.plastanium, 75)); size = 4; itemCapacity = 300; launchTime = 60f * 35; @@ -1837,7 +1839,7 @@ public class Blocks implements ContentList{ }}; dataProcessor = new ResearchBlock("data-processor"){{ - requirements(Category.effect, BuildVisibility.campaignOnly, ItemStack.with(Items.copper, 200, Items.lead, 100)); + requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 200, Items.lead, 100)); size = 3; alwaysUnlocked = true; @@ -1847,21 +1849,21 @@ public class Blocks implements ContentList{ //region experimental blockForge = new BlockForge("block-forge"){{ - requirements(Category.production, BuildVisibility.debugOnly, ItemStack.with(Items.thorium, 100)); + requirements(Category.production, BuildVisibility.debugOnly, with(Items.thorium, 100)); hasPower = true; consumes.power(2f); size = 3; }}; blockLoader = new BlockLoader("block-loader"){{ - requirements(Category.production, BuildVisibility.debugOnly, ItemStack.with(Items.thorium, 100)); + requirements(Category.production, BuildVisibility.debugOnly, with(Items.thorium, 100)); hasPower = true; consumes.power(2f); size = 3; }}; blockUnloader = new BlockUnloader("block-unloader"){{ - requirements(Category.production, BuildVisibility.debugOnly, ItemStack.with(Items.thorium, 100)); + requirements(Category.production, BuildVisibility.debugOnly, with(Items.thorium, 100)); hasPower = true; consumes.power(2f); size = 3; diff --git a/core/src/mindustry/content/Weathers.java b/core/src/mindustry/content/Weathers.java index d14c3a63e8..dae26ddbe3 100644 --- a/core/src/mindustry/content/Weathers.java +++ b/core/src/mindustry/content/Weathers.java @@ -159,7 +159,7 @@ public class Weathers implements ContentList{ sandstorm = new Weather("sandstorm"){ TextureRegion region; float yspeed = 0.3f, xspeed = 6f, padding = 110f, size = 110f, invDensity = 800f; - Vec2 force = new Vec2(0.4f, 0.01f); + Vec2 force = new Vec2(0.45f, 0.01f); Color color = Color.valueOf("f7cba4"); @Override diff --git a/core/src/mindustry/core/Control.java b/core/src/mindustry/core/Control.java index e704148ae5..e628a04159 100644 --- a/core/src/mindustry/core/Control.java +++ b/core/src/mindustry/core/Control.java @@ -247,6 +247,9 @@ public class Control implements ApplicationListener, Loadable{ ent.block(Blocks.coreShard); ent.lifetime(Vars.launchDuration); ent.add(); + + //remove launch requirements from core + player.team().core().items.remove(player.team().core().block.requirements); } public void playSector(Sector sector){ diff --git a/core/src/mindustry/game/Schematic.java b/core/src/mindustry/game/Schematic.java index 7c33b2726b..b6f178a223 100644 --- a/core/src/mindustry/game/Schematic.java +++ b/core/src/mindustry/game/Schematic.java @@ -10,6 +10,7 @@ import mindustry.mod.Mods.*; import mindustry.type.*; import mindustry.world.*; import mindustry.world.blocks.storage.*; +import mindustry.world.meta.*; import static mindustry.Vars.*; @@ -32,8 +33,10 @@ public class Schematic implements Publishable, Comparable{ IntIntMap amounts = new IntIntMap(); tiles.each(t -> { + if(t.block.buildVisibility == BuildVisibility.hidden) return; + for(ItemStack stack : t.block.requirements){ - amounts.getAndIncrement(stack.item.id, 0, stack.amount); + amounts.inc(stack.item.id, stack.amount); } }); Seq stacks = new Seq<>(); diff --git a/core/src/mindustry/maps/generators/BaseGenerator.java b/core/src/mindustry/maps/generators/BaseGenerator.java index db507d2239..b398955105 100644 --- a/core/src/mindustry/maps/generators/BaseGenerator.java +++ b/core/src/mindustry/maps/generators/BaseGenerator.java @@ -44,6 +44,7 @@ public class BaseGenerator{ } } + //TODO limit base size float costBudget = 1000; Seq wallsSmall = content.blocks().select(b -> b instanceof Wall && b.size == 1); diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index b03f525f22..9c86c9c944 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -366,7 +366,8 @@ public class HudFragment extends Fragment{ t.button("test launch", Icon.warning, () -> { ui.planet.show(state.getSector(), ((CoreBlock)player.team().core().block).launchRange, player.team().core()); - }).width(150f); + }).width(150f) + .disabled(!player.team().core().items.has(player.team().core().block.requirements)); //disable core when missing resources for launch }); blockfrag.build(parent); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 601c31fac1..454e85c8db 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -629,11 +629,7 @@ public class Block extends UnlockableContent{ //load specific team regions teamRegions = new TextureRegion[Team.all.length]; for(Team team : Team.all){ - if(team.hasPalette){ - teamRegions[team.uid] = Core.atlas.find(name + "-team-" + team.name); - }else{ - teamRegions[team.uid] = teamRegion; - } + teamRegions[team.uid] = teamRegion.found() ? Core.atlas.find(name + "-team-" + team.name, teamRegion) : teamRegion; } }