update 1.7
parent
ebfcc51eeb
commit
892efb18a6
|
|
@ -13,27 +13,27 @@ public class Database {
|
||||||
|
|
||||||
// Items & recipes
|
// Items & recipes
|
||||||
public static final Item IronOre = new Ore("Iron Ore");
|
public static final Item IronOre = new Ore("Iron Ore");
|
||||||
public static final Item IronIngot = new Ingot("Iron Ingot", new Recipe(2, IronOre, 1, Smelter.class));
|
public static final Item IronIngot = new Ingot("Iron Ingot");
|
||||||
public static final Item CopperOre = new Ore("Copper Ore");
|
public static final Item CopperOre = new Ore("Copper Ore");
|
||||||
public static final Item CopperIngot = new Ingot("Copper Ingot", new Recipe(2, CopperOre, 1, Smelter.class));
|
public static final Item CopperIngot = new Ingot("Copper Ingot");
|
||||||
public static final Item Coal = new Ore("Coal");
|
public static final Item Coal = new Ore("Coal");
|
||||||
public static final Item SteelIngot = new Ingot("Steel Ingot");
|
public static final Item SteelIngot = new Ingot("Steel Ingot");
|
||||||
public static final Item CateriumOre = new Ore("Caterium Ore");
|
public static final Item CateriumOre = new Ore("Caterium Ore");
|
||||||
public static final Item CateriumIngot = new Ingot("Caterium Ingot", new Recipe(4, CateriumOre, 3, Smelter.class));
|
public static final Item CateriumIngot = new Ingot("Caterium Ingot");
|
||||||
public static final Item IronPlate = new Part("Iron Plate");
|
public static final Item IronPlate = new Part("Iron Plate");
|
||||||
public static final Item IronRod = new Part("Iron Rod", new Recipe(4, IronIngot, 1, Constructor.class));
|
public static final Item IronRod = new Part("Iron Rod");
|
||||||
public static final Item Screw = new Part("Screw");
|
public static final Item Screw = new Part("Screw");
|
||||||
public static final Item ReinforcedIronPlate = new Part("Reinforced Iron Plate");
|
public static final Item ReinforcedIronPlate = new Part("Reinforced Iron Plate");
|
||||||
public static final Item ModularFrame = new Part("Modular Frame");
|
public static final Item ModularFrame = new Part("Modular Frame");
|
||||||
public static final Item SteelBeam = new Part("Steel Beam", new Recipe(4, SteelIngot, 4, Constructor.class));
|
public static final Item SteelBeam = new Part("Steel Beam");
|
||||||
public static final Item SteelPipe = new Part("Steel Pipe");
|
public static final Item SteelPipe = new Part("Steel Pipe");
|
||||||
public static final Item Limestone = new Ore("Limestone");
|
public static final Item Limestone = new Ore("Limestone");
|
||||||
public static final Item Concrete = new Part("Concrete", new Recipe(4, Limestone, 3, Constructor.class));
|
public static final Item Concrete = new Part("Concrete");
|
||||||
public static final Item EncasedIndustrialBeam = new Part("Encased Industrial Beam");
|
public static final Item EncasedIndustrialBeam = new Part("Encased Industrial Beam");
|
||||||
public static final Item HeavyModularFrame = new Part("Heavy Modular Frame");
|
public static final Item HeavyModularFrame = new Part("Heavy Modular Frame");
|
||||||
public static final Item CopperSheet = new Part("Copper Sheet", new Recipe(6, CopperIngot, 2, Constructor.class));
|
public static final Item CopperSheet = new Part("Copper Sheet");
|
||||||
public static final Item Wire = new Part("Wire");
|
public static final Item Wire = new Part("Wire");
|
||||||
public static final Item Cable = new Part("Cable", new Recipe(2, Wire, 2, Constructor.class));
|
public static final Item Cable = new Part("Cable");
|
||||||
public static final Item Quickwire = new Part("Quickwire");
|
public static final Item Quickwire = new Part("Quickwire");
|
||||||
public static final Item CircuitBoard = new Part("Circuit Board");
|
public static final Item CircuitBoard = new Part("Circuit Board");
|
||||||
public static final Item AILimiter = new Part("A.I. Limiter");
|
public static final Item AILimiter = new Part("A.I. Limiter");
|
||||||
|
|
@ -43,8 +43,11 @@ public class Database {
|
||||||
public static final Item Mycelia = new Pickup("Mycelia");
|
public static final Item Mycelia = new Pickup("Mycelia");
|
||||||
public static final Item Leaves = new Pickup("Leaves");
|
public static final Item Leaves = new Pickup("Leaves");
|
||||||
public static final Item Wood = new Pickup("Wood");
|
public static final Item Wood = new Pickup("Wood");
|
||||||
public static final Item AlienCarapace = new Pickup("Alien Carapace");
|
public static final Item AlienProtein = new Pickup("Alien Protein");
|
||||||
public static final Item AlienOrgans = new Pickup("Alien Organs");
|
public static final Item HogRemains = new Pickup("Hog Remains");
|
||||||
|
public static final Item PlasmaSpitterRemains = new Pickup("Plasma Spitter Remains");
|
||||||
|
public static final Item StingerRemains = new Pickup("Stinger Remains");
|
||||||
|
public static final Item HatcherRemains = new Pickup("Hatcher Remains");
|
||||||
public static final Item Fabric = new Part("Fabric");
|
public static final Item Fabric = new Part("Fabric");
|
||||||
public static final Item Rotor = new Part("Rotor");
|
public static final Item Rotor = new Part("Rotor");
|
||||||
public static final Item Stator = new Part("Stator");
|
public static final Item Stator = new Part("Stator");
|
||||||
|
|
@ -55,12 +58,12 @@ public class Database {
|
||||||
public static final Item PowerShard = new Pickup("PowerShard");
|
public static final Item PowerShard = new Pickup("PowerShard");
|
||||||
public static final Item Sulfur = new Ore("Sulfur");
|
public static final Item Sulfur = new Ore("Sulfur");
|
||||||
public static final Item BlackPowder = new Part("Black powder");
|
public static final Item BlackPowder = new Part("Black powder");
|
||||||
public static final Item SpikedRebar = new Part("Spiked Rebar", new Recipe(4, IronRod, 1, Constructor.class));
|
public static final Item IronRebar = new Part("Iron Rebar");
|
||||||
public static final Item FlowerPetals = new Pickup("Flower Petals");
|
public static final Item FlowerPetals = new Pickup("Flower Petals");
|
||||||
public static final Item ColorCatridge = new Part("Color Catridge");
|
public static final Item ColorCatridge = new Part("Color Catridge");
|
||||||
public static final Item Beacon = new Tool("Beacon");
|
public static final Item Beacon = new Tool("Beacon");
|
||||||
public static final Item Rubber = new Part("Rubber");
|
public static final Item Rubber = new Part("Rubber");
|
||||||
public static final Item RifleCatridge = new Part("Rifle Catridge");
|
public static final Item RifleAmmo = new Part("Rifle Ammo");
|
||||||
public static final Item GasFilter = new Tool("Gas Filter");
|
public static final Item GasFilter = new Tool("Gas Filter");
|
||||||
public static final Item Plastic = new Part("Plastic");
|
public static final Item Plastic = new Part("Plastic");
|
||||||
public static final Item Computer = new Part("Computer");
|
public static final Item Computer = new Part("Computer");
|
||||||
|
|
@ -77,6 +80,7 @@ public class Database {
|
||||||
public static final Item HeavyOilResidue = new ProcessedFluid("Heavy Oil Residue");
|
public static final Item HeavyOilResidue = new ProcessedFluid("Heavy Oil Residue");
|
||||||
public static final Item Fuel = new ProcessedFluid("Fuel");
|
public static final Item Fuel = new ProcessedFluid("Fuel");
|
||||||
public static final Item LiquidBiofuel = new ProcessedFluid("Liquid Biofuel");
|
public static final Item LiquidBiofuel = new ProcessedFluid("Liquid Biofuel");
|
||||||
|
public static final Item PackagedLiquidBiofuel = new Part("Packaged Liquid Biofuel");
|
||||||
public static final Item PetroleumCoke = new Part("Petroleum Coke");
|
public static final Item PetroleumCoke = new Part("Petroleum Coke");
|
||||||
public static final Item PolymerResin = new Part("Polymer Resin");
|
public static final Item PolymerResin = new Part("Polymer Resin");
|
||||||
// TODO: verify below!
|
// TODO: verify below!
|
||||||
|
|
@ -115,6 +119,20 @@ public class Database {
|
||||||
public static final Item CoolingSystem = new Part("Cooling System");
|
public static final Item CoolingSystem = new Part("Cooling System");
|
||||||
|
|
||||||
public static final Item FusedModularFrame = new Part("Fused Modular Frame");
|
public static final Item FusedModularFrame = new Part("Fused Modular Frame");
|
||||||
|
public static final Item PortableMiner = new Tool("Portable Miner");
|
||||||
|
public static final Item Turbofuel = new ProcessedFluid("Turbofuel");
|
||||||
|
public static final Item PackagedTurboFuel = new Part("Packaged Turbofuel");
|
||||||
|
public static final Item CompactedCoal = new Part("Compated Coal");
|
||||||
|
public static final Item RebarGun = new Tool("Rebar Gun");
|
||||||
|
public static final Item Rifle = new Tool("Rifle");
|
||||||
|
public static final Item StunRebar = new Part("Stun Rebar");
|
||||||
|
public static final Item ExplosiveRebar = new Part("Explosive Rebar");
|
||||||
|
public static final Item SmokelessPowder = new Part("Smokeless Powder");
|
||||||
|
public static final Item HomingRifleAmmo = new Part("Homing Rifle Ammo");
|
||||||
|
public static final Item GasNobelisk = new Part("Gas Nobelisk");
|
||||||
|
public static final Item ClusterNobelisk = new Part("Cluster Nobelisk");
|
||||||
|
public static final Item ObjectScanner = new Tool("Object Scanner");
|
||||||
|
public static final Item NobeliskDetonator = new Tool("Nobelisk Detonator");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
{
|
{
|
||||||
|
|
@ -123,10 +141,12 @@ public class Database {
|
||||||
Set<Item> ores = new HashSet<>(Arrays.asList(IronOre, Coal, Limestone, CopperOre, CateriumOre, Sulfur, Uranium));
|
Set<Item> ores = new HashSet<>(Arrays.asList(IronOre, Coal, Limestone, CopperOre, CateriumOre, Sulfur, Uranium));
|
||||||
ores.addAll(Arrays.asList(Bauxite, RawQuartz));// TODO: rly?
|
ores.addAll(Arrays.asList(Bauxite, RawQuartz));// TODO: rly?
|
||||||
for (Item ore : ores) {
|
for (Item ore : ores) {
|
||||||
Recipe mk1 = new Recipe(1, "Miner MK 1", false, Miner.class);
|
Recipe mk1 = new Recipe(1, "Miner Mk1", false, MinerMk1.class);
|
||||||
ore.add(mk1, 1);
|
ore.add(mk1, 1);
|
||||||
Recipe mk2 = new Recipe(1, "Miner MK2", false, Miner.class);
|
Recipe mk2 = new Recipe(1, "Miner Mk2", false, MinerMk2.class);
|
||||||
ore.add(mk2, 2);
|
ore.add(mk2, 2);
|
||||||
|
//Recipe mk3 = new Recipe(1, "Miner Mk3", false, MinerMk3.class);
|
||||||
|
//ore.add(mk3, 3);
|
||||||
ore.setPreference(mk2);
|
ore.setPreference(mk2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -140,7 +160,24 @@ public class Database {
|
||||||
Water.setPreference(water);
|
Water.setPreference(water);
|
||||||
|
|
||||||
// gases
|
// gases
|
||||||
NitrogenGas.add(new Recipe(1,"pressure thingy", false, ResourceWellExtractor.class));
|
NitrogenGas.add(new Recipe(1, "pressure thingy", false, ResourceWellExtractor.class));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Iron Ingot
|
||||||
|
IronIngot.add(new Recipe(2, IronOre, 1, Smelter.class));
|
||||||
|
Recipe alt = new Recipe(12, Refinery.class);
|
||||||
|
alt.addInput(IronOre, 7);
|
||||||
|
alt.addInput(Water, 4);
|
||||||
|
alt.addOutput(IronIngot, 13);
|
||||||
|
IronIngot.add(alt);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Copper Ingot
|
||||||
|
CopperIngot.add(new Recipe(2, CopperOre, 1, Smelter.class));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Caterium Ingot
|
||||||
|
CateriumIngot.add(new Recipe(4, CateriumOre, 3, Smelter.class));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Steel Ingot
|
// Steel Ingot
|
||||||
|
|
@ -149,6 +186,10 @@ public class Database {
|
||||||
recipe.addInput(Coal, 3);
|
recipe.addInput(Coal, 3);
|
||||||
SteelIngot.add(recipe, 3);
|
SteelIngot.add(recipe, 3);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
// Concrete
|
||||||
|
Concrete.add(new Recipe(4, Limestone, 3, Constructor.class));
|
||||||
|
}
|
||||||
{
|
{
|
||||||
// Iron Plate
|
// Iron Plate
|
||||||
Recipe recipe = new Recipe(6, IronIngot, 3, Constructor.class);
|
Recipe recipe = new Recipe(6, IronIngot, 3, Constructor.class);
|
||||||
|
|
@ -157,18 +198,27 @@ public class Database {
|
||||||
steelCoated.addInput(SteelIngot, 3);
|
steelCoated.addInput(SteelIngot, 3);
|
||||||
steelCoated.addInput(Plastic, 2);
|
steelCoated.addInput(Plastic, 2);
|
||||||
IronPlate.add(steelCoated, 18);
|
IronPlate.add(steelCoated, 18);
|
||||||
|
IronPlate.setPreference(recipe);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Iron Rod
|
||||||
|
IronRod.add(new Recipe(4, IronIngot, 1, Constructor.class));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Screw
|
// Screw
|
||||||
Screw.add(new Recipe(6, IronRod, 1, Constructor.class), 4);
|
Screw.add(new Recipe(6, IronRod, 1, Constructor.class), 4);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
// Steel Beam
|
||||||
|
SteelBeam.add(new Recipe(4, SteelIngot, 4, Constructor.class));
|
||||||
|
}
|
||||||
{
|
{
|
||||||
// Reinforced Iron Plate
|
// Reinforced Iron Plate
|
||||||
Recipe recipe = new Recipe(12, Assembler.class);
|
Recipe recipe = new Recipe(12, Assembler.class);
|
||||||
recipe.addInput(IronPlate, 6);
|
recipe.addInput(IronPlate, 6);
|
||||||
recipe.addInput(Screw, 12);
|
recipe.addInput(Screw, 12);
|
||||||
ReinforcedIronPlate.add(recipe);
|
ReinforcedIronPlate.add(recipe);
|
||||||
Recipe bolted = new Recipe(12, "Bolted Iron Plate", false, Assembler.class);
|
Recipe bolted = new Recipe(4, "Bolted Iron Plate", false, Assembler.class);
|
||||||
bolted.addInput(IronPlate, 18);
|
bolted.addInput(IronPlate, 18);
|
||||||
bolted.addInput(Screw, 50);
|
bolted.addInput(Screw, 50);
|
||||||
ReinforcedIronPlate.add(bolted, 3);
|
ReinforcedIronPlate.add(bolted, 3);
|
||||||
|
|
@ -203,11 +253,41 @@ public class Database {
|
||||||
recipe.addInput(EncasedIndustrialBeam, 5);
|
recipe.addInput(EncasedIndustrialBeam, 5);
|
||||||
recipe.addInput(Screw, 100);
|
recipe.addInput(Screw, 100);
|
||||||
HeavyModularFrame.add(recipe);
|
HeavyModularFrame.add(recipe);
|
||||||
|
HeavyModularFrame.setPreference(recipe);
|
||||||
|
Recipe heavyEncasedFrame = new Recipe(21, Manufacturer.class);
|
||||||
|
// TODO: duration = 60/2.812
|
||||||
|
heavyEncasedFrame.addInput(ModularFrame, 8);
|
||||||
|
heavyEncasedFrame.addInput(EncasedIndustrialBeam, 10);
|
||||||
|
heavyEncasedFrame.addInput(SteelPipe, 36);
|
||||||
|
heavyEncasedFrame.addInput(Concrete, 22);
|
||||||
|
heavyEncasedFrame.addOutput(HeavyModularFrame, 3);
|
||||||
|
HeavyModularFrame.add(heavyEncasedFrame);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Wire
|
// Wire
|
||||||
Wire.add(new Recipe(4, CopperIngot, 1, Constructor.class), 2);
|
Wire.add(new Recipe(4, CopperIngot, 1, Constructor.class), 2);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
// Cable
|
||||||
|
Cable.add(new Recipe(2, Wire, 2, Constructor.class));
|
||||||
|
Recipe quickWireCable = new Recipe(2, Assembler.class);
|
||||||
|
// TODO 60/27,5
|
||||||
|
quickWireCable.addInput(Quickwire, 3);
|
||||||
|
quickWireCable.addInput(Rubber, 2);
|
||||||
|
quickWireCable.addOutput(Cable, 11);
|
||||||
|
Cable.add(quickWireCable);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Copper Sheet
|
||||||
|
CopperSheet.add(new Recipe(6, CopperIngot, 2, Constructor.class));
|
||||||
|
Recipe steamedCopperSheet = new Recipe(2, Refinery.class);
|
||||||
|
// TODO: duration = 60/22.5
|
||||||
|
steamedCopperSheet.addInput(CopperIngot, 3);
|
||||||
|
steamedCopperSheet.addInput(Water, 3);
|
||||||
|
steamedCopperSheet.addOutput(CopperSheet, 3);
|
||||||
|
|
||||||
|
CopperSheet.add(steamedCopperSheet);
|
||||||
|
}
|
||||||
{
|
{
|
||||||
// Quickwire
|
// Quickwire
|
||||||
Quickwire.add(new Recipe(5, CateriumIngot, 1, Constructor.class), 5);
|
Quickwire.add(new Recipe(5, CateriumIngot, 1, Constructor.class), 5);
|
||||||
|
|
@ -219,6 +299,11 @@ public class Database {
|
||||||
recipe.addInput(Plastic, 4);
|
recipe.addInput(Plastic, 4);
|
||||||
CircuitBoard.add(recipe);
|
CircuitBoard.add(recipe);
|
||||||
// TODO: alternative
|
// TODO: alternative
|
||||||
|
Recipe electrodeCircuitBoard = new Recipe(12, Assembler.class);
|
||||||
|
electrodeCircuitBoard.addInput(Rubber, 6);
|
||||||
|
electrodeCircuitBoard.addInput(PetroleumCoke, 9);
|
||||||
|
electrodeCircuitBoard.addOutput(CircuitBoard, 1);
|
||||||
|
CircuitBoard.add(electrodeCircuitBoard);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// A.I. Limiter
|
// A.I. Limiter
|
||||||
|
|
@ -237,11 +322,17 @@ public class Database {
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Biomass
|
// Biomass
|
||||||
Biomass.add(new Recipe(5, Leaves, 10, Constructor.class), 5);
|
Biomass.add(new Recipe(5, Leaves, 10, Constructor.class), 5); // TODO CraftBench
|
||||||
Biomass.add(new Recipe(4, Wood, 4, Constructor.class), 20);
|
Biomass.add(new Recipe(4, Wood, 4, Constructor.class), 20); // TODO CraftBench
|
||||||
Biomass.add(new Recipe(4, Mycelia, 10, Constructor.class), 10);
|
Biomass.add(new Recipe(4, Mycelia, 1, Constructor.class), 10); // TODO CraftBench
|
||||||
Biomass.add(new Recipe(4, AlienCarapace, 1, Constructor.class), 100);
|
Biomass.add(new Recipe(4, AlienProtein, 1, Constructor.class), 100); // TODO CraftBench
|
||||||
Biomass.add(new Recipe(8, AlienOrgans, 1, Constructor.class), 200);
|
}
|
||||||
|
{
|
||||||
|
// Alien Protein
|
||||||
|
AlienProtein.add(new Recipe(3,HogRemains,1, Constructor.class)); // TODO CraftBench
|
||||||
|
AlienProtein.add(new Recipe(3,PlasmaSpitterRemains,1, Constructor.class)); // TODO CraftBench
|
||||||
|
AlienProtein.add(new Recipe(3, StingerRemains,1, Constructor.class)); // TODO CraftBench
|
||||||
|
AlienProtein.add(new Recipe(3,HatcherRemains,1, Constructor.class)); // TODO CraftBench
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Fabric
|
// Fabric
|
||||||
|
|
@ -249,6 +340,10 @@ public class Database {
|
||||||
recipe.addInput(Mycelia);
|
recipe.addInput(Mycelia);
|
||||||
recipe.addInput(Biomass, 5);
|
recipe.addInput(Biomass, 5);
|
||||||
Fabric.add(recipe);
|
Fabric.add(recipe);
|
||||||
|
Recipe alt = new Recipe(2, Refinery.class);
|
||||||
|
recipe.addInput(PolymerResin,1);
|
||||||
|
recipe.addInput(Water,1);
|
||||||
|
recipe.addOutput(Fabric,1);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Solid Biofuel
|
// Solid Biofuel
|
||||||
|
|
@ -267,6 +362,13 @@ public class Database {
|
||||||
recipe.addInput(SteelPipe, 3);
|
recipe.addInput(SteelPipe, 3);
|
||||||
recipe.addInput(Wire, 8);
|
recipe.addInput(Wire, 8);
|
||||||
Stator.add(recipe);
|
Stator.add(recipe);
|
||||||
|
Stator.setPreference(recipe);
|
||||||
|
Recipe quickwireStator = new Recipe(8, Assembler.class);
|
||||||
|
//TODO 60/8
|
||||||
|
quickwireStator.addInput(SteelPipe, 4);
|
||||||
|
quickwireStator.addInput(Quickwire, 15);
|
||||||
|
quickwireStator.addOutput(Stator, 2);
|
||||||
|
Stator.add(quickwireStator);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Motor
|
// Motor
|
||||||
|
|
@ -290,16 +392,7 @@ public class Database {
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Color Catridge
|
// Color Catridge
|
||||||
ColorCatridge.add(new Recipe(8, FlowerPetals, 5, Constructor.class), 10);
|
ColorCatridge.add(new Recipe(6, FlowerPetals, 5, Constructor.class), 10);
|
||||||
}
|
|
||||||
{
|
|
||||||
// Rifle Catridge
|
|
||||||
Recipe recipe = new Recipe(20, Manufacturer.class);
|
|
||||||
recipe.addInput(Beacon, 1);
|
|
||||||
recipe.addInput(SteelPipe, 10);
|
|
||||||
recipe.addInput(BlackPowder, 10);
|
|
||||||
recipe.addInput(Rubber, 10);
|
|
||||||
RifleCatridge.add(recipe, 5);
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Gas Filter
|
// Gas Filter
|
||||||
|
|
@ -371,6 +464,32 @@ public class Database {
|
||||||
recipe.addInput(SteelPipe, 10);
|
recipe.addInput(SteelPipe, 10);
|
||||||
Nobelisk.add(recipe);
|
Nobelisk.add(recipe);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
// Gas Nobelisk
|
||||||
|
Recipe recipe = new Recipe(12, Assembler.class); //TODO EquipmentWorkshop
|
||||||
|
recipe.addInput(Nobelisk,1);
|
||||||
|
recipe.addInput(Biomass,10);
|
||||||
|
recipe.addOutput(GasNobelisk, 1);
|
||||||
|
GasNobelisk.add(recipe);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Cluster Nobelisk
|
||||||
|
Recipe recipe = new Recipe(24, Assembler.class); //TODO EquipmentWorkshop
|
||||||
|
recipe.addInput(Nobelisk,3);
|
||||||
|
recipe.addInput(SmokelessPowder,4);
|
||||||
|
recipe.addOutput(ClusterNobelisk, 1);
|
||||||
|
ClusterNobelisk.add(recipe);
|
||||||
|
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// NobeliskDetonator
|
||||||
|
Recipe recipe = new Recipe(80, EquipmentWorkshop.class);
|
||||||
|
recipe.addInput(ObjectScanner, 1);
|
||||||
|
recipe.addInput(SteelBeam,10);
|
||||||
|
recipe.addInput(Cable,50);
|
||||||
|
recipe.addOutput(NobeliskDetonator,1);
|
||||||
|
NobeliskDetonator.add(recipe);
|
||||||
|
}
|
||||||
{
|
{
|
||||||
// Smart Plating
|
// Smart Plating
|
||||||
Recipe recipe = new Recipe(30, false, Assembler.class);
|
Recipe recipe = new Recipe(30, false, Assembler.class);
|
||||||
|
|
@ -404,12 +523,32 @@ public class Database {
|
||||||
|
|
||||||
Fuel.setPreference(recipe);
|
Fuel.setPreference(recipe);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
PolymerResin.setPreference(PolymerResin.getRecipe());
|
||||||
|
// Polymer Resin
|
||||||
|
Recipe polymerResin = new Recipe(1, Refinery.class);
|
||||||
|
// TODO: duration=60/130
|
||||||
|
polymerResin.addInput(CrudeOil, 6);
|
||||||
|
polymerResin.addOutput(PolymerResin, 13);
|
||||||
|
polymerResin.addOutput(HeavyOilResidue, 2);
|
||||||
|
PolymerResin.add(polymerResin);
|
||||||
|
}
|
||||||
{
|
{
|
||||||
// Liquid Biofuel
|
// Liquid Biofuel
|
||||||
Recipe recipe = new Recipe(4, false, Refinery.class);
|
Recipe recipe = new Recipe(4, false, Refinery.class);
|
||||||
recipe.addInput(SolidBiofuel, 6);
|
recipe.addInput(SolidBiofuel, 6);
|
||||||
recipe.addInput(Water, 3);
|
recipe.addInput(Water, 3);
|
||||||
LiquidBiofuel.add(recipe, 4);
|
LiquidBiofuel.add(recipe, 4);
|
||||||
|
|
||||||
|
Recipe unpack = new Recipe(2, Packager.class);
|
||||||
|
recipe.addInput(PackagedLiquidBiofuel, 2);
|
||||||
|
recipe.addOutput(LiquidBiofuel, 2);
|
||||||
|
recipe.addOutput(EmptyCanister,2);
|
||||||
|
LiquidBiofuel.add(unpack);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Packaged Liquid Biofuel
|
||||||
|
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Plastic
|
// Plastic
|
||||||
|
|
@ -496,72 +635,173 @@ public class Database {
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Recipe recipe = new Recipe(6, Refinery.class);
|
Recipe recipe = new Recipe(6, Refinery.class);
|
||||||
recipe.addInput(Sulfur,5);
|
recipe.addInput(Sulfur, 5);
|
||||||
recipe.addInput(Water,5);
|
recipe.addInput(Water, 5);
|
||||||
recipe.addOutput(SulfuricAcid, 5);
|
recipe.addOutput(SulfuricAcid, 5);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Recipe recipe = new Recipe(150,Manufacturer.class);
|
Recipe recipe = new Recipe(150, Manufacturer.class);
|
||||||
recipe.addInput(EncasedUraniumCell, 50);
|
recipe.addInput(EncasedUraniumCell, 50);
|
||||||
recipe.addInput(EncasedIndustrialBeam,3);
|
recipe.addInput(EncasedIndustrialBeam, 3);
|
||||||
recipe.addInput(ElectromagneticControlRod, 5);
|
recipe.addInput(ElectromagneticControlRod, 5);
|
||||||
recipe.addOutput(UraniumFuelRod,1);
|
recipe.addOutput(UraniumFuelRod, 1);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Recipe recipe = new Recipe(12, Blender.class);
|
Recipe recipe = new Recipe(12, Blender.class);
|
||||||
recipe.addInput(Uranium, 10);
|
recipe.addInput(Uranium, 10);
|
||||||
recipe.addInput(Concrete,3);
|
recipe.addInput(Concrete, 3);
|
||||||
recipe.addInput(SulfuricAcid, 8);
|
recipe.addInput(SulfuricAcid, 8);
|
||||||
recipe.addOutput(EncasedUraniumCell, 5);
|
recipe.addOutput(EncasedUraniumCell, 5);
|
||||||
recipe.addOutput(SulfuricAcid, 2);
|
recipe.addOutput(SulfuricAcid, 2);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Recipe recipe = new Recipe(120,Manufacturer.class);
|
Recipe recipe = new Recipe(120, Manufacturer.class);
|
||||||
recipe.addInput(VersatileFrameWork,5);
|
recipe.addInput(VersatileFrameWork, 5);
|
||||||
recipe.addInput(ElectromagneticControlRod, 5);
|
recipe.addInput(ElectromagneticControlRod, 5);
|
||||||
recipe.addInput(Battery, 10);
|
recipe.addInput(Battery, 10);
|
||||||
recipe.addOutput(MagneticFieldGenerator,2);
|
recipe.addOutput(MagneticFieldGenerator, 2);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Recipe recipe = new Recipe(3, Blender.class);
|
Recipe recipe = new Recipe(3, Blender.class);
|
||||||
recipe.addInput(SulfuricAcid,2.5);
|
recipe.addInput(SulfuricAcid, 2.5);
|
||||||
recipe.addInput(AluminaSolution,2);
|
recipe.addInput(AluminaSolution, 2);
|
||||||
recipe.addInput(AluminumCasing,1);
|
recipe.addInput(AluminumCasing, 1);
|
||||||
recipe.addOutput(Battery, 1);
|
recipe.addOutput(Battery, 1);
|
||||||
recipe.addOutput(Water, 1.5);
|
recipe.addOutput(Water, 1.5);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Recipe recipe = new Recipe(8, Assembler.class);
|
Recipe recipe = new Recipe(8, Assembler.class);
|
||||||
recipe.addInput(AlcladAluminumSheet,5);
|
recipe.addInput(AlcladAluminumSheet, 5);
|
||||||
recipe.addInput(CopperSheet,3);
|
recipe.addInput(CopperSheet, 3);
|
||||||
recipe.addOutput(HeatSink, 1);
|
recipe.addOutput(HeatSink, 1);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Recipe recipe = new Recipe(80, Assembler.class);
|
Recipe recipe = new Recipe(80, Assembler.class);
|
||||||
recipe.addInput(AdaptiveControlUnit,2);
|
recipe.addInput(AdaptiveControlUnit, 2);
|
||||||
recipe.addInput(SuperComputer,1);
|
recipe.addInput(SuperComputer, 1);
|
||||||
recipe.addOutput(AssemblyDirectorSystem,1);
|
recipe.addOutput(AssemblyDirectorSystem, 1);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Recipe recipe = new Recipe(30,Assembler.class);
|
Recipe recipe = new Recipe(30, Assembler.class);
|
||||||
recipe.addInput(Stator,3);
|
recipe.addInput(Stator, 3);
|
||||||
recipe.addInput(AILimiter,2);
|
recipe.addInput(AILimiter, 2);
|
||||||
recipe.addOutput(ElectromagneticControlRod,2);
|
recipe.addOutput(ElectromagneticControlRod, 2);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Recipe recipe = new Recipe(10, Blender.class);
|
Recipe recipe = new Recipe(10, Blender.class);
|
||||||
recipe.addInput(HeatSink,2);
|
recipe.addInput(HeatSink, 2);
|
||||||
recipe.addInput(Rubber,2);
|
recipe.addInput(Rubber, 2);
|
||||||
recipe.addInput(Water,5);
|
recipe.addInput(Water, 5);
|
||||||
recipe.addInput(NitrogenGas,25);
|
recipe.addInput(NitrogenGas, 25);
|
||||||
recipe.addOutput(CoolingSystem,1);
|
recipe.addOutput(CoolingSystem, 1);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
Recipe recipe = new Recipe(40, Blender.class);
|
Recipe recipe = new Recipe(40, Blender.class);
|
||||||
recipe.addInput(HeavyModularFrame,1);
|
recipe.addInput(HeavyModularFrame, 1);
|
||||||
recipe.addInput(AluminumCasing,50);
|
recipe.addInput(AluminumCasing, 50);
|
||||||
recipe.addInput(NitrogenGas,25);
|
recipe.addInput(NitrogenGas, 25);
|
||||||
recipe.addOutput(FusedModularFrame,1);
|
recipe.addOutput(FusedModularFrame, 1);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
Recipe recipe = new Recipe(40, true, EquipmentWorkshop.class);
|
||||||
|
recipe.addInput(IronPlate, 2);
|
||||||
|
recipe.addInput(IronRod, 2);
|
||||||
|
recipe.addOutput(PortableMiner, 1);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
//Turbofuel
|
||||||
|
Recipe recipe = new Recipe(3, Refinery.class);
|
||||||
|
//TODO: 60/18,75
|
||||||
|
recipe.addInput(Fuel, 6);
|
||||||
|
recipe.addInput(CompactedCoal, 4);
|
||||||
|
recipe.addOutput(Turbofuel, 5);
|
||||||
|
Turbofuel.add(recipe);
|
||||||
|
Recipe packaged = new Recipe(3, Packager.class);
|
||||||
|
recipe.addInput(PackagedTurboFuel, 2);
|
||||||
|
recipe.addOutput(Turbofuel, 2);
|
||||||
|
recipe.addOutput(EmptyCanister, 2);
|
||||||
|
Turbofuel.add(packaged);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Packaged Turbofuel
|
||||||
|
Recipe recipe = new Recipe(3, Packager.class);
|
||||||
|
recipe.addInput(Turbofuel, 2);
|
||||||
|
recipe.addInput(EmptyCanister, 2);
|
||||||
|
recipe.addOutput(PackagedTurboFuel, 2);
|
||||||
|
PackagedTurboFuel.add(recipe);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Compacted Coal
|
||||||
|
Recipe recipe = new Recipe(2, Assembler.class);
|
||||||
|
//TODO: 60/25
|
||||||
|
recipe.addInput(Coal, 5);
|
||||||
|
recipe.addInput(Sulfur, 5);
|
||||||
|
recipe.addOutput(CompactedCoal, 5);
|
||||||
|
CompactedCoal.add(recipe);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Iron Rebar
|
||||||
|
IronRebar.add(new Recipe(4, IronRod, 1, Constructor.class));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Stun Rebar
|
||||||
|
Recipe recipe = new Recipe(6, Assembler.class);//TODO , EquipmentWorkshop.class)
|
||||||
|
recipe.addInput(IronRebar,1);
|
||||||
|
recipe.addInput(Quickwire,5);
|
||||||
|
recipe.addOutput(StunRebar, 1);
|
||||||
|
StunRebar.add(recipe);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Explosive Rebar
|
||||||
|
Recipe recipe = new Recipe(12, Manufacturer.class);//TODO , EquipmentWorkshop.class)
|
||||||
|
recipe.addInput(IronRebar,1);
|
||||||
|
recipe.addInput(SmokelessPowder,2);
|
||||||
|
recipe.addInput(SteelPipe,2);
|
||||||
|
recipe.addOutput(ExplosiveRebar, 1);
|
||||||
|
ExplosiveRebar.add(recipe);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Rebar Gun
|
||||||
|
Recipe recipe = new Recipe(60, EquipmentWorkshop.class);
|
||||||
|
recipe.addInput(ReinforcedIronPlate,6);
|
||||||
|
recipe.addInput(IronRod,16);
|
||||||
|
recipe.addInput(Screw,100);
|
||||||
|
recipe.addOutput(RebarGun, 1);
|
||||||
|
RebarGun.add(recipe);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Rifle Ammo
|
||||||
|
Recipe recipe=new Recipe(12, Assembler.class);//TODO , EquipmentWorkshop.class)
|
||||||
|
recipe.addInput(CopperSheet,3);
|
||||||
|
recipe.addInput(SmokelessPowder, 2);
|
||||||
|
recipe.addOutput(RifleAmmo,15);
|
||||||
|
RifleAmmo.add(recipe);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Homing Rifle Ammo
|
||||||
|
Recipe recipe=new Recipe(12, Assembler.class);//TODO , EquipmentWorkshop.class)
|
||||||
|
recipe.addInput(RifleAmmo,20);
|
||||||
|
recipe.addInput(HighSpeedConnector,1);
|
||||||
|
recipe.addOutput(HomingRifleAmmo,10);
|
||||||
|
HomingRifleAmmo.add(recipe);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Rifle
|
||||||
|
Recipe recipe=new Recipe(120, EquipmentWorkshop.class);
|
||||||
|
recipe.addInput(Motor,2);
|
||||||
|
recipe.addInput(Rubber,10);
|
||||||
|
recipe.addInput(SteelPipe,25);
|
||||||
|
recipe.addInput(Screw,250);
|
||||||
|
recipe.addOutput(Rifle,1);
|
||||||
|
Rifle.add(recipe);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
// Smokeless Powder
|
||||||
|
Recipe recipe=new Recipe(6, Refinery.class);
|
||||||
|
recipe.addInput(BlackPowder,2);
|
||||||
|
recipe.addInput(HeavyOilResidue,1);
|
||||||
|
recipe.addOutput(SmokelessPowder,2);
|
||||||
|
SmokelessPowder.add(recipe);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,9 @@ import satisfactory.items.SumResult;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import static satisfactory.Utils.PLOTS;
|
import static satisfactory.Utils.PLOTS;
|
||||||
import static satisfactory.Utils.plot2;
|
import static satisfactory.Utils.plot2;
|
||||||
|
|
@ -123,6 +125,23 @@ public class Test {
|
||||||
|
|
||||||
planFor(Database.FusedModularFrame, 100, "fusedFrame");
|
planFor(Database.FusedModularFrame, 100, "fusedFrame");
|
||||||
planFor(Database.SteelIngot, 100, "steelIngot");
|
planFor(Database.SteelIngot, 100, "steelIngot");
|
||||||
|
|
||||||
|
Set<String> unlocks = unlocks();
|
||||||
|
planFor(
|
||||||
|
"phase2",
|
||||||
|
new Production(Database.SmartPlating, 5),
|
||||||
|
new Production(Database.VersatileFrameWork, 5),
|
||||||
|
new Production(Database.AutomatedWiring, 1)
|
||||||
|
);
|
||||||
|
planFor(
|
||||||
|
"phase3",
|
||||||
|
new Production(Database.VersatileFrameWork,5),
|
||||||
|
new Production(Database.ModularEngine,1),
|
||||||
|
new Production(Database.AdaptiveControlUnit,1)
|
||||||
|
);
|
||||||
|
planFor("allIron",
|
||||||
|
new Production(Database.IronRod,1),
|
||||||
|
new Production(Database.IronPlate,1));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void planFor(Item item, int amount, String name) {
|
private static void planFor(Item item, int amount, String name) {
|
||||||
|
|
@ -131,6 +150,12 @@ public class Test {
|
||||||
javaPlot(name);
|
javaPlot(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void planFor(String name, Production... prods) {
|
||||||
|
SumResult plan = SumResult.sum(prods);
|
||||||
|
plot2(plan.getProduction(), name);
|
||||||
|
javaPlot(name);
|
||||||
|
}
|
||||||
|
|
||||||
private static void plot(Item target, String name, int amount) {
|
private static void plot(Item target, String name, int amount) {
|
||||||
Graph<Item, DefaultWeightedEdge> screws = target.hierarchy();
|
Graph<Item, DefaultWeightedEdge> screws = target.hierarchy();
|
||||||
DOTExporter<Item, DefaultWeightedEdge> de = new DOTExporter<>(Utils::dotID);
|
DOTExporter<Item, DefaultWeightedEdge> de = new DOTExporter<>(Utils::dotID);
|
||||||
|
|
@ -154,4 +179,8 @@ public class Test {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Set<String> unlocks(String... unlock) {
|
||||||
|
return Set.of(unlock);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,15 @@
|
||||||
package satisfactory.buildings;
|
package satisfactory.buildings;
|
||||||
|
|
||||||
|
import satisfactory.items.Item;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public abstract class Building {
|
public abstract class Building {
|
||||||
|
protected Map<Item, Integer> cost;
|
||||||
|
protected Integer power;
|
||||||
|
|
||||||
|
public Building() {
|
||||||
|
cost = new HashMap<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package satisfactory.buildings.power;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
|
|
||||||
|
public class BiomassBurner extends PowerGenerationBuilding {
|
||||||
|
public BiomassBurner() {
|
||||||
|
power = 30;
|
||||||
|
cost.put(Database.IronPlate, 15);
|
||||||
|
cost.put(Database.IronRod, 15);
|
||||||
|
cost.put(Database.Wire, 25);
|
||||||
|
consumes.put(Database.Coal, 15);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
package satisfactory.buildings.power;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
|
|
||||||
|
public class CoalGenerator extends PowerGenerationBuilding {
|
||||||
|
public CoalGenerator() {
|
||||||
|
power = 75;
|
||||||
|
cost.put(Database.ReinforcedIronPlate, 20);
|
||||||
|
cost.put(Database.Rotor, 10);
|
||||||
|
cost.put(Database.Cable, 30);
|
||||||
|
consumes.put(Database.Coal, 15);
|
||||||
|
consumes.put(Database.PetroleumCoke, 25);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
package satisfactory.buildings.power;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
|
|
||||||
|
public class FuelGenerator extends PowerGenerationBuilding {
|
||||||
|
public FuelGenerator() {
|
||||||
|
power = 150;
|
||||||
|
cost.put(Database.Computer, 5);
|
||||||
|
cost.put(Database.HeavyModularFrame, 10);
|
||||||
|
cost.put(Database.Motor, 15);
|
||||||
|
cost.put(Database.Rubber, 50);
|
||||||
|
cost.put(Database.Quickwire, 50);
|
||||||
|
consumes.put(Database.Fuel, 12);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
package satisfactory.buildings.power;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
|
|
||||||
|
public class GeothermalGenerator extends PowerGenerationBuilding {
|
||||||
|
public GeothermalGenerator() {
|
||||||
|
power = 9999; // TODO
|
||||||
|
cost.put(Database.SuperComputer,8);
|
||||||
|
cost.put(Database.HeavyModularFrame,16);
|
||||||
|
cost.put(Database.HighSpeedConnector,16);
|
||||||
|
cost.put(Database.CopperSheet,40);
|
||||||
|
cost.put(Database.Rubber,80);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
package satisfactory.buildings.power;
|
||||||
|
|
||||||
|
import satisfactory.buildings.Building;
|
||||||
|
import satisfactory.items.Item;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public abstract class PowerGenerationBuilding extends Building {
|
||||||
|
protected Map<Item, Integer> consumes;
|
||||||
|
|
||||||
|
public PowerGenerationBuilding() {
|
||||||
|
consumes=new HashMap<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,13 @@
|
||||||
package satisfactory.buildings.production;
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class Assembler extends Building {
|
public class Assembler extends Building {
|
||||||
|
public Assembler() {
|
||||||
|
power = 15;
|
||||||
|
cost.put(Database.ReinforcedIronPlate, 8);
|
||||||
|
cost.put(Database.Rotor, 4);
|
||||||
|
cost.put(Database.Cable, 10);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ package satisfactory.buildings.production;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class Blender extends Building {
|
public class Blender extends Building {
|
||||||
|
public Blender() {
|
||||||
|
power = -9999;
|
||||||
|
cost.put(null, null);
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,12 @@
|
||||||
package satisfactory.buildings.production;
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class Constructor extends Building {
|
public class Constructor extends Building {
|
||||||
|
public Constructor() {
|
||||||
|
power = 4;
|
||||||
|
cost.put(Database.ReinforcedIronPlate, 2);
|
||||||
|
cost.put(Database.Cable, 8);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,12 @@
|
||||||
package satisfactory.buildings.production;
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class CraftBench extends Building {
|
public class CraftBench extends Building {
|
||||||
|
public CraftBench() {
|
||||||
|
power = null;
|
||||||
|
cost.put(Database.IronPlate, 3);
|
||||||
|
cost.put(Database.IronRod, 3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,12 @@
|
||||||
package satisfactory.buildings.production;
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class EquipmentWorkshop extends Building {
|
public class EquipmentWorkshop extends Building {
|
||||||
|
public EquipmentWorkshop() {
|
||||||
|
power = null;
|
||||||
|
cost.put(Database.IronPlate, 6);
|
||||||
|
cost.put(Database.IronRod, 4);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,13 @@
|
||||||
package satisfactory.buildings.production;
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class Foundry extends Building {
|
public class Foundry extends Building {
|
||||||
|
public Foundry() {
|
||||||
|
power = 16;
|
||||||
|
cost.put(Database.ModularFrame, 10);
|
||||||
|
cost.put(Database.Rotor, 10);
|
||||||
|
cost.put(Database.Concrete, 20);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,14 @@
|
||||||
package satisfactory.buildings.production;
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class Manufacturer extends Building {
|
public class Manufacturer extends Building {
|
||||||
|
public Manufacturer() {
|
||||||
|
power = 55;
|
||||||
|
cost.put(Database.Motor, 5);
|
||||||
|
cost.put(Database.HeavyModularFrame, 10);
|
||||||
|
cost.put(Database.Cable, 50);
|
||||||
|
cost.put(Database.Plastic, 50);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
package satisfactory.buildings.production;
|
|
||||||
|
|
||||||
import satisfactory.buildings.Building;
|
|
||||||
|
|
||||||
public class Miner extends Building {
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
|
public class MinerMk1 extends Building {
|
||||||
|
public MinerMk1() {
|
||||||
|
power = 5;
|
||||||
|
cost.put(Database.PortableMiner, 1);
|
||||||
|
cost.put(Database.IronPlate, 10);
|
||||||
|
cost.put(Database.Concrete, 10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
|
|
||||||
|
public class MinerMk2 extends MinerMk1{
|
||||||
|
public MinerMk2() {
|
||||||
|
power = 12;
|
||||||
|
cost.put(Database.PortableMiner, 2);
|
||||||
|
cost.put(Database.EncasedIndustrialBeam, 10);
|
||||||
|
cost.put(Database.SteelPipe, 20);
|
||||||
|
cost.put(Database.ModularFrame, 10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
|
|
||||||
|
public class MinerMk3 extends MinerMk1{
|
||||||
|
public MinerMk3() {
|
||||||
|
// TODO: real values!
|
||||||
|
power = 12;
|
||||||
|
cost.put(Database.PortableMiner, 2);
|
||||||
|
cost.put(Database.EncasedIndustrialBeam, 10);
|
||||||
|
cost.put(Database.SteelPipe, 20);
|
||||||
|
cost.put(Database.ModularFrame, 10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,13 @@
|
||||||
package satisfactory.buildings.production;
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class OilExtractor extends Building {
|
public class OilExtractor extends Building {
|
||||||
|
public OilExtractor() {
|
||||||
|
power = 40;
|
||||||
|
cost.put(Database.Motor, 15);
|
||||||
|
cost.put(Database.EncasedIndustrialBeam, 20);
|
||||||
|
cost.put(Database.Cable, 60);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,13 @@
|
||||||
package satisfactory.buildings.production;
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class Packager extends Building {
|
public class Packager extends Building {
|
||||||
|
public Packager() {
|
||||||
|
power = 10;
|
||||||
|
cost.put(Database.SteelBeam, 20);
|
||||||
|
cost.put(Database.Rubber, 10);
|
||||||
|
cost.put(Database.Plastic, 10);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,14 @@
|
||||||
package satisfactory.buildings.production;
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class Refinery extends Building {
|
public class Refinery extends Building {
|
||||||
|
public Refinery() {
|
||||||
|
power = 30;
|
||||||
|
cost.put(Database.Motor, 10);
|
||||||
|
cost.put(Database.EncasedIndustrialBeam, 10);
|
||||||
|
cost.put(Database.SteelPipe, 30);
|
||||||
|
cost.put(Database.CopperSheet, 20);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,9 @@ package satisfactory.buildings.production;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class ResourceWellExtractor extends Building {
|
public class ResourceWellExtractor extends Building {
|
||||||
|
public ResourceWellExtractor() {
|
||||||
|
power = -9999;
|
||||||
|
cost.put(null, null);
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,12 @@
|
||||||
package satisfactory.buildings.production;
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class Smelter extends Building {
|
public class Smelter extends Building {
|
||||||
|
public Smelter() {
|
||||||
|
power = 4;
|
||||||
|
cost.put(Database.IronRod, 5);
|
||||||
|
cost.put(Database.Wire, 8);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,13 @@
|
||||||
package satisfactory.buildings.production;
|
package satisfactory.buildings.production;
|
||||||
|
|
||||||
|
import satisfactory.Database;
|
||||||
import satisfactory.buildings.Building;
|
import satisfactory.buildings.Building;
|
||||||
|
|
||||||
public class WaterExtractor extends Building {
|
public class WaterExtractor extends Building {
|
||||||
|
public WaterExtractor() {
|
||||||
|
power = 20;
|
||||||
|
cost.put(Database.CopperSheet, 20);
|
||||||
|
cost.put(Database.ReinforcedIronPlate, 10);
|
||||||
|
cost.put(Database.Rotor, 10);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,15 +23,14 @@ public abstract class Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Item(String name, Recipe... recipes) {
|
|
||||||
this(name, new HashSet<>(Arrays.asList(recipes)));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Item(String name) {
|
public Item(String name) {
|
||||||
this(name, new HashSet<>());
|
this(name, new HashSet<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void add(Recipe recipe) {
|
public void add(Recipe recipe) {
|
||||||
|
if (recipes.isEmpty()) {
|
||||||
|
setPreference(recipe);
|
||||||
|
}
|
||||||
add(recipe, 1);
|
add(recipe, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,7 @@ public class Recipe {
|
||||||
private final int duration;
|
private final int duration;
|
||||||
|
|
||||||
public Recipe(int duration, Class<? extends Building> building) {
|
public Recipe(int duration, Class<? extends Building> building) {
|
||||||
inputs = new HashMap<>();
|
this(duration, new HashMap<>(), new HashMap<>(), building);
|
||||||
outputs = new HashMap<>();
|
|
||||||
this.duration = duration;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Recipe(int duration, boolean isHandCraftable, Class<? extends Building> building) {
|
public Recipe(int duration, boolean isHandCraftable, Class<? extends Building> building) {
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,6 @@ import satisfactory.items.Recipe;
|
||||||
|
|
||||||
public abstract class Fluid extends Item {
|
public abstract class Fluid extends Item {
|
||||||
|
|
||||||
public Fluid(String name, Recipe... recipes) {
|
|
||||||
super(name, recipes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Fluid(String name) {
|
public Fluid(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,6 @@ import satisfactory.items.Recipe;
|
||||||
|
|
||||||
public class Gas extends Item {
|
public class Gas extends Item {
|
||||||
|
|
||||||
public Gas(String name, Recipe... recipes) {
|
|
||||||
super(name, recipes);
|
|
||||||
setIsRaw();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Gas(String name) {
|
public Gas(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
setIsRaw();
|
setIsRaw();
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,6 @@ import satisfactory.items.Recipe;
|
||||||
|
|
||||||
public class Ingot extends Item {
|
public class Ingot extends Item {
|
||||||
|
|
||||||
public Ingot(String name, Recipe... recipes) {
|
|
||||||
super(name, recipes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Ingot(String name) {
|
public Ingot(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,6 @@ import satisfactory.items.Recipe;
|
||||||
|
|
||||||
public class Ore extends Item {
|
public class Ore extends Item {
|
||||||
|
|
||||||
public Ore(String name, Recipe... recipes) {
|
|
||||||
super(name, recipes);
|
|
||||||
setIsRaw();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Ore(String name) {
|
public Ore(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
setIsRaw();
|
setIsRaw();
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,6 @@ import satisfactory.items.Recipe;
|
||||||
|
|
||||||
public class Part extends Item {
|
public class Part extends Item {
|
||||||
|
|
||||||
public Part(String name, Recipe... recipes) {
|
|
||||||
super(name, recipes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Part(String name) {
|
public Part(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,6 @@ import satisfactory.items.Recipe;
|
||||||
|
|
||||||
public class Pickup extends Item {
|
public class Pickup extends Item {
|
||||||
|
|
||||||
public Pickup(String name, Recipe... recipes) {
|
|
||||||
super(name, recipes);
|
|
||||||
setIsRaw();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Pickup(String name) {
|
public Pickup(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
setIsRaw();
|
setIsRaw();
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,6 @@ import satisfactory.items.Recipe;
|
||||||
|
|
||||||
public class ProcessedFluid extends Fluid {
|
public class ProcessedFluid extends Fluid {
|
||||||
|
|
||||||
public ProcessedFluid(String name, Recipe... recipes) {
|
|
||||||
super(name, recipes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ProcessedFluid(String name) {
|
public ProcessedFluid(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,6 @@ import satisfactory.items.Recipe;
|
||||||
|
|
||||||
public class RawFluid extends Fluid {
|
public class RawFluid extends Fluid {
|
||||||
|
|
||||||
public RawFluid(String name, Recipe... recipes) {
|
|
||||||
super(name, recipes);
|
|
||||||
setIsRaw();
|
|
||||||
}
|
|
||||||
|
|
||||||
public RawFluid(String name) {
|
public RawFluid(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
setIsRaw();
|
setIsRaw();
|
||||||
|
|
|
||||||
|
|
@ -5,10 +5,6 @@ import satisfactory.items.Recipe;
|
||||||
|
|
||||||
public class Tool extends Item {
|
public class Tool extends Item {
|
||||||
|
|
||||||
public Tool(String name, Recipe... recipes) {
|
|
||||||
super(name, recipes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Tool(String name) {
|
public Tool(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package satisfactory;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
class PlanTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void twoItems() {
|
||||||
|
fail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
package satisfactory.items;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import satisfactory.Database;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
class Phase3Test {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testPhase3_ME_ACU() {
|
||||||
|
// references
|
||||||
|
Map<Item, Double> ref = new HashMap<>();
|
||||||
|
ref.put(Database.CircuitBoard, 15.0);
|
||||||
|
ref.put(Database.Computer, 1.0);
|
||||||
|
ref.put(Database.Limestone,75.0);
|
||||||
|
ref.put(Database.Concrete,25.0);
|
||||||
|
ref.put(Database.SteelBeam,20.0);
|
||||||
|
ref.put(Database.EncasedIndustrialBeam, 5.0);
|
||||||
|
ref.put(Database.ModularFrame,5.0);
|
||||||
|
ref.put(Database.HeavyModularFrame,1.0);
|
||||||
|
ref.put(Database.Plastic, 78.0);
|
||||||
|
ref.put(Database.CopperSheet, 30.0);
|
||||||
|
ref.put(Database.Coal,226.25);
|
||||||
|
ref.put(Database.Cable,159.0);
|
||||||
|
ref.put(Database.CopperOre,329.0);
|
||||||
|
ref.put(Database.AutomatedWiring, 7.5);
|
||||||
|
ref.put(Database.AdaptiveControlUnit, 1.0);
|
||||||
|
ref.put(Database.CrudeOil, 229.5);
|
||||||
|
ref.put(Database.ReinforcedIronPlate, 17.5);
|
||||||
|
ref.put(Database.CopperIngot, 329.0);
|
||||||
|
ref.put(Database.SteelIngot, 226.25);
|
||||||
|
ref.put(Database.IronPlate, 105.0);
|
||||||
|
ref.put(Database.SmartPlating, 10.0);
|
||||||
|
//ref.put(Database.HeavyOilResidue, 114.0); // TODO: implement calculation
|
||||||
|
ref.put(Database.Rubber, 75.0);
|
||||||
|
ref.put(Database.Wire, 538.0);
|
||||||
|
ref.put(Database.SteelPipe, 97.5);
|
||||||
|
ref.put(Database.Stator, 27.5);
|
||||||
|
ref.put(Database.Screw, 1112.0);
|
||||||
|
ref.put(Database.IronOre, 841.75);
|
||||||
|
ref.put(Database.IronIngot, 615.5);
|
||||||
|
ref.put(Database.IronRod, 458.0);
|
||||||
|
ref.put(Database.Rotor, 30.0);
|
||||||
|
ref.put(Database.Motor, 10.0);
|
||||||
|
ref.put(Database.ModularEngine, 5.0);
|
||||||
|
|
||||||
|
// calculate
|
||||||
|
Map<Item, Double> calculations = SumResult.sum(new Production(Database.ModularEngine, 5), new Production(Database.AdaptiveControlUnit, 1)).getMap();
|
||||||
|
|
||||||
|
// assert
|
||||||
|
ref.forEach((item, amount) -> {
|
||||||
|
assertTrue(calculations.containsKey(item), "exists? " + item.getName());
|
||||||
|
assertEquals(amount, calculations.get(item), 0.01, item.getName());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue