diff --git a/core/assets-raw/sprites/blocks/defense/large-overdrive-projector-top.png b/core/assets-raw/sprites/blocks/defense/large-overdrive-projector-top.png deleted file mode 100644 index 4daa23ba53..0000000000 Binary files a/core/assets-raw/sprites/blocks/defense/large-overdrive-projector-top.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/defense/large-overdrive-projector.png b/core/assets-raw/sprites/blocks/defense/large-overdrive-projector.png deleted file mode 100644 index 61515689d0..0000000000 Binary files a/core/assets-raw/sprites/blocks/defense/large-overdrive-projector.png and /dev/null differ diff --git a/core/src/mindustry/content/Items.java b/core/src/mindustry/content/Items.java index a671f25b57..285cc0a558 100644 --- a/core/src/mindustry/content/Items.java +++ b/core/src/mindustry/content/Items.java @@ -31,7 +31,7 @@ public class Items implements ContentList{ }}; sand = new Item("sand", Color.valueOf("f7cba4")){{ - + alwaysUnlocked = true; }}; coal = new Item("coal", Color.valueOf("272727")){{ diff --git a/core/src/mindustry/content/Liquids.java b/core/src/mindustry/content/Liquids.java index 56d3e481ab..aaced53394 100644 --- a/core/src/mindustry/content/Liquids.java +++ b/core/src/mindustry/content/Liquids.java @@ -13,6 +13,7 @@ public class Liquids implements ContentList{ water = new Liquid("water", Color.valueOf("596ab8")){{ heatCapacity = 0.4f; effect = StatusEffects.wet; + alwaysUnlocked = true; }}; slag = new Liquid("slag", Color.valueOf("ffa166")){{ diff --git a/core/src/mindustry/content/TechTree.java b/core/src/mindustry/content/TechTree.java index 61ab5b8e40..02a130f93a 100644 --- a/core/src/mindustry/content/TechTree.java +++ b/core/src/mindustry/content/TechTree.java @@ -10,6 +10,7 @@ import mindustry.type.*; import mindustry.world.*; import static mindustry.content.Blocks.*; +import static mindustry.content.UnitTypes.*; public class TechTree implements ContentList{ private static ObjectMap map = new ObjectMap<>(); @@ -72,6 +73,260 @@ public class TechTree implements ContentList{ }); }); + node(mechanicalDrill, () -> { + + node(mechanicalPump, () -> { + node(conduit, () -> { + node(liquidJunction, () -> { + node(liquidRouter, () -> { + node(liquidTank); + + node(bridgeConduit); + + node(pulseConduit, () -> { + node(phaseConduit, () -> { + + }); + + node(platedConduit, () -> { + + }); + }); + + node(rotaryPump, () -> { + node(thermalPump, () -> { + + }); + }); + }); + }); + }); + }); + + node(Items.coal, () -> { + node(Items.graphite, () -> { + node(graphitePress, () -> { + node(Items.titanium, () -> { + node(pneumaticDrill, () -> { + node(Items.sporePod, () -> { + node(cultivator, () -> { + + }); + }); + + node(Items.thorium, () -> { + node(laserDrill, () -> { + node(blastDrill, () -> { + + }); + + node(waterExtractor, () -> { + node(oilExtractor, () -> { + + }); + }); + }); + }); + }); + }); + + node(Items.pyratite, () -> { + node(pyratiteMixer, () -> { + node(Items.blastCompound, () -> { + node(blastMixer, () -> { + + }); + }); + }); + }); + + node(Items.silicon, () -> { + node(siliconSmelter, () -> { + + node(Liquids.oil, () -> { + node(sporePress, () -> { + node(coalCentrifuge, () -> { + node(multiPress, () -> { + node(siliconCrucible, () -> { + + }); + }); + }); + + node(Items.plastanium, () -> { + node(plastaniumCompressor, () -> { + node(Items.phasefabric, () -> { + node(phaseWeaver, () -> { + + }); + }); + }); + }); + }); + }); + + node(Items.metaglass, () -> { + node(kiln, () -> { + node(incinerator, () -> { + node(Items.scrap, () -> { + node(Liquids.slag, () -> { + node(melter, () -> { + node(Items.surgealloy, () -> { + node(surgeSmelter, () -> { + + }); + }); + + node(separator, () -> { + node(pulverizer, () -> { + node(disassembler, () -> { + + }); + }); + }); + + node(Liquids.cryofluid, () -> { + node(cryofluidMixer, () -> { + + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + }); + + + node(combustionGenerator, () -> { + node(powerNode, () -> { + node(powerNodeLarge, () -> { + node(diode, () -> { + node(surgeTower, () -> { + + }); + }); + }); + + node(battery, () -> { + node(batteryLarge, () -> { + + }); + }); + + node(mender, () -> { + node(mendProjector, () -> { + node(forceProjector, () -> { + node(overdriveProjector, () -> { + node(overdriveDome, () -> { + + }); + }); + }); + + node(repairPoint, () -> { + + }); + }); + }); + + node(turbineGenerator, () -> { + node(thermalGenerator, () -> { + node(differentialGenerator, () -> { + node(thoriumReactor, () -> { + node(impactReactor, () -> { + + }); + + node(rtgGenerator, () -> { + + }); + }); + }); + }); + }); + + node(solarPanel, () -> { + node(largeSolarPanel, () -> { + + }); + }); + + node(groundFactory, () -> { + node(dagger, () -> { + node(mace, () -> { + node(fortress, () -> { + + }); + }); + + node(nova, () -> { + node(pulsar, () -> { + node(quasar, () -> { + + }); + }); + }); + + node(crawler, () -> { + node(atrax, () -> { + node(spiroct, () -> { + + }); + }); + }); + }); + + node(airFactory, () -> { + node(flare, () -> { + node(horizon, () -> { + node(zenith, () -> { + node(antumbra, () -> { + node(eclipse, () -> { + + }); + }); + }); + }); + + node(mono, () -> { + node(poly, () -> { + node(mega, () -> { + + }); + }); + }); + }); + + node(navalFactory, () -> { + node(risso, () -> { + node(minke, () -> { + node(bryde, () -> { + + }); + }); + }); + }); + }); + + node(additiveReconstructor, () -> { + node(multiplicativeReconstructor, () -> { + node(exponentialReconstructor, () -> { + node(tetrativeReconstructor, () -> { + }); + }); + }); + }); + }); + }); + }); + }); + }); + node(coreFoundation, () -> { node(coreNucleus, () -> { @@ -149,182 +404,6 @@ public class TechTree implements ContentList{ }); }); }); - - node(mechanicalDrill, () -> { - - node(Liquids.water, () -> { - node(mechanicalPump, () -> { - node(conduit, () -> { - node(liquidJunction, () -> { - node(liquidRouter, () -> { - node(liquidTank); - - node(bridgeConduit); - - node(pulseConduit, () -> { - node(phaseConduit, () -> { - - }); - - node(platedConduit, () -> { - - }); - }); - - node(rotaryPump, () -> { - node(thermalPump, () -> { - - }); - }); - }); - }); - }); - }); - }); - - node(Items.coal, () -> { - node(graphitePress, () -> { - node(pneumaticDrill, () -> { - node(cultivator, () -> { - - }); - - node(laserDrill, () -> { - node(blastDrill, () -> { - - }); - - node(waterExtractor, () -> { - node(oilExtractor, () -> { - - }); - }); - }); - }); - - node(pyratiteMixer, () -> { - node(blastMixer, () -> { - - }); - }); - - node(siliconSmelter, () -> { - - node(sporePress, () -> { - node(coalCentrifuge, () -> { - node(multiPress, () -> { - node(siliconCrucible, () -> { - - }); - }); - }); - - - node(plastaniumCompressor, () -> { - node(phaseWeaver, () -> { - - }); - }); - }); - - node(kiln, () -> { - node(incinerator, () -> { - node(melter, () -> { - node(surgeSmelter, () -> { - - }); - - node(separator, () -> { - node(pulverizer, () -> { - node(disassembler, () -> { - - }); - }); - }); - - node(cryofluidMixer, () -> { - - }); - }); - }); - }); - }); - }); - - node(combustionGenerator, () -> { - node(powerNode, () -> { - node(powerNodeLarge, () -> { - node(diode, () -> { - node(surgeTower, () -> { - - }); - }); - }); - - node(battery, () -> { - node(batteryLarge, () -> { - - }); - }); - - node(mender, () -> { - node(mendProjector, () -> { - node(forceProjector, () -> { - node(overdriveProjector, () -> { - node(overdriveDome, () -> { - - }); - }); - }); - - node(repairPoint, () -> { - - }); - }); - }); - - node(turbineGenerator, () -> { - node(thermalGenerator, () -> { - node(differentialGenerator, () -> { - node(thoriumReactor, () -> { - node(impactReactor, () -> { - - }); - - node(rtgGenerator, () -> { - - }); - }); - }); - }); - }); - - node(solarPanel, () -> { - node(largeSolarPanel, () -> { - - }); - }); - - node(groundFactory, () -> { - node(airFactory, () -> { - node(navalFactory, () -> { - - }); - - node(additiveReconstructor, () -> { - node(multiplicativeReconstructor, () -> { - node(exponentialReconstructor, () -> { - node(tetrativeReconstructor, () -> { - }); - }); - }); - }); - }); - }); - }); - }); - }); - }); }); } diff --git a/core/src/mindustry/world/blocks/units/UnitFactory.java b/core/src/mindustry/world/blocks/units/UnitFactory.java index f2804359b4..6f7bec33d7 100644 --- a/core/src/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/mindustry/world/blocks/units/UnitFactory.java @@ -127,9 +127,13 @@ public class UnitFactory extends UnitBlock{ @Override public void buildConfiguration(Table table){ - Seq units = Seq.with(plans).map(u -> u.unit); + Seq units = Seq.with(plans).map(u -> u.unit).filter(u -> u.unlockedNow()); - ItemSelection.buildTable(table, units, () -> currentPlan == -1 ? null : plans[currentPlan].unit, unit -> configure(units.indexOf(unit))); + if(units.any()){ + ItemSelection.buildTable(table, units, () -> currentPlan == -1 ? null : plans[currentPlan].unit, unit -> configure(units.indexOf(unit))); + }else{ + table.table(Styles.black3, t -> t.add("$none").color(Color.lightGray)); + } } @Override diff --git a/gradle.properties b/gradle.properties index ef9df1eb5f..cc97bde904 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=e3078d7782509f39e5b0ee6989c5f7eeea0ad1b7 +archash=7cc77789e24f6c78fc61922ab2025d1f2d0df7bf