le ponge die bob

new rust steel deco block (no more shittium recolor)
updated carrier to use it
naval mine model and texture swapped to legendarydoge30's
new effects for naval mine explosion (out of water and in water both have different effects)
crafting recipies added for all new things
dos uno
This commit is contained in:
Lazzzycatwastaken 2025-03-30 19:00:30 +02:00
parent 1b53215e61
commit 1ecbc015a3
17 changed files with 9671 additions and 10954 deletions

View File

@ -6,11 +6,7 @@ import com.hbm.blocks.ModBlocks;
import com.hbm.config.ServerConfig; import com.hbm.config.ServerConfig;
import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionLarge;
import com.hbm.explosion.vanillant.ExplosionVNT; import com.hbm.explosion.vanillant.ExplosionVNT;
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard; import com.hbm.explosion.vanillant.standard.*;
import com.hbm.explosion.vanillant.standard.BlockProcessorStandard;
import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth;
import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon;
import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard;
import com.hbm.interfaces.IBomb; import com.hbm.interfaces.IBomb;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.weapon.sedna.factory.XFactoryCatapult; import com.hbm.items.weapon.sedna.factory.XFactoryCatapult;
@ -22,10 +18,12 @@ import com.hbm.tileentity.bomb.TileEntityLandmine;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockContainer;
import net.minecraft.block.BlockDirectional;
import net.minecraft.block.BlockFence; import net.minecraft.block.BlockFence;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@ -33,6 +31,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class Landmine extends BlockContainer implements IBomb { public class Landmine extends BlockContainer implements IBomb {
@ -67,9 +66,7 @@ public class Landmine extends BlockContainer implements IBomb {
if(this == ModBlocks.mine_ap) this.setBlockBounds(5 * f, 0.0F, 5 * f, 11 * f, 1 * f, 11 * f); if(this == ModBlocks.mine_ap) this.setBlockBounds(5 * f, 0.0F, 5 * f, 11 * f, 1 * f, 11 * f);
if(this == ModBlocks.mine_he) this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); if(this == ModBlocks.mine_he) this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f);
if(this == ModBlocks.mine_shrap) this.setBlockBounds(5 * f, 0.0F, 5 * f, 11 * f, 1 * f, 11 * f); if(this == ModBlocks.mine_shrap) this.setBlockBounds(5 * f, 0.0F, 5 * f, 11 * f, 1 * f, 11 * f);
if(this == ModBlocks.mine_fat) this.setBlockBounds(5 * f, 0.0F, 4 * f, 11 * f, 6 * f, 12 * f); if(this == ModBlocks.mine_fat) this.setBlockBounds(5 * f, 0.0F, 4 * f, 11 * f, 6 * f, 12 * f);}
if(this == ModBlocks.mine_naval) this.setBlockBounds(5 * f, 0.0F, 10 * f, 10 * f, 10 * f, 10 * f);
}
@Override @Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
@ -134,6 +131,18 @@ public class Landmine extends BlockContainer implements IBomb {
return false; return false;
} }
public boolean isWaterAbove(World world, int x, int y, int z) {
for(int xo = -1; xo <= 1; xo++) {
for(int zo = -1; zo <= 1; zo++) {
Block blockAbove = world.getBlock(x + xo, y + 1, z + zo);
if(blockAbove == Blocks.water || blockAbove == Blocks.flowing_water) {
return true;
}
}
}
return false;
}
@Override @Override
public BombReturnCode explode(World world, int x, int y, int z) { public BombReturnCode explode(World world, int x, int y, int z) {
@ -167,7 +176,6 @@ public class Landmine extends BlockContainer implements IBomb {
ExplosionLarge.spawnShrapnelShower(world, x + 0.5, y + 0.5, z + 0.5, 0, 1D, 0, 45, 0.2D); ExplosionLarge.spawnShrapnelShower(world, x + 0.5, y + 0.5, z + 0.5, 0, 1D, 0, 45, 0.2D);
ExplosionLarge.spawnShrapnels(world, x + 0.5, y + 0.5, z + 0.5, 5); ExplosionLarge.spawnShrapnels(world, x + 0.5, y + 0.5, z + 0.5, 5);
} else if(this == ModBlocks.mine_fat) { } else if(this == ModBlocks.mine_fat) {
ExplosionVNT vnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 10); ExplosionVNT vnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 10);
vnt.setBlockAllocator(new BlockAllocatorStandard(64)); vnt.setBlockAllocator(new BlockAllocatorStandard(64));
vnt.setBlockProcessor(new BlockProcessorStandard()); vnt.setBlockProcessor(new BlockProcessorStandard());
@ -186,13 +194,16 @@ public class Landmine extends BlockContainer implements IBomb {
vnt.setBlockProcessor(new BlockProcessorStandard()); vnt.setBlockProcessor(new BlockProcessorStandard());
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(0.5, ServerConfig.MINE_NAVAL_DAMAGE.get()).setupPiercing(5F, 0.2F)); vnt.setEntityProcessor(new EntityProcessorCrossSmooth(0.5, ServerConfig.MINE_NAVAL_DAMAGE.get()).setupPiercing(5F, 0.2F));
vnt.setPlayerProcessor(new PlayerProcessorStandard()); vnt.setPlayerProcessor(new PlayerProcessorStandard());
vnt.setSFX(new ExplosionEffectWeapon(5, 1F, 0.5F)); vnt.setSFX(new ExplosionEffectWeapon(6, 1F, 0.5F));
vnt.explode(); vnt.explode();
ExplosionLarge.spawnParticlesRadial(world, x + 0.5, y + 2, z + 0.5, 10); ExplosionLarge.spawnParticlesRadial(world, x + 0.5, y + 2, z + 0.5, 30);
ExplosionLarge.spawnRubble(world,x + 0.5, y + 0.5, z + 0.5, 5 ); ExplosionLarge.spawnRubble(world,x + 0.5, y + 0.5, z + 0.5, 5 );
ExplosionLarge.spawnSplash(world, x + 0.5, y + 0.5, z + 0.5, 30);
ExplosionLarge.spawnFoam(world, x + 0.5, y + 0.5, z + 0.5, 50); // Only spawn water effects if there's water above the mine
if (isWaterAbove(world, x, y, z)) {
ExplosionLarge.spawnFoam(world, x + 0.5, y + 0.5, z + 0.5, 60);
}
} }
} }

View File

@ -40,15 +40,6 @@ public class ExplosionLarge {
PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 250)); PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 250));
} }
public static void spawnSplash(World world, double x, double y, double z, int count) {
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "smoke");
data.setString("mode", "waterSplash");
data.setInteger("count", count);
PacketThreading.createAllAroundThreadedPacket(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(world.provider.dimensionId, x, y, z, 250));
}
public static void spawnFoam(World world, double x, double y, double z, int count) { public static void spawnFoam(World world, double x, double y, double z, int count) {
NBTTagCompound data = new NBTTagCompound(); NBTTagCompound data = new NBTTagCompound();

View File

@ -46,18 +46,18 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class AssemblerRecipes extends SerializableRecipe { public class AssemblerRecipes extends SerializableRecipe {
public static HashMap<ComparableStack, AssemblerRecipe> recipes = new HashMap(); public static HashMap<ComparableStack, AssemblerRecipe> recipes = new HashMap();
public static List<ComparableStack> recipeList = new ArrayList(); public static List<ComparableStack> recipeList = new ArrayList();
/** Legacy NOP, WarTec needs this */ /** Legacy NOP, WarTec needs this */
public static void loadRecipes() { } public static void loadRecipes() { }
@Override @Override
public void registerDefaults() { public void registerDefaults() {
boolean exp = GeneralConfig.enableExpensiveMode; boolean exp = GeneralConfig.enableExpensiveMode;
makeRecipe(new ComparableStack(ModItems.plate_iron, 2), new AStack[] {new OreDictStack(IRON.ingot(), 3), },30); makeRecipe(new ComparableStack(ModItems.plate_iron, 2), new AStack[] {new OreDictStack(IRON.ingot(), 3), },30);
makeRecipe(new ComparableStack(ModItems.plate_gold, 2), new AStack[] {new OreDictStack(GOLD.ingot(), 3), },30); makeRecipe(new ComparableStack(ModItems.plate_gold, 2), new AStack[] {new OreDictStack(GOLD.ingot(), 3), },30);
makeRecipe(new ComparableStack(ModItems.plate_titanium, 2), new AStack[] {new OreDictStack(TI.ingot(), 3), },30); makeRecipe(new ComparableStack(ModItems.plate_titanium, 2), new AStack[] {new OreDictStack(TI.ingot(), 3), },30);
@ -153,6 +153,7 @@ public class AssemblerRecipes extends SerializableRecipe {
makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200);
makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200);
makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100); makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100);
makeRecipe(new ComparableStack(ModBlocks.mine_naval, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModBlocks.block_semtex, 5)},300);
makeRecipe(new ComparableStack(ModBlocks.nuke_gadget, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER), new OreDictStack("dyeGray", 8), },300); makeRecipe(new ComparableStack(ModBlocks.nuke_gadget, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER), new OreDictStack("dyeGray", 8), },300);
makeRecipe(new ComparableStack(ModBlocks.nuke_boy, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER), new OreDictStack("dyeBlue", 4), },300); makeRecipe(new ComparableStack(ModBlocks.nuke_boy, 1), new AStack[] {new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER), new OreDictStack("dyeBlue", 4), },300);
makeRecipe(new ComparableStack(ModBlocks.nuke_man, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER), new OreDictStack("dyeYellow", 6), },300); makeRecipe(new ComparableStack(ModBlocks.nuke_man, 1), new AStack[] {new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER), new OreDictStack("dyeYellow", 6), },300);
@ -187,7 +188,7 @@ public class AssemblerRecipes extends SerializableRecipe {
makeRecipe(new ComparableStack(ModItems.boy_shielding, 1), new AStack[] {new OreDictStack(OreDictManager.getReflector(), 12), new OreDictStack(STEEL.plate528(), 4), },150); makeRecipe(new ComparableStack(ModItems.boy_shielding, 1), new AStack[] {new OreDictStack(OreDictManager.getReflector(), 12), new OreDictStack(STEEL.plate528(), 4), },150);
makeRecipe(new ComparableStack(ModItems.boy_target, 1), new AStack[] {new OreDictStack(U235.nugget(), 18), },200); makeRecipe(new ComparableStack(ModItems.boy_target, 1), new AStack[] {new OreDictStack(U235.nugget(), 18), },200);
makeRecipe(new ComparableStack(ModItems.boy_bullet, 1), new AStack[] {new OreDictStack(U235.nugget(), 9), },100); makeRecipe(new ComparableStack(ModItems.boy_bullet, 1), new AStack[] {new OreDictStack(U235.nugget(), 9), },100);
makeRecipe(new ComparableStack(ModItems.boy_propellant, 1), new AStack[] {new ComparableStack(ModItems.cordite, 8), new OreDictStack(IRON.plate528(), 8), new OreDictStack(AL.plate528(), 4), new OreDictStack(MINGRADE.wireFine(), 4), },100); makeRecipe(new ComparableStack(ModItems.boy_propellant, 1), new AStack[] {new ComparableStack(ModItems.cordite, 8), new OreDictStack(IRON.plate528(), 8), new OreDictStack(AL.plate528(), 4), new OreDictStack(MINGRADE.wireFine(), 4), },100);
makeRecipe(new ComparableStack(ModItems.boy_igniter, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 1), new OreDictStack(AL.plate528(), 6), new OreDictStack(STEEL.plate528(), 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(MINGRADE.wireFine(), 3), },150); //HE for gating purposes makeRecipe(new ComparableStack(ModItems.boy_igniter, 1), new AStack[] {new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 1), new OreDictStack(AL.plate528(), 6), new OreDictStack(STEEL.plate528(), 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(MINGRADE.wireFine(), 3), },150); //HE for gating purposes
makeRecipe(new ComparableStack(ModItems.man_igniter, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(MINGRADE.wireFine(), 9), },150); makeRecipe(new ComparableStack(ModItems.man_igniter, 1), new AStack[] {new OreDictStack(STEEL.plate528(), 6), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(MINGRADE.wireFine(), 9), },150);
makeRecipe(new ComparableStack(ModItems.man_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 8), new OreDictStack(BE.nugget(), 2), },250); makeRecipe(new ComparableStack(ModItems.man_core, 1), new AStack[] {new OreDictStack(PU239.nugget(), 8), new OreDictStack(BE.nugget(), 2), },250);
@ -264,7 +265,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER),
new ComparableStack(ModItems.part_generic, 32, EnumPartType.LDE) new ComparableStack(ModItems.part_generic, 32, EnumPartType.LDE)
},600); },600);
makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] { makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {
new OreDictStack(AL.shell(), 4), new OreDictStack(AL.shell(), 4),
new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(RUBBER.ingot(), 16),
@ -273,7 +274,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER_ADVANCED), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER_ADVANCED),
new ComparableStack(ModItems.part_generic, 12, EnumPartType.LDE) new ComparableStack(ModItems.part_generic, 12, EnumPartType.LDE)
},600, ModItems.journal_bj); },600, ModItems.journal_bj);
makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] { makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {
new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(RUBBER.ingot(), 12),
new OreDictStack(TI.shell(), 3), new OreDictStack(TI.shell(), 3),
@ -378,7 +379,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.ingot_cft, 16), new ComparableStack(ModItems.ingot_cft, 16),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID),
}, 500); }, 500);
makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] {
new ComparableStack(ModItems.ingot_electronium, 32), new ComparableStack(ModItems.ingot_electronium, 32),
new ComparableStack(ModBlocks.machine_dineutronium_battery, 16), new ComparableStack(ModBlocks.machine_dineutronium_battery, 16),
@ -477,7 +478,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.drillbit, 1, EnumDrillType.STEEL.ordinal()), new ComparableStack(ModItems.drillbit, 1, EnumDrillType.STEEL.ordinal()),
new OreDictStack(DIAMOND.dust(), 16) new OreDictStack(DIAMOND.dust(), 16)
}, 100); }, 100);
makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.HSS.ordinal()), new AStack[] { makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.HSS.ordinal()), new AStack[] {
new OreDictStack(DURA.ingot(), 12), new OreDictStack(DURA.ingot(), 12),
new OreDictStack(ANY_PLASTIC.ingot(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 12),
@ -487,7 +488,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.drillbit, 1, EnumDrillType.HSS.ordinal()), new ComparableStack(ModItems.drillbit, 1, EnumDrillType.HSS.ordinal()),
new OreDictStack(DIAMOND.dust(), 24) new OreDictStack(DIAMOND.dust(), 24)
}, 100); }, 100);
makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.DESH.ordinal()), new AStack[] { makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.DESH.ordinal()), new AStack[] {
new OreDictStack(DESH.ingot(), 16), new OreDictStack(DESH.ingot(), 16),
new OreDictStack(RUBBER.ingot(), 12), new OreDictStack(RUBBER.ingot(), 12),
@ -497,7 +498,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.drillbit, 1, EnumDrillType.DESH.ordinal()), new ComparableStack(ModItems.drillbit, 1, EnumDrillType.DESH.ordinal()),
new OreDictStack(DIAMOND.dust(), 32) new OreDictStack(DIAMOND.dust(), 32)
}, 100); }, 100);
makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY.ordinal()), new AStack[] { makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY.ordinal()), new AStack[] {
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 20), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 20),
new OreDictStack(DESH.ingot(), 12), new OreDictStack(DESH.ingot(), 12),
@ -507,7 +508,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY.ordinal()), new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY.ordinal()),
new OreDictStack(DIAMOND.dust(), 48) new OreDictStack(DIAMOND.dust(), 48)
}, 100); }, 100);
makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO.ordinal()), new AStack[] { makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO.ordinal()), new AStack[] {
new OreDictStack(FERRO.ingot(), 24), new OreDictStack(FERRO.ingot(), 24),
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 12),
@ -517,7 +518,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO.ordinal()), new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO.ordinal()),
new OreDictStack(DIAMOND.dust(), 56) new OreDictStack(DIAMOND.dust(), 56)
}, 100); }, 100);
makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] {
!exp ? new OreDictStack(STEEL.plate528(), 12) : new OreDictStack(STEEL.heavyComp(), 1), !exp ? new OreDictStack(STEEL.plate528(), 12) : new OreDictStack(STEEL.heavyComp(), 1),
new OreDictStack(RUBBER.ingot(), 4), new OreDictStack(RUBBER.ingot(), 4),
@ -539,7 +540,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(DURA.pipe(), 16), new OreDictStack(DURA.pipe(), 16),
new OreDictStack(STEEL.pipe(), 16) new OreDictStack(STEEL.pipe(), 16)
}, 600); }, 600);
makeRecipe(new ComparableStack(ModBlocks.machine_condenser_powered, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_condenser_powered, 1), new AStack[] {
!exp ? new OreDictStack(STEEL.plateWelded(), 8) : new OreDictStack(STEEL.heavyComp(), 3), !exp ? new OreDictStack(STEEL.plateWelded(), 8) : new OreDictStack(STEEL.heavyComp(), 3),
new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 4), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 4),
@ -548,7 +549,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(STEEL.pipe(), 24), new OreDictStack(STEEL.pipe(), 24),
new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4) new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4)
}, 600); }, 600);
makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 3), new ComparableStack(ModBlocks.machine_lithium_battery, 3),
new OreDictStack(ND.wireDense(), 32), new OreDictStack(ND.wireDense(), 32),
@ -560,7 +561,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(CU.plateCast(), 8), new OreDictStack(CU.plateCast(), 8),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)
}, 600); }, 600);
makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] {
!exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp(), 1), !exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp(), 1),
new OreDictStack(STEEL.pipe(), 8), new OreDictStack(STEEL.pipe(), 8),
@ -591,7 +592,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 64, EnumCircuitType.CONTROLLER_QUANTUM), new ComparableStack(ModItems.circuit, 64, EnumCircuitType.CONTROLLER_QUANTUM),
new ComparableStack(ModItems.coin_ufo, 1), new ComparableStack(ModItems.coin_ufo, 1),
}, 1200, ModItems.journal_bj); }, 1200, ModItems.journal_bj);
makeRecipe(new ComparableStack(ModBlocks.vault_door, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.vault_door, 1), new AStack[] {
new OreDictStack(STEEL.ingot(), 32), new OreDictStack(STEEL.ingot(), 32),
new OreDictStack(W.ingot(), 32), new OreDictStack(W.ingot(), 32),
@ -602,7 +603,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(DURA.bolt(), 16), new OreDictStack(DURA.bolt(), 16),
new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.motor, 3),
}, 200); }, 200);
makeRecipe(new ComparableStack(ModBlocks.blast_door, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.blast_door, 1), new AStack[] {
new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.ingot(), 8),
new OreDictStack(W.ingot(), 8), new OreDictStack(W.ingot(), 8),
@ -613,7 +614,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(DURA.bolt(), 4), new OreDictStack(DURA.bolt(), 4),
new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.motor, 1),
}, 300); }, 300);
makeRecipe(new ComparableStack(ModBlocks.fire_door, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.fire_door, 1), new AStack[] {
new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.ingot(), 8),
new OreDictStack(STEEL.plate(), 8), new OreDictStack(STEEL.plate(), 8),
@ -728,7 +729,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModBlocks.machine_radar, 1),
new ComparableStack(ModItems.crt_display, 1) new ComparableStack(ModItems.crt_display, 1)
}, 300); }, 300);
makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL), new AStack[] { makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL), new AStack[] {
new OreDictStack(STEEL.plate(), 24), new OreDictStack(STEEL.plate(), 24),
new OreDictStack(ANY_PLASTIC.ingot(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 12),
@ -794,7 +795,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(Fluids.PEROXIDE.getDict(1_000), 16), new OreDictStack(Fluids.PEROXIDE.getDict(1_000), 16),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
}, 100); }, 100);
makeRecipe(new ComparableStack(ModBlocks.machine_silex, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_silex, 1), new AStack[] {
new ComparableStack(ModBlocks.glass_quartz, 16), new ComparableStack(ModBlocks.glass_quartz, 16),
!exp ? new OreDictStack(STEEL.plateCast(), 8) : new OreDictStack(STEEL.heavyComp(), 1), !exp ? new OreDictStack(STEEL.plateCast(), 8) : new OreDictStack(STEEL.heavyComp(), 1),
@ -810,14 +811,14 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR),
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC) new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)
}, 400); }, 400);
makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] {
new ComparableStack(ModBlocks.concrete_asbestos, 4), new ComparableStack(ModBlocks.concrete_asbestos, 4),
!exp ? new OreDictStack(STEEL.plate528(), 4) : new OreDictStack(STEEL.plateCast(), 16), !exp ? new OreDictStack(STEEL.plate528(), 4) : new OreDictStack(STEEL.plateCast(), 16),
new OreDictStack(CU.ingot(), 4), new OreDictStack(CU.ingot(), 4),
new ComparableStack(ModItems.plate_polymer, 4) new ComparableStack(ModItems.plate_polymer, 4)
}, 100); }, 100);
makeRecipe(new ComparableStack(ModItems.multitool_hit, 1), new AStack[] { makeRecipe(new ComparableStack(ModItems.multitool_hit, 1), new AStack[] {
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),
new OreDictStack(STEEL.plate(), 4), new OreDictStack(STEEL.plate(), 4),
@ -825,7 +826,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.motor, 4),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD) new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD)
}, 100); }, 100);
makeRecipe(new ComparableStack(ModBlocks.machine_assemfac, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_assemfac, 1), new AStack[] {
!exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2),
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8),
@ -837,7 +838,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(STEEL.pipe(), 8), new OreDictStack(STEEL.pipe(), 8),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)
}, 400); }, 400);
makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[] {
!exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2), !exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2),
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8),
@ -850,7 +851,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(STEEL.pipe(), 8), new OreDictStack(STEEL.pipe(), 8),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC) new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)
}, 400); }, 400);
makeRecipe(new ComparableStack(ModItems.missile_shuttle, 1), new AStack[] { makeRecipe(new ComparableStack(ModItems.missile_shuttle, 1), new AStack[] {
new ComparableStack(ModItems.missile_generic, 2), new ComparableStack(ModItems.missile_generic, 2),
new ComparableStack(ModItems.missile_strong, 1), new ComparableStack(ModItems.missile_strong, 1),
@ -862,7 +863,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(KEY_ANYPANE, 6), new OreDictStack(KEY_ANYPANE, 6),
new OreDictStack(STEEL.plate(), 4), new OreDictStack(STEEL.plate(), 4),
}, 100); }, 100);
makeRecipe(new ComparableStack(ModBlocks.machine_difurnace_rtg_off, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_difurnace_rtg_off, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_difurnace_off, 1), new ComparableStack(ModBlocks.machine_difurnace_off, 1),
new ComparableStack(ModItems.rtg_unit, 3), new ComparableStack(ModItems.rtg_unit, 3),
@ -982,7 +983,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModBlocks.capacitor_tantalium, 1), new ComparableStack(ModBlocks.capacitor_tantalium, 1),
new ComparableStack(ModBlocks.glass_quartz, 16) new ComparableStack(ModBlocks.glass_quartz, 16)
}, 200); }, 200);
makeRecipe(new ComparableStack(ModBlocks.launch_pad_large, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.launch_pad_large, 1), new AStack[] {
new OreDictStack(STEEL.plateCast(), 6), new OreDictStack(STEEL.plateCast(), 6),
@ -997,7 +998,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16),
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED) new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED)
}, 400); }, 400);
makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] { makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] {
new OreDictStack(NB.ingot(), 4), new OreDictStack(NB.ingot(), 4),
new ComparableStack(ModItems.redcoil_capacitor, 1), new ComparableStack(ModItems.redcoil_capacitor, 1),
@ -1083,7 +1084,7 @@ public class AssemblerRecipes extends SerializableRecipe {
makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new OreDictStack(MAGTUNG.wireFine(), 24), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), }, 400, ModItems.journal_pip); makeRecipe(new ComparableStack(ModBlocks.machine_radgen, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.coil_magnetized_tungsten, 6), new OreDictStack(MAGTUNG.wireFine(), 24), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC), new ComparableStack(ModItems.reactor_core, 3), new OreDictStack(STAR.ingot(), 1), new OreDictStack("dyeRed", 1), }, 400, ModItems.journal_pip);
makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150); makeRecipe(new ComparableStack(ModBlocks.machine_reactor_breeding, 1), new AStack[] {new ComparableStack(ModItems.reactor_core, 1), new OreDictStack(STEEL.ingot(), 12), new OreDictStack(PB.plate(), 16), new ComparableStack(ModBlocks.reinforced_glass, 4), new OreDictStack(ASBESTOS.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.crt_display, 1)},150);
makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), },300); makeRecipe(new ComparableStack(ModBlocks.reactor_research, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.motor_desh, 2), new OreDictStack(B.ingot(), 5), new OreDictStack(PB.plate(), 8), new ComparableStack(ModItems.crt_display, 3), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), },300);
} else { } else {
addTantalium(new ComparableStack(ModBlocks.machine_centrifuge, 1), 5); addTantalium(new ComparableStack(ModBlocks.machine_centrifuge, 1), 5);
addTantalium(new ComparableStack(ModBlocks.machine_gascent, 1), 25); addTantalium(new ComparableStack(ModBlocks.machine_gascent, 1), 25);
@ -1096,7 +1097,7 @@ public class AssemblerRecipes extends SerializableRecipe {
addTantalium(new ComparableStack(ModBlocks.machine_mining_laser, 1), 30); addTantalium(new ComparableStack(ModBlocks.machine_mining_laser, 1), 30);
addTantalium(new ComparableStack(ModBlocks.machine_vacuum_distill, 1), 50); addTantalium(new ComparableStack(ModBlocks.machine_vacuum_distill, 1), 50);
addTantalium(new ComparableStack(ModBlocks.machine_catalytic_reformer, 1), 50); addTantalium(new ComparableStack(ModBlocks.machine_catalytic_reformer, 1), 50);
addTantalium(new ComparableStack(ModBlocks.turret_chekhov, 1), 3); addTantalium(new ComparableStack(ModBlocks.turret_chekhov, 1), 3);
addTantalium(new ComparableStack(ModBlocks.turret_friendly, 1), 3); addTantalium(new ComparableStack(ModBlocks.turret_friendly, 1), 3);
addTantalium(new ComparableStack(ModBlocks.turret_jeremy, 1), 3); addTantalium(new ComparableStack(ModBlocks.turret_jeremy, 1), 3);
@ -1106,7 +1107,7 @@ public class AssemblerRecipes extends SerializableRecipe {
addTantalium(new ComparableStack(ModBlocks.turret_maxwell, 1), 3); addTantalium(new ComparableStack(ModBlocks.turret_maxwell, 1), 3);
addTantalium(new ComparableStack(ModBlocks.turret_fritz, 1), 3); addTantalium(new ComparableStack(ModBlocks.turret_fritz, 1), 3);
addTantalium(new ComparableStack(ModBlocks.launch_pad, 1), 5); addTantalium(new ComparableStack(ModBlocks.launch_pad, 1), 5);
makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 3), new ComparableStack(ModBlocks.machine_lithium_battery, 3),
new ComparableStack(ModBlocks.hadron_coil_neodymium, 8), new ComparableStack(ModBlocks.hadron_coil_neodymium, 8),
@ -1120,7 +1121,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC),
new ComparableStack(ModItems.circuit, 50, EnumCircuitType.CAPACITOR_BOARD) new ComparableStack(ModItems.circuit, 50, EnumCircuitType.CAPACITOR_BOARD)
}, 600); }, 600);
makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] {
new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.ingot(), 16),
new OreDictStack(AL.plate528(), 32), new OreDictStack(AL.plate528(), 32),
@ -1129,7 +1130,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 20, EnumCircuitType.CAPACITOR_BOARD), new ComparableStack(ModItems.circuit, 20, EnumCircuitType.CAPACITOR_BOARD),
new ComparableStack(ModItems.crt_display, 8), new ComparableStack(ModItems.crt_display, 8),
}, 300); }, 300);
makeRecipe(new ComparableStack(ModBlocks.rbmk_crane_console, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.rbmk_crane_console, 1), new AStack[] {
new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.ingot(), 16),
new OreDictStack(AL.plate528(), 8), new OreDictStack(AL.plate528(), 8),
@ -1137,7 +1138,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC),
new ComparableStack(ModItems.circuit, 10, EnumCircuitType.CAPACITOR_BOARD), new ComparableStack(ModItems.circuit, 10, EnumCircuitType.CAPACITOR_BOARD),
}, 300); }, 300);
makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 3), new ComparableStack(ModBlocks.machine_battery, 3),
new ComparableStack(ModBlocks.steel_scaffold, 10), new ComparableStack(ModBlocks.steel_scaffold, 10),
@ -1146,7 +1147,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.circuit, 15, EnumCircuitType.CAPACITOR_BOARD), new ComparableStack(ModItems.circuit, 15, EnumCircuitType.CAPACITOR_BOARD),
}, 200); }, 200);
makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core_large, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core_large, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModBlocks.machine_battery, 5),
new ComparableStack(ModBlocks.steel_scaffold, 10), new ComparableStack(ModBlocks.steel_scaffold, 10),
@ -1155,7 +1156,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.circuit, 25, EnumCircuitType.CAPACITOR_BOARD), new ComparableStack(ModItems.circuit, 25, EnumCircuitType.CAPACITOR_BOARD),
}, 200); }, 200);
makeRecipe(new ComparableStack(ModBlocks.struct_soyuz_core, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.struct_soyuz_core, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 5), new ComparableStack(ModBlocks.machine_lithium_battery, 5),
new ComparableStack(ModBlocks.steel_scaffold, 24), new ComparableStack(ModBlocks.steel_scaffold, 24),
@ -1166,7 +1167,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 100, EnumCircuitType.CAPACITOR_BOARD), new ComparableStack(ModItems.circuit, 100, EnumCircuitType.CAPACITOR_BOARD),
}, 200); }, 200);
} }
makeRecipe(new ComparableStack(ModBlocks.machine_fracking_tower), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_fracking_tower), new AStack[] {
new ComparableStack(ModBlocks.steel_scaffold, 40), new ComparableStack(ModBlocks.steel_scaffold, 40),
new ComparableStack(ModBlocks.concrete_smooth, 64), new ComparableStack(ModBlocks.concrete_smooth, 64),
@ -1177,7 +1178,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.tank_steel, 24), new ComparableStack(ModItems.tank_steel, 24),
new ComparableStack(ModItems.pipes_steel, 2) new ComparableStack(ModItems.pipes_steel, 2)
}, 600); }, 600);
makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_cracker), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_cracker), new AStack[] {
new ComparableStack(ModBlocks.steel_scaffold, 16), new ComparableStack(ModBlocks.steel_scaffold, 16),
!exp ? new OreDictStack(STEEL.shell(), 6) : new OreDictStack(STEEL.heavyComp()), !exp ? new OreDictStack(STEEL.shell(), 6) : new OreDictStack(STEEL.heavyComp()),
@ -1185,7 +1186,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(NB.ingot(), 2), new OreDictStack(NB.ingot(), 2),
new ComparableStack(ModItems.catalyst_clay, 12), new ComparableStack(ModItems.catalyst_clay, 12),
}, 300); }, 300);
makeRecipe(new ComparableStack(ModBlocks.machine_liquefactor), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_liquefactor), new AStack[] {
new OreDictStack(STEEL.ingot(), 8), new OreDictStack(STEEL.ingot(), 8),
new OreDictStack(CU.plate528(), 12), new OreDictStack(CU.plate528(), 12),
@ -1195,7 +1196,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.catalyst_clay, 4), new ComparableStack(ModItems.catalyst_clay, 4),
new ComparableStack(ModItems.coil_tungsten, 8) new ComparableStack(ModItems.coil_tungsten, 8)
}, 200); }, 200);
makeRecipe(new ComparableStack(ModBlocks.machine_solidifier), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_solidifier), new AStack[] {
new OreDictStack(ANY_CONCRETE.any(), 8), new OreDictStack(ANY_CONCRETE.any(), 8),
new OreDictStack(AL.plate528(), 12), new OreDictStack(AL.plate528(), 12),
@ -1205,7 +1206,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.catalyst_clay, 4), new ComparableStack(ModItems.catalyst_clay, 4),
new ComparableStack(ModItems.coil_copper, 4) new ComparableStack(ModItems.coil_copper, 4)
}, 200); }, 200);
makeRecipe(new ComparableStack(ModBlocks.machine_radiolysis), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_radiolysis), new AStack[] {
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),
new OreDictStack(RUBBER.ingot(), 8), new OreDictStack(RUBBER.ingot(), 8),
@ -1214,7 +1215,7 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.thermo_element, 8), new ComparableStack(ModItems.thermo_element, 8),
new ComparableStack(ModItems.tank_steel, 3) new ComparableStack(ModItems.tank_steel, 3)
}, 200); }, 200);
makeRecipe(new ComparableStack(ModBlocks.transition_seal, 1), new AStack[]{ makeRecipe(new ComparableStack(ModBlocks.transition_seal, 1), new AStack[]{
new ComparableStack(ModBlocks.cmb_brick_reinforced, 16), new ComparableStack(ModBlocks.cmb_brick_reinforced, 16),
new OreDictStack(STEEL.plate(), 64), new OreDictStack(STEEL.plate(), 64),
@ -1243,13 +1244,13 @@ public class AssemblerRecipes extends SerializableRecipe {
makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 2)}, 200); makeRecipe(new ComparableStack(ModBlocks.sliding_seal_door, 1), new AStack[]{new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(DURA.bolt(), 4), new OreDictStack("dyeWhite", 2)}, 200);
makeRecipe(new ComparableStack(ModBlocks.silo_hatch, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 4)}, 200); makeRecipe(new ComparableStack(ModBlocks.silo_hatch, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 4), new ComparableStack(ModItems.plate_polymer, 4), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 4)}, 200);
makeRecipe(new ComparableStack(ModBlocks.silo_hatch_large, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 6), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 8)}, 200); makeRecipe(new ComparableStack(ModBlocks.silo_hatch_large, 1), new AStack[]{new OreDictStack(STEEL.plateWelded(), 6), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.motor, 2), new OreDictStack(STEEL.bolt(), 16), new OreDictStack(KEY_GREEN, 8)}, 200);
if(GeneralConfig.enableMekanismChanges && Loader.isModLoaded("Mekanism")) { if(GeneralConfig.enableMekanismChanges && Loader.isModLoaded("Mekanism")) {
Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock"); Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock");
if(mb != null) { if(mb != null) {
makeRecipe(new ComparableStack(mb, 1, 4), new AStack[] { makeRecipe(new ComparableStack(mb, 1, 4), new AStack[] {
new OreDictStack(BIGMT.plateCast(), 16), new OreDictStack(BIGMT.plateCast(), 16),
new OreDictStack(CU.plateWelded(), 12), new OreDictStack(CU.plateWelded(), 12),
@ -1261,13 +1262,13 @@ public class AssemblerRecipes extends SerializableRecipe {
}, 1200); }, 1200);
} }
} }
for(NTMMaterial mat : Mats.orderedList) { for(NTMMaterial mat : Mats.orderedList) {
if(mat.autogen.contains(MaterialShapes.CASTPLATE) && mat.autogen.contains(MaterialShapes.HEAVY_COMPONENT)) { if(mat.autogen.contains(MaterialShapes.CASTPLATE) && mat.autogen.contains(MaterialShapes.HEAVY_COMPONENT)) {
makeRecipe(new ComparableStack(ModItems.heavy_component, 1, mat.id), new AStack[] { new OreDictStack(MaterialShapes.CASTPLATE.name() + mat.names[0], 256) }, 12_000); makeRecipe(new ComparableStack(ModItems.heavy_component, 1, mat.id), new AStack[] { new OreDictStack(MaterialShapes.CASTPLATE.name() + mat.names[0], 256) }, 12_000);
} }
} }
// WarTec compatibility code // WarTec compatibility code
try { try {
Class wartecmodAssemblerRecipes = ClassLoader.getSystemClassLoader().loadClass("com.wartec.wartecmod.inventory.wartecmodAssemblerRecipes"); Class wartecmodAssemblerRecipes = ClassLoader.getSystemClassLoader().loadClass("com.wartec.wartecmod.inventory.wartecmodAssemblerRecipes");
@ -1278,18 +1279,18 @@ public class AssemblerRecipes extends SerializableRecipe {
MainRegistry.logger.info("WarTec recipes loaded!"); MainRegistry.logger.info("WarTec recipes loaded!");
} catch(Exception e) { } } catch(Exception e) { }
} }
public static void makeRecipe(ComparableStack out, AStack[] in, int duration) { public static void makeRecipe(ComparableStack out, AStack[] in, int duration) {
makeRecipe(out, in, duration, ModItems.template_folder); makeRecipe(out, in, duration, ModItems.template_folder);
} }
public static void makeRecipe(ComparableStack out, AStack[] in, int duration, Item... folder) { public static void makeRecipe(ComparableStack out, AStack[] in, int duration, Item... folder) {
if(out == null || Item.itemRegistry.getNameForObject(out.item) == null) { if(out == null || Item.itemRegistry.getNameForObject(out.item) == null) {
MainRegistry.logger.error("Canceling assembler registration, item was null!"); MainRegistry.logger.error("Canceling assembler registration, item was null!");
return; return;
} }
AssemblerRecipe recipe = new AssemblerRecipe(in, duration, folder); AssemblerRecipe recipe = new AssemblerRecipe(in, duration, folder);
recipes.put(out, recipe); recipes.put(out, recipe);
recipeList.add(out); recipeList.add(out);
@ -1314,13 +1315,13 @@ public class AssemblerRecipes extends SerializableRecipe {
@Override @Override
public void readRecipe(JsonElement recipe) { public void readRecipe(JsonElement recipe) {
JsonObject obj = recipe.getAsJsonObject(); JsonObject obj = recipe.getAsJsonObject();
ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray()); ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray());
AStack[] input = this.readAStackArray(obj.get("input").getAsJsonArray()); AStack[] input = this.readAStackArray(obj.get("input").getAsJsonArray());
int duration = obj.get("duration").getAsInt(); int duration = obj.get("duration").getAsInt();
if(output == null || output.getItem() == ModItems.nothing) return; if(output == null || output.getItem() == ModItems.nothing) return;
if(obj.has("folders")) { if(obj.has("folders")) {
JsonArray array = obj.get("folders").getAsJsonArray(); JsonArray array = obj.get("folders").getAsJsonArray();
List<Item> items = new ArrayList(); List<Item> items = new ArrayList();
@ -1337,46 +1338,46 @@ public class AssemblerRecipes extends SerializableRecipe {
@Override @Override
public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { public void writeRecipe(Object recipe, JsonWriter writer) throws IOException {
Entry<ComparableStack, AssemblerRecipe> entry = (Entry<ComparableStack, AssemblerRecipe>) recipe; Entry<ComparableStack, AssemblerRecipe> entry = (Entry<ComparableStack, AssemblerRecipe>) recipe;
writer.name("output"); writer.name("output");
this.writeItemStack(entry.getKey().toStack(), writer); this.writeItemStack(entry.getKey().toStack(), writer);
writer.name("input").beginArray(); writer.name("input").beginArray();
for(AStack stack : entry.getValue().ingredients) this.writeAStack(stack, writer); for(AStack stack : entry.getValue().ingredients) this.writeAStack(stack, writer);
writer.endArray(); writer.endArray();
writer.name("duration").value(entry.getValue().time); writer.name("duration").value(entry.getValue().time);
if(entry.getValue().folders.size() != 1 || !entry.getValue().folders.contains(ModItems.template_folder)) { if(entry.getValue().folders.size() != 1 || !entry.getValue().folders.contains(ModItems.template_folder)) {
writer.name("folders").beginArray(); writer.name("folders").beginArray();
for(Item folder : entry.getValue().folders) writer.value(Item.itemRegistry.getNameForObject(folder)); for(Item folder : entry.getValue().folders) writer.value(Item.itemRegistry.getNameForObject(folder));
writer.endArray(); writer.endArray();
} }
} }
public static ItemStack getOutputFromTempate(ItemStack stack) { public static ItemStack getOutputFromTempate(ItemStack stack) {
if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) { if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) {
ComparableStack comp = ItemAssemblyTemplate.readType(stack); ComparableStack comp = ItemAssemblyTemplate.readType(stack);
//NEW //NEW
if(comp != null) { if(comp != null) {
return comp.toStack(); return comp.toStack();
} }
//LEGACY //LEGACY
int i = stack.getItemDamage(); int i = stack.getItemDamage();
if(i >= 0 && i < recipeList.size()) { if(i >= 0 && i < recipeList.size()) {
return recipeList.get(i).toStack(); return recipeList.get(i).toStack();
} }
} }
return null; return null;
} }
public static List<AStack> getRecipeFromTempate(ItemStack stack) { public static List<AStack> getRecipeFromTempate(ItemStack stack) {
if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) { if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) {
//NEW //NEW
ComparableStack compStack = ItemAssemblyTemplate.readType(stack); ComparableStack compStack = ItemAssemblyTemplate.readType(stack);
if(compStack != null) { if(compStack != null) {
@ -1385,12 +1386,12 @@ public class AssemblerRecipes extends SerializableRecipe {
AStack[] ret = recipe.ingredients; AStack[] ret = recipe.ingredients;
return ret == null ? null : Arrays.asList(ret); return ret == null ? null : Arrays.asList(ret);
} }
//LEGACY //LEGACY
int i = stack.getItemDamage(); int i = stack.getItemDamage();
if(i >= 0 && i < recipeList.size()) { if(i >= 0 && i < recipeList.size()) {
ItemStack out = recipeList.get(i).toStack(); ItemStack out = recipeList.get(i).toStack();
if(out != null) { if(out != null) {
ComparableStack comp = new ComparableStack(out); ComparableStack comp = new ComparableStack(out);
AssemblerRecipe recipe = recipes.get(comp); AssemblerRecipe recipe = recipes.get(comp);
@ -1400,55 +1401,55 @@ public class AssemblerRecipes extends SerializableRecipe {
} }
} }
} }
return null; return null;
} }
public static void addTantalium(ComparableStack out, int amount) { public static void addTantalium(ComparableStack out, int amount) {
AssemblerRecipe recipe = recipes.get(out); AssemblerRecipe recipe = recipes.get(out);
if(recipe != null) { if(recipe != null) {
AStack[] news = new AStack[recipe.ingredients.length + 1]; AStack[] news = new AStack[recipe.ingredients.length + 1];
for(int i = 0; i < recipe.ingredients.length; i++) for(int i = 0; i < recipe.ingredients.length; i++)
news[i] = recipe.ingredients[i]; news[i] = recipe.ingredients[i];
news[news.length - 1] = new ComparableStack(ModItems.circuit, amount, EnumCircuitType.CAPACITOR_BOARD); news[news.length - 1] = new ComparableStack(ModItems.circuit, amount, EnumCircuitType.CAPACITOR_BOARD);
recipe.ingredients = news; recipe.ingredients = news;
} }
} }
public static Map<ItemStack, List<Object>> getRecipes() { public static Map<ItemStack, List<Object>> getRecipes() {
Map<ItemStack, List<Object>> recipes = new HashMap(); Map<ItemStack, List<Object>> recipes = new HashMap();
for(Entry<ComparableStack, AssemblerRecipe> entry : AssemblerRecipes.recipes.entrySet()) { for(Entry<ComparableStack, AssemblerRecipe> entry : AssemblerRecipes.recipes.entrySet()) {
List<Object> value = new ArrayList(); List<Object> value = new ArrayList();
AssemblerRecipe recipe = entry.getValue(); AssemblerRecipe recipe = entry.getValue();
for(AStack o : recipe.ingredients) { for(AStack o : recipe.ingredients) {
value.add(o.extractForNEI()); value.add(o.extractForNEI());
} }
recipes.put(entry.getKey().toStack(), value); recipes.put(entry.getKey().toStack(), value);
} }
return recipes; return recipes;
} }
public static class AssemblerRecipe { public static class AssemblerRecipe {
public AStack[] ingredients; public AStack[] ingredients;
public int time; public int time;
public HashSet<Item> folders; public HashSet<Item> folders;
public AssemblerRecipe(AStack[] ingredients, int time) { public AssemblerRecipe(AStack[] ingredients, int time) {
this(ingredients, time, ModItems.template_folder); this(ingredients, time, ModItems.template_folder);
} }
public AssemblerRecipe(AStack[] ingredients, int time, Item... folder) { public AssemblerRecipe(AStack[] ingredients, int time, Item... folder) {
this.ingredients = ingredients; this.ingredients = ingredients;
this.time = time; this.time = time;

View File

@ -390,6 +390,10 @@ public class ChemplantRecipes extends SerializableRecipe {
new ItemStack(ModItems.niter, 3)) new ItemStack(ModItems.niter, 3))
.outputFluids(new FluidStack(Fluids.SALIENT, 250))); .outputFluids(new FluidStack(Fluids.SALIENT, 250)));
recipes.add(new ChemRecipe(104, "RUSTY_DECO_STEEL", 100)
.inputItems(new ComparableStack(ModBlocks.deco_steel, 8))
.inputFluids(new FluidStack(Fluids.WATER, 1000))
.outputItems(new ItemStack(ModBlocks.deco_rusty_steel, 8)));
} }
public static void registerOtherOil() { public static void registerOtherOil() {

View File

@ -40,7 +40,7 @@ public class AnvilRecipes extends SerializableRecipe {
public static List<AnvilSmithingRecipe> smithingRecipes = new ArrayList(); public static List<AnvilSmithingRecipe> smithingRecipes = new ArrayList();
public static List<AnvilConstructionRecipe> constructionRecipes = new ArrayList(); public static List<AnvilConstructionRecipe> constructionRecipes = new ArrayList();
public static void register() { public static void register() {
registerSmithing(); registerSmithing();
} }
@ -49,7 +49,7 @@ public class AnvilRecipes extends SerializableRecipe {
@Override public Object getRecipeObject() { return constructionRecipes; } @Override public Object getRecipeObject() { return constructionRecipes; }
@Override public void deleteRecipes() { constructionRecipes.clear(); } @Override public void deleteRecipes() { constructionRecipes.clear(); }
@Override public void registerDefaults() { registerConstruction(); } @Override public void registerDefaults() { registerConstruction(); }
/* /*
* ////// // // // ////// // // // // // ////// * ////// // // // ////// // // // // // //////
* // //// //// // // // // // //// // // * // //// //// // // // // // //// // //
@ -58,9 +58,9 @@ public class AnvilRecipes extends SerializableRecipe {
* ////// // // // // // // // // // ////// * ////// // // // // // // // // // //////
*/ */
public static void registerSmithing() { public static void registerSmithing() {
Block[] anvils = new Block[]{ModBlocks.anvil_iron, ModBlocks.anvil_lead}; Block[] anvils = new Block[]{ModBlocks.anvil_iron, ModBlocks.anvil_lead};
for(Block anvil : anvils) { for(Block anvil : anvils) {
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_steel, 1), new ComparableStack(anvil), new OreDictStack(STEEL.ingot(), 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_steel, 1), new ComparableStack(anvil), new OreDictStack(STEEL.ingot(), 10)));
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_desh, 1), new ComparableStack(anvil), new OreDictStack(DESH.ingot(), 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_desh, 1), new ComparableStack(anvil), new OreDictStack(DESH.ingot(), 10)));
@ -72,14 +72,14 @@ public class AnvilRecipes extends SerializableRecipe {
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_dnt, 1), new ComparableStack(anvil), new OreDictStack(DNT.ingot(), 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_dnt, 1), new ComparableStack(anvil), new OreDictStack(DNT.ingot(), 10)));
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_osmiridium, 1), new ComparableStack(anvil), new OreDictStack(OSMIRIDIUM.ingot(), 10))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModBlocks.anvil_osmiridium, 1), new ComparableStack(anvil), new OreDictStack(OSMIRIDIUM.ingot(), 10)));
} }
for(int i = 0; i < 9; i++) for(int i = 0; i < 9; i++)
smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_steel_dusted, 1, i + 1), smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_steel_dusted, 1, i + 1),
new ComparableStack(ModItems.ingot_steel_dusted, 1, i), new ComparableStack(ModItems.ingot_steel_dusted, 1, i))); new ComparableStack(ModItems.ingot_steel_dusted, 1, i), new ComparableStack(ModItems.ingot_steel_dusted, 1, i)));
smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_chainsteel, 1), smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_chainsteel, 1),
new ComparableStack(ModItems.ingot_steel_dusted, 1, 9), new ComparableStack(ModItems.ingot_steel_dusted, 1, 9))); new ComparableStack(ModItems.ingot_steel_dusted, 1, 9), new ComparableStack(ModItems.ingot_steel_dusted, 1, 9)));
smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_meteorite_forged, 1), new ComparableStack(ModItems.ingot_meteorite), new ComparableStack(ModItems.ingot_meteorite))); smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.ingot_meteorite_forged, 1), new ComparableStack(ModItems.ingot_meteorite), new ComparableStack(ModItems.ingot_meteorite)));
smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.blade_meteorite, 1), new ComparableStack(ModItems.ingot_meteorite_forged), new ComparableStack(ModItems.ingot_meteorite_forged))); smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.blade_meteorite, 1), new ComparableStack(ModItems.ingot_meteorite_forged), new ComparableStack(ModItems.ingot_meteorite_forged)));
smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.meteorite_sword_reforged, 1), new ComparableStack(ModItems.meteorite_sword_seared), new ComparableStack(ModItems.ingot_meteorite_forged))); smithingRecipes.add(new AnvilSmithingHotRecipe(3, new ItemStack(ModItems.meteorite_sword_reforged, 1), new ComparableStack(ModItems.meteorite_sword_seared), new ComparableStack(ModItems.ingot_meteorite_forged)));
@ -95,7 +95,7 @@ public class AnvilRecipes extends SerializableRecipe {
smithingRecipes.add(new AnvilSmithingRecipe(4, new ItemStack(ModItems.flask_infusion, 1, EnumInfusion.SHIELD.ordinal()), new ComparableStack(ModItems.gem_alexandrite), new ComparableStack(ModItems.bottle_nuka))); smithingRecipes.add(new AnvilSmithingRecipe(4, new ItemStack(ModItems.flask_infusion, 1, EnumInfusion.SHIELD.ordinal()), new ComparableStack(ModItems.gem_alexandrite), new ComparableStack(ModItems.bottle_nuka)));
smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModItems.ingot_gunmetal, 1), new OreDictStack(CU.ingot()), new OreDictStack(AL.ingot()))); smithingRecipes.add(new AnvilSmithingRecipe(1, new ItemStack(ModItems.ingot_gunmetal, 1), new OreDictStack(CU.ingot()), new OreDictStack(AL.ingot())));
smithingRecipes.add(new AnvilSmithingMold(0, new OreDictStack(GOLD.nugget()), new OreDictStack("nugget"))); smithingRecipes.add(new AnvilSmithingMold(0, new OreDictStack(GOLD.nugget()), new OreDictStack("nugget")));
smithingRecipes.add(new AnvilSmithingMold(1, new OreDictStack(U.billet()), new OreDictStack("billet"))); smithingRecipes.add(new AnvilSmithingMold(1, new OreDictStack(U.billet()), new OreDictStack("billet")));
smithingRecipes.add(new AnvilSmithingMold(2, new OreDictStack(IRON.ingot()), new OreDictStack("ingot"))); smithingRecipes.add(new AnvilSmithingMold(2, new OreDictStack(IRON.ingot()), new OreDictStack("ingot")));
@ -126,11 +126,11 @@ public class AnvilRecipes extends SerializableRecipe {
smithingRecipes.add(new AnvilSmithingMold(13, new ComparableStack(ModItems.pipes_steel), new ItemStack[] {new ItemStack(ModItems.pipes_steel)})); smithingRecipes.add(new AnvilSmithingMold(13, new ComparableStack(ModItems.pipes_steel), new ItemStack[] {new ItemStack(ModItems.pipes_steel)}));
smithingRecipes.add(new AnvilSmithingMold(20, new OreDictStack(ALLOY.wireDense(), 1), new OreDictStack("wireDense", 1))); smithingRecipes.add(new AnvilSmithingMold(20, new OreDictStack(ALLOY.wireDense(), 1), new OreDictStack("wireDense", 1)));
smithingRecipes.add(new AnvilSmithingMold(21, new OreDictStack(ALLOY.wireDense(), 9), new OreDictStack("wireDense", 9))); smithingRecipes.add(new AnvilSmithingMold(21, new OreDictStack(ALLOY.wireDense(), 9), new OreDictStack("wireDense", 9)));
smithingRecipes.add(new AnvilSmithingCyanideRecipe()); smithingRecipes.add(new AnvilSmithingCyanideRecipe());
smithingRecipes.add(new AnvilSmithingRenameRecipe()); smithingRecipes.add(new AnvilSmithingRenameRecipe());
} }
/* /*
* ////// ////// // // ////// ////// //// // // ////// ////// // ////// // // * ////// ////// // // ////// ////// //// // // ////// ////// // ////// // //
* // // // //// // // // // // // // // // // // // //// // * // // // //// // // // // // // // // // // // // //// //
@ -139,7 +139,7 @@ public class AnvilRecipes extends SerializableRecipe {
* ////// ////// // // ////// // // // ////// ////// // // ////// // // * ////// ////// // // ////// // // // ////// ////// // // ////// // //
*/ */
public static void registerConstruction() { public static void registerConstruction() {
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(IRON.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_iron))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(IRON.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_iron))).setTier(3));
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(GOLD.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_gold))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(GOLD.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_gold))).setTier(3));
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(TI.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_titanium))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(TI.ingot()), new AnvilOutput(new ItemStack(ModItems.plate_titanium))).setTier(3));
@ -166,13 +166,13 @@ public class AnvilRecipes extends SerializableRecipe {
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(LAPIS.dust()), new AnvilOutput(new ItemStack(Items.dye, 1, 4))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(LAPIS.dust()), new AnvilOutput(new ItemStack(Items.dye, 1, 4))).setTier(3));
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(DIAMOND.dust()), new AnvilOutput(new ItemStack(Items.diamond))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(DIAMOND.dust()), new AnvilOutput(new ItemStack(Items.diamond))).setTier(3));
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(EMERALD.dust()), new AnvilOutput(new ItemStack(Items.emerald))).setTier(3)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(EMERALD.dust()), new AnvilOutput(new ItemStack(Items.emerald))).setTier(3));
registerConstructionRecipes(); registerConstructionRecipes();
registerConstructionAmmo(); registerConstructionAmmo();
registerConstructionUpgrades(); registerConstructionUpgrades();
registerConstructionRecycling(); registerConstructionRecycling();
} }
public static void registerConstructionRecipes() { public static void registerConstructionRecipes() {
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(AL.ingot(), 1), new AnvilOutput(new ItemStack(ModBlocks.deco_aluminium, 4))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
@ -191,13 +191,13 @@ public class AnvilRecipes extends SerializableRecipe {
new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 4), new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 4),
new AnvilOutput(new ItemStack(ModItems.shell, 1, mat.id))).setTier(1)); new AnvilOutput(new ItemStack(ModItems.shell, 1, mat.id))).setTier(1));
for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.PIPE)) { for(NTMMaterial mat : Mats.orderedList) if(mat.autogen.contains(MaterialShapes.PIPE)) {
String key = (OreDictionary.doesOreNameExist(MaterialShapes.PLATE.name() + mat.names[0]) ? String key = (OreDictionary.doesOreNameExist(MaterialShapes.PLATE.name() + mat.names[0]) ?
MaterialShapes.PLATE.name() + mat.names[0] : MaterialShapes.INGOT.name() + mat.names[0]); MaterialShapes.PLATE.name() + mat.names[0] : MaterialShapes.INGOT.name() + mat.names[0]);
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new OreDictStack(key, 3), new OreDictStack(key, 3),
new AnvilOutput(new ItemStack(ModItems.pipe, 1, mat.id))).setTier(1)); new AnvilOutput(new ItemStack(ModItems.pipe, 1, mat.id))).setTier(1));
} }
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModItems.coil_copper, 2), new ComparableStack(ModItems.coil_copper, 2),
new AnvilOutput(new ItemStack(ModItems.coil_copper_torus))).setTier(1).setOverlay(OverlayType.CONSTRUCTION)); new AnvilOutput(new ItemStack(ModItems.coil_copper_torus))).setTier(1).setOverlay(OverlayType.CONSTRUCTION));
@ -217,7 +217,7 @@ public class AnvilRecipes extends SerializableRecipe {
pullFromAssembler(new ComparableStack(ModItems.filter_coal), 2); pullFromAssembler(new ComparableStack(ModItems.filter_coal), 2);
pullFromAssembler(new ComparableStack(ModItems.thermo_element), 2); pullFromAssembler(new ComparableStack(ModItems.thermo_element), 2);
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new ComparableStack(Blocks.stonebrick, 4), new ComparableStack(Blocks.stonebrick, 4),
@ -225,7 +225,7 @@ public class AnvilRecipes extends SerializableRecipe {
new OreDictStack(CU.plate(), 4) new OreDictStack(CU.plate(), 4)
}, },
new AnvilOutput(new ItemStack(ModBlocks.machine_difurnace_off))).setTier(1)); new AnvilOutput(new ItemStack(ModBlocks.machine_difurnace_off))).setTier(1));
int ukModifier = 1; int ukModifier = 1;
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
@ -405,7 +405,7 @@ public class AnvilRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 2, EnumCircuitType.VACUUM_TUBE.ordinal()), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.VACUUM_TUBE.ordinal()),
new ComparableStack(ModItems.sawblade) new ComparableStack(ModItems.sawblade)
}, new AnvilOutput(new ItemStack(ModBlocks.machine_autosaw))).setTier(2)); }, new AnvilOutput(new ItemStack(ModBlocks.machine_autosaw))).setTier(2));
pullFromAssembler(new ComparableStack(ModBlocks.machine_diesel), 2); pullFromAssembler(new ComparableStack(ModBlocks.machine_diesel), 2);
/*constructionRecipes.add(new AnvilConstructionRecipe( /*constructionRecipes.add(new AnvilConstructionRecipe(
@ -432,14 +432,14 @@ public class AnvilRecipes extends SerializableRecipe {
new ComparableStack(ModBlocks.machine_condenser, 16), new ComparableStack(ModBlocks.machine_condenser, 16),
new OreDictStack(STEEL.pipe(), 8), new OreDictStack(STEEL.pipe(), 8),
}, new AnvilOutput(new ItemStack(ModBlocks.machine_tower_large))).setTier(4)); }, new AnvilOutput(new ItemStack(ModBlocks.machine_tower_large))).setTier(4));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new ComparableStack(Items.bone, 16), new ComparableStack(Items.bone, 16),
new ComparableStack(Items.leather, 4), new ComparableStack(Items.leather, 4),
new ComparableStack(Items.feather, 24) new ComparableStack(Items.feather, 24)
}, new AnvilOutput(new ItemStack(ModItems.wings_limp))).setTier(2)); }, new AnvilOutput(new ItemStack(ModItems.wings_limp))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new ComparableStack(ModItems.sulfur, 12), new ComparableStack(ModItems.sulfur, 12),
@ -448,7 +448,7 @@ public class AnvilRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC.ordinal()) new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC.ordinal())
}, },
new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_extractor))).setTier(2)); new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_extractor))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new ComparableStack(ModItems.deuterium_filter, 2), new ComparableStack(ModItems.deuterium_filter, 2),
@ -459,7 +459,7 @@ public class AnvilRecipes extends SerializableRecipe {
new OreDictStack(Fluids.SOURGAS.getDict(1_000), 8), new OreDictStack(Fluids.SOURGAS.getDict(1_000), 8),
}, },
new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_tower))).setTier(4)); new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_tower))).setTier(4));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new OreDictStack(ANY_CONCRETE.any(), 2), new OreDictStack(ANY_CONCRETE.any(), 2),
@ -468,7 +468,7 @@ public class AnvilRecipes extends SerializableRecipe {
new ComparableStack(ModItems.coil_copper, 4) new ComparableStack(ModItems.coil_copper, 4)
}, },
new AnvilOutput(new ItemStack(ModBlocks.red_pylon_large))).setTier(2)); new AnvilOutput(new ItemStack(ModBlocks.red_pylon_large))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new OreDictStack(ANY_CONCRETE.any(), 8), new OreDictStack(ANY_CONCRETE.any(), 8),
@ -477,7 +477,7 @@ public class AnvilRecipes extends SerializableRecipe {
new ComparableStack(ModItems.coil_copper, 8) new ComparableStack(ModItems.coil_copper, 8)
}, },
new AnvilOutput(new ItemStack(ModBlocks.substation, 2))).setTier(2)); new AnvilOutput(new ItemStack(ModBlocks.substation, 2))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new OreDictStack(STEEL.plate(), 4), new OreDictStack(STEEL.plate(), 4),
@ -485,7 +485,7 @@ public class AnvilRecipes extends SerializableRecipe {
new ComparableStack(ModBlocks.steel_grate, 2) new ComparableStack(ModBlocks.steel_grate, 2)
}, },
new AnvilOutput(new ItemStack(ModBlocks.chimney_brick))).setTier(2)); new AnvilOutput(new ItemStack(ModBlocks.chimney_brick))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new OreDictStack(STEEL.plate(), 16), new OreDictStack(STEEL.plate(), 16),
@ -494,7 +494,7 @@ public class AnvilRecipes extends SerializableRecipe {
new ComparableStack(ModItems.filter_coal, 4) new ComparableStack(ModItems.filter_coal, 4)
}, },
new AnvilOutput(new ItemStack(ModBlocks.chimney_industrial))).setTier(3)); new AnvilOutput(new ItemStack(ModBlocks.chimney_industrial))).setTier(3));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new ComparableStack(ModItems.tank_steel, 1), new ComparableStack(ModItems.tank_steel, 1),
@ -507,14 +507,14 @@ public class AnvilRecipes extends SerializableRecipe {
new OreDictStack(PB.plate528(), 2), new OreDictStack(PB.plate528(), 2),
new ComparableStack(ModItems.nuclear_waste_vitrified, 10) new ComparableStack(ModItems.nuclear_waste_vitrified, 10)
}, new AnvilOutput(new ItemStack(ModBlocks.vitrified_barrel))).setTier(3)); }, new AnvilOutput(new ItemStack(ModBlocks.vitrified_barrel))).setTier(3));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] { new AStack[] {
new ComparableStack(ModItems.man_core, 1), new ComparableStack(ModItems.man_core, 1),
new OreDictStack(BE.ingot(), 4), new OreDictStack(BE.ingot(), 4),
new ComparableStack(ModItems.screwdriver, 1) new ComparableStack(ModItems.screwdriver, 1)
}, new AnvilOutput(new ItemStack(ModItems.demon_core_open))).setTier(3)); }, new AnvilOutput(new ItemStack(ModItems.demon_core_open))).setTier(3));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(DURA.ingot(), 1)}, new AStack[] {new OreDictStack(DESH.ingot(), 4), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(DURA.ingot(), 1)},
new AnvilOutput(new ItemStack(ModItems.plate_desh, 4))).setTier(3)); new AnvilOutput(new ItemStack(ModItems.plate_desh, 4))).setTier(3));
@ -546,7 +546,7 @@ public class AnvilRecipes extends SerializableRecipe {
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new AStack[] {new ComparableStack(ModItems.plate_dineutronium, 4), new ComparableStack(ModItems.particle_sparkticle, 1), new ComparableStack(ModItems.plate_armor_fau, 6)}, new AStack[] {new ComparableStack(ModItems.plate_dineutronium, 4), new ComparableStack(ModItems.particle_sparkticle, 1), new ComparableStack(ModItems.plate_armor_fau, 6)},
new AnvilOutput(new ItemStack(ModItems.plate_armor_dnt))).setTier(7)); new AnvilOutput(new ItemStack(ModItems.plate_armor_dnt))).setTier(7));
pullFromAssembler(new ComparableStack(ModItems.plate_mixed, 4), 3); pullFromAssembler(new ComparableStack(ModItems.plate_mixed, 4), 3);
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
@ -556,7 +556,7 @@ public class AnvilRecipes extends SerializableRecipe {
new OreDictStack(AL.plateWelded(), 2), new OreDictStack(AL.plateWelded(), 2),
new OreDictStack(PU239.billet(), 3) new OreDictStack(PU239.billet(), 3)
}, new AnvilOutput(new ItemStack(ModItems.missile_doomsday))).setTier(5)); }, new AnvilOutput(new ItemStack(ModItems.missile_doomsday))).setTier(5));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u233, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u233))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u233, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u233))).setTier(4));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u235, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u235))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_u235, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_u235))).setTier(4));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_mox_fuel, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_mox))).setTier(4)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.ingot_mox_fuel, 1), new AnvilOutput(new ItemStack(ModItems.plate_fuel_mox))).setTier(4));
@ -577,7 +577,7 @@ public class AnvilRecipes extends SerializableRecipe {
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_exhaust, 8, i), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.plate_iron)), new AnvilOutput(new ItemStack(ModItems.plate_polymer))}).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.fluid_duct_exhaust, 8, i), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.plate_iron)), new AnvilOutput(new ItemStack(ModItems.plate_polymer))}).setTier(2));
} }
} }
public static void registerConstructionAmmo() { public static void registerConstructionAmmo() {
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_iron_flat), new OreDictStack(GUNMETAL.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.stamp_9))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_iron_flat), new OreDictStack(GUNMETAL.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.stamp_9))).setTier(2));
@ -587,7 +587,7 @@ public class AnvilRecipes extends SerializableRecipe {
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(IRON.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 16))).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(IRON.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 16))).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(IRON.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 17))).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(IRON.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 17))).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 22))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 22))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 23))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 23))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 24))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 24))).setTier(2));
@ -595,10 +595,10 @@ public class AnvilRecipes extends SerializableRecipe {
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 26))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 26))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 27))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 27))).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 28))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 28))).setTier(2));
pullFromAssembler(new ComparableStack(ModItems.pellet_buckshot), 1); pullFromAssembler(new ComparableStack(ModItems.pellet_buckshot), 1);
} }
public static void registerConstructionUpgrades() { public static void registerConstructionUpgrades() {
pullFromAssembler(new ComparableStack(ModItems.upgrade_template), 2); pullFromAssembler(new ComparableStack(ModItems.upgrade_template), 2);
pullFromAssembler(new ComparableStack(ModItems.upgrade_speed_1), 2); pullFromAssembler(new ComparableStack(ModItems.upgrade_speed_1), 2);
@ -626,7 +626,7 @@ public class AnvilRecipes extends SerializableRecipe {
pullFromAssembler(new ComparableStack(ModItems.upgrade_nullifier), 4); pullFromAssembler(new ComparableStack(ModItems.upgrade_nullifier), 4);
pullFromAssembler(new ComparableStack(ModItems.upgrade_screm), 4); pullFromAssembler(new ComparableStack(ModItems.upgrade_screm), 4);
} }
public static void registerConstructionRecycling() { public static void registerConstructionRecycling() {
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
@ -648,6 +648,7 @@ public class AnvilRecipes extends SerializableRecipe {
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_tungsten, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 1))}).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_tungsten, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_tungsten, 1))}).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_aluminium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_aluminium, 1))}).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_aluminium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_aluminium, 1))}).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_steel, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_steel, 1))}).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_steel, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_steel, 1))}).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_rusty_steel, 8), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_steel, 1))}).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_lead, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_lead, 1))}).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_lead, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_lead, 1))}).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_beryllium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 1))}).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_beryllium, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_beryllium, 1))}).setTier(1));
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_asbestos, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_asbestos, 1))}).setTier(1)); constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModBlocks.deco_asbestos, 4), new AnvilOutput[] {new AnvilOutput(new ItemStack(ModItems.ingot_asbestos, 1))}).setTier(1));
@ -659,7 +660,7 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.ingot_copper, 6)) new AnvilOutput(new ItemStack(ModItems.ingot_copper, 6))
} }
).setTier(2)); ).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModBlocks.heater_oven), new ComparableStack(ModBlocks.heater_oven),
new AnvilOutput[] { new AnvilOutput[] {
@ -745,7 +746,7 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR.ordinal()), 0.75F), new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR.ordinal()), 0.75F),
new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR.ordinal()), 0.5F), new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CAPACITOR.ordinal()), 0.5F),
new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ANALOG.ordinal()), 0.1F) new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ANALOG.ordinal()), 0.1F)
} }
).setTier(2)); ).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
@ -756,7 +757,7 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_COPPER.id)), new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_COPPER.id)),
new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_GOLD.id), 0.25F), new AnvilOutput(new ItemStack(ModItems.wire_fine, 2, Mats.MAT_GOLD.id), 0.25F),
new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.VACUUM_TUBE.ordinal()), 0.25F) new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.VACUUM_TUBE.ordinal()), 0.25F)
} }
).setTier(2)); ).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
@ -769,7 +770,7 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.battery_generic, 1), 0.25F), new AnvilOutput(new ItemStack(ModItems.battery_generic, 1), 0.25F),
new AnvilOutput(new ItemStack(ModItems.battery_advanced, 1), 0.1F), new AnvilOutput(new ItemStack(ModItems.battery_advanced, 1), 0.1F),
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.01F) new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.01F)
} }
).setTier(2)); ).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
@ -782,7 +783,7 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.battery_lithium, 1), 0.25F), new AnvilOutput(new ItemStack(ModItems.battery_lithium, 1), 0.25F),
new AnvilOutput(new ItemStack(ModItems.battery_sc_uranium, 1), 0.1F), new AnvilOutput(new ItemStack(ModItems.battery_sc_uranium, 1), 0.1F),
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.05F) new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.05F)
} }
).setTier(2)); ).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
@ -796,7 +797,7 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.5F), new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.5F),
new AnvilOutput(new ItemStack(ModItems.gem_alexandrite, 1), 0.25F), new AnvilOutput(new ItemStack(ModItems.gem_alexandrite, 1), 0.25F),
new AnvilOutput(new ItemStack(ModItems.flame_pony, 1), 0.01F) new AnvilOutput(new ItemStack(ModItems.flame_pony, 1), 0.01F)
} }
).setTier(2)); ).setTier(2));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
@ -840,7 +841,7 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.plate_steel, 2), 0.5F), new AnvilOutput(new ItemStack(ModItems.plate_steel, 2), 0.5F),
new AnvilOutput(new ItemStack(ModItems.plate_polymer, 2), 0.25F), new AnvilOutput(new ItemStack(ModItems.plate_polymer, 2), 0.25F),
new AnvilOutput(new ItemStack(ModItems.scrap, 1)) new AnvilOutput(new ItemStack(ModItems.scrap, 1))
} }
).setTier(1)); ).setTier(1));
@ -870,7 +871,7 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.lithium, 1)), new AnvilOutput(new ItemStack(ModItems.lithium, 1)),
new AnvilOutput(new ItemStack(ModItems.cell_empty, 1)) new AnvilOutput(new ItemStack(ModItems.cell_empty, 1))
}).setTier(2)); }).setTier(2));
//RBMK //RBMK
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModBlocks.rbmk_moderator), new AnvilOutput[] { new ComparableStack(ModBlocks.rbmk_moderator), new AnvilOutput[] {
@ -929,9 +930,9 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)), new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)),
new AnvilOutput(new ItemStack(ModBlocks.crate_steel, 2)) new AnvilOutput(new ItemStack(ModBlocks.crate_steel, 2))
}).setTier(4)); }).setTier(4));
if(!GeneralConfig.enable528) { if(!GeneralConfig.enable528) {
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModBlocks.rbmk_rod), new AnvilOutput[] { new ComparableStack(ModBlocks.rbmk_rod), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)), new AnvilOutput(new ItemStack(ModBlocks.rbmk_blank, 1)),
@ -1002,7 +1003,7 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(ModItems.coil_copper, 2)), new AnvilOutput(new ItemStack(ModItems.coil_copper, 2)),
new AnvilOutput(new ItemStack(ModItems.ingot_steel, 4)) new AnvilOutput(new ItemStack(ModItems.ingot_steel, 4))
}).setTier(3)); }).setTier(3));
constructionRecipes.add(new AnvilConstructionRecipe( constructionRecipes.add(new AnvilConstructionRecipe(
new ComparableStack(ModBlocks.yellow_barrel), new AnvilOutput[] { new ComparableStack(ModBlocks.yellow_barrel), new AnvilOutput[] {
new AnvilOutput(new ItemStack(ModItems.tank_steel, 1)), new AnvilOutput(new ItemStack(ModItems.tank_steel, 1)),
@ -1024,91 +1025,91 @@ public class AnvilRecipes extends SerializableRecipe {
new AnvilOutput(new ItemStack(Items.experience_bottle, 1), 0.5F) new AnvilOutput(new ItemStack(Items.experience_bottle, 1), 0.5F)
}).setTier(1)); }).setTier(1));
} }
public static void pullFromAssembler(ComparableStack result, int tier) { public static void pullFromAssembler(ComparableStack result, int tier) {
AssemblerRecipe recipe = AssemblerRecipes.recipes.get(result); AssemblerRecipe recipe = AssemblerRecipes.recipes.get(result);
if(recipe != null) { if(recipe != null) {
constructionRecipes.add(new AnvilConstructionRecipe(recipe.ingredients, new AnvilOutput(result.toStack())).setTier(tier)); constructionRecipes.add(new AnvilConstructionRecipe(recipe.ingredients, new AnvilOutput(result.toStack())).setTier(tier));
} }
} }
public static List<AnvilSmithingRecipe> getSmithing() { public static List<AnvilSmithingRecipe> getSmithing() {
return smithingRecipes; return smithingRecipes;
} }
public static List<AnvilConstructionRecipe> getConstruction() { public static List<AnvilConstructionRecipe> getConstruction() {
return constructionRecipes; return constructionRecipes;
} }
public static class AnvilConstructionRecipe { public static class AnvilConstructionRecipe {
public List<AStack> input = new ArrayList(); public List<AStack> input = new ArrayList();
public List<AnvilOutput> output = new ArrayList(); public List<AnvilOutput> output = new ArrayList();
public int tierLower = 0; public int tierLower = 0;
public int tierUpper = -1; public int tierUpper = -1;
OverlayType overlay = OverlayType.NONE; OverlayType overlay = OverlayType.NONE;
public AnvilConstructionRecipe(AStack input, AnvilOutput output) { public AnvilConstructionRecipe(AStack input, AnvilOutput output) {
this.input.add(input); this.input.add(input);
this.output.add(output); this.output.add(output);
this.setOverlay(OverlayType.SMITHING); //preferred overlay for 1:1 conversions is smithing this.setOverlay(OverlayType.SMITHING); //preferred overlay for 1:1 conversions is smithing
} }
public AnvilConstructionRecipe(AStack[] input, AnvilOutput output) { public AnvilConstructionRecipe(AStack[] input, AnvilOutput output) {
for(AStack stack : input) this.input.add(stack); for(AStack stack : input) this.input.add(stack);
this.output.add(output); this.output.add(output);
this.setOverlay(OverlayType.CONSTRUCTION); //preferred overlay for many:1 conversions is construction this.setOverlay(OverlayType.CONSTRUCTION); //preferred overlay for many:1 conversions is construction
} }
public AnvilConstructionRecipe(AStack input, AnvilOutput[] output) { public AnvilConstructionRecipe(AStack input, AnvilOutput[] output) {
this.input.add(input); this.input.add(input);
for(AnvilOutput out : output) this.output.add(out); for(AnvilOutput out : output) this.output.add(out);
this.setOverlay(OverlayType.RECYCLING); //preferred overlay for 1:many conversions is recycling this.setOverlay(OverlayType.RECYCLING); //preferred overlay for 1:many conversions is recycling
} }
public AnvilConstructionRecipe(AStack[] input, AnvilOutput[] output) { public AnvilConstructionRecipe(AStack[] input, AnvilOutput[] output) {
for(AStack stack : input) this.input.add(stack); for(AStack stack : input) this.input.add(stack);
for(AnvilOutput out : output) this.output.add(out); for(AnvilOutput out : output) this.output.add(out);
this.setOverlay(OverlayType.NONE); //no preferred overlay for many:many conversions this.setOverlay(OverlayType.NONE); //no preferred overlay for many:many conversions
} }
public AnvilConstructionRecipe(AStack[] input, Pair<ItemStack, Float>[] output) { public AnvilConstructionRecipe(AStack[] input, Pair<ItemStack, Float>[] output) {
for(AStack stack : input) this.input.add(stack); for(AStack stack : input) this.input.add(stack);
for(Pair<ItemStack, Float> out : output) this.output.add(new AnvilOutput(out.getKey(), out.getValue())); for(Pair<ItemStack, Float> out : output) this.output.add(new AnvilOutput(out.getKey(), out.getValue()));
this.setOverlay(OverlayType.NONE); //no preferred overlay for many:many conversions this.setOverlay(OverlayType.NONE); //no preferred overlay for many:many conversions
} }
public AnvilConstructionRecipe setTier(int tier) { public AnvilConstructionRecipe setTier(int tier) {
this.tierLower = tier; this.tierLower = tier;
if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMUnlockAnvil) this.tierLower = 1; if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMUnlockAnvil) this.tierLower = 1;
return this; return this;
} }
public AnvilConstructionRecipe setTierRange(int lower, int upper) { public AnvilConstructionRecipe setTierRange(int lower, int upper) {
this.tierLower = lower; this.tierLower = lower;
this.tierUpper = upper; this.tierUpper = upper;
if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMUnlockAnvil) this.tierLower = this.tierUpper = 1; if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMUnlockAnvil) this.tierLower = this.tierUpper = 1;
return this; return this;
} }
public boolean isTierValid(int tier) { public boolean isTierValid(int tier) {
if(this.tierUpper == -1) if(this.tierUpper == -1)
return tier >= this.tierLower; return tier >= this.tierLower;
return tier >= this.tierLower && tier <= this.tierUpper; return tier >= this.tierLower && tier <= this.tierUpper;
} }
public AnvilConstructionRecipe setOverlay(OverlayType overlay) { public AnvilConstructionRecipe setOverlay(OverlayType overlay) {
this.overlay = overlay; this.overlay = overlay;
return this; return this;
} }
public OverlayType getOverlay() { public OverlayType getOverlay() {
return this.overlay; return this.overlay;
} }
public ItemStack getDisplay() { public ItemStack getDisplay() {
switch(this.overlay) { switch(this.overlay) {
case NONE: return this.output.get(0).stack.copy(); case NONE: return this.output.get(0).stack.copy();
@ -1124,21 +1125,21 @@ public class AnvilRecipes extends SerializableRecipe {
} }
} }
} }
public static class AnvilOutput { public static class AnvilOutput {
public ItemStack stack; public ItemStack stack;
public float chance; public float chance;
public AnvilOutput(ItemStack stack) { public AnvilOutput(ItemStack stack) {
this(stack, 1F); this(stack, 1F);
} }
public AnvilOutput(ItemStack stack, float chance) { public AnvilOutput(ItemStack stack, float chance) {
this.stack = stack; this.stack = stack;
this.chance = chance; this.chance = chance;
} }
} }
public static enum OverlayType { public static enum OverlayType {
NONE, NONE,
CONSTRUCTION, CONSTRUCTION,
@ -1149,38 +1150,38 @@ public class AnvilRecipes extends SerializableRecipe {
@Override @Override
public void readRecipe(JsonElement recipe) { public void readRecipe(JsonElement recipe) {
JsonObject obj = (JsonObject) recipe; JsonObject obj = (JsonObject) recipe;
AStack[] inputs = this.readAStackArray(obj.get("inputs").getAsJsonArray()); AStack[] inputs = this.readAStackArray(obj.get("inputs").getAsJsonArray());
Pair<ItemStack, Float>[] outputs = this.readItemStackArrayChance(obj.get("outputs").getAsJsonArray()); Pair<ItemStack, Float>[] outputs = this.readItemStackArrayChance(obj.get("outputs").getAsJsonArray());
int tierLower = obj.get("tierLower").getAsInt(); int tierLower = obj.get("tierLower").getAsInt();
int tierUpper = obj.has("tierUpper") ? obj.get("tierUpper").getAsInt() : -1; int tierUpper = obj.has("tierUpper") ? obj.get("tierUpper").getAsInt() : -1;
OverlayType overlay = OverlayType.NONE; OverlayType overlay = OverlayType.NONE;
if(obj.has("overlay")) { if(obj.has("overlay")) {
String overlayName = obj.get("overlay").getAsString(); String overlayName = obj.get("overlay").getAsString();
overlay = OverlayType.valueOf(overlayName); overlay = OverlayType.valueOf(overlayName);
if(overlay == null) overlay = OverlayType.NONE; if(overlay == null) overlay = OverlayType.NONE;
} }
this.constructionRecipes.add(new AnvilConstructionRecipe(inputs, outputs).setTierRange(tierLower, tierUpper).setOverlay(overlay)); this.constructionRecipes.add(new AnvilConstructionRecipe(inputs, outputs).setTierRange(tierLower, tierUpper).setOverlay(overlay));
} }
@Override @Override
public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { public void writeRecipe(Object recipe, JsonWriter writer) throws IOException {
AnvilConstructionRecipe rec = (AnvilConstructionRecipe) recipe; AnvilConstructionRecipe rec = (AnvilConstructionRecipe) recipe;
writer.name("inputs").beginArray(); writer.name("inputs").beginArray();
for(AStack stack : rec.input) this.writeAStack(stack, writer); for(AStack stack : rec.input) this.writeAStack(stack, writer);
writer.endArray(); writer.endArray();
writer.name("outputs").beginArray(); writer.name("outputs").beginArray();
for(AnvilOutput stack : rec.output) this.writeItemStackChance(new Pair(stack.stack, stack.chance), writer); for(AnvilOutput stack : rec.output) this.writeItemStackChance(new Pair(stack.stack, stack.chance), writer);
writer.endArray(); writer.endArray();
writer.name("tierLower").value(rec.tierLower); writer.name("tierLower").value(rec.tierLower);
writer.name("tierUpper").value(rec.tierUpper); writer.name("tierUpper").value(rec.tierUpper);
writer.name("overlay").value(rec.overlay.name()); writer.name("overlay").value(rec.overlay.name());
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -8,6 +8,8 @@ import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.world.World; import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.List;
import java.util.Random; import java.util.Random;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
@ -16,74 +18,172 @@ public class ParticleFoam extends EntityFX {
private int age; private int age;
public int maxAge; public int maxAge;
private float baseScale = 1.0F; private float baseScale = 1.0F;
private float maxScale = 1.0F; private float maxScale = 1.5F;
// Parameters for the trail effect
private List<TrailPoint> trail = new ArrayList<TrailPoint>();
private int trailLength = 15;
private float initialVelocity;
private float buoyancy = 0.05F;
private float jitter = 0.15F;
private float drag = 0.96F;
private int explosionPhase; // 0=burst up, 1=peak, 2=settle
private static class TrailPoint {
double x, y, z;
float alpha;
public TrailPoint(double x, double y, double z, float alpha) {
this.x = x;
this.y = y;
this.z = z;
this.alpha = alpha;
}
}
public ParticleFoam(TextureManager p_i1213_1_, World p_i1218_1_, double p_i1218_2_, double p_i1218_4_, double p_i1218_6_) { public ParticleFoam(TextureManager p_i1213_1_, World p_i1218_1_, double p_i1218_2_, double p_i1218_4_, double p_i1218_6_) {
super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_); super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_);
particleIcon = ModEventHandlerClient.particleBase; particleIcon = ModEventHandlerClient.particleBase;
maxAge = 500 + rand.nextInt(5);
particleGravity = 0.1F; maxAge = 60 + rand.nextInt(60);
particleGravity = 0.005F + rand.nextFloat() * 0.015F;
initialVelocity = 2.0F + rand.nextFloat() * 3.0F;
motionY = initialVelocity;
double angle = rand.nextDouble() * Math.PI * 2;
double strength = rand.nextDouble() * 0.5;
motionX = Math.cos(angle) * strength;
motionZ = Math.sin(angle) * strength;
explosionPhase = 0; // Start in burst phase
particleScale = 0.3F + rand.nextFloat() * 0.7F;
} }
public void setBaseScale(float f) { this.baseScale = f; } public void setBaseScale(float f) { this.baseScale = f; }
public void setMaxScale(float f) { this.maxScale = f; } public void setMaxScale(float f) { this.maxScale = f; }
public void setTrailLength(int length) { this.trailLength = length; }
public void setBuoyancy(float buoyancy) { this.buoyancy = buoyancy; }
public void onUpdate() { public void onUpdate() {
this.prevPosX = this.posX; this.prevPosX = this.posX;
this.prevPosY = this.posY; this.prevPosY = this.posY;
this.prevPosZ = this.posZ; this.prevPosZ = this.posZ;
particleAlpha = 1 - ((float) age / (float) maxAge); trail.add(0, new TrailPoint(posX, posY, posZ, particleAlpha));
while (trail.size() > trailLength) {
trail.remove(trail.size() - 1);
}
// Update age and phase
++this.age; ++this.age;
if (this.age == this.maxAge) { if (this.age == this.maxAge) {
this.setDead(); this.setDead();
} }
if (this.age < maxAge / 4) { float phaseRatio = (float) age / (float) maxAge;
this.motionY = 3; if (phaseRatio < 0.3F) {
explosionPhase = 0;
if (phaseRatio < 0.15F) {
motionY += buoyancy * 6.0F;
} else {
motionY += buoyancy * (1.0F - (phaseRatio / 0.3F)) * 2.0F;
}
particleScale = baseScale + (maxScale - baseScale) * (phaseRatio / 0.3F);
} else if (phaseRatio < 0.6F) {
explosionPhase = 1;
motionY *= 0.98F;
particleScale = maxScale;
} else { } else {
this.motionY -= 0.05 * (1 - (float) this.age /maxAge); explosionPhase = 2;
motionY -= particleGravity;
particleScale = maxScale * (1.0F - ((phaseRatio - 0.6F) / 0.4F) * 0.7F);
} }
this.motionY -= this.particleGravity; particleAlpha = 0.8F * (1.0F - phaseRatio * phaseRatio);
this.motionX += rand.nextGaussian() * 0.1; motionX += (rand.nextFloat() - 0.5F) * jitter;
this.motionZ += rand.nextGaussian() * 0.1; motionZ += (rand.nextFloat() - 0.5F) * jitter;
this.moveEntity(this.motionX, motionY, this.motionZ); // drag like ninja drags the low taper fade
motionX *= drag;
motionY *= drag;
motionZ *= drag;
motionX *= 0.925; this.moveEntity(this.motionX, motionY, this.motionZ);
motionY *= 0.925;
motionZ *= 0.925;
this.particleAge++; // Kill particle if it hits ground
if(this.onGround || this.isInWeb) this.setDead(); if (this.onGround || this.isInWeb) {
this.setDead();
}
} }
public int getFXLayer() { public int getFXLayer() {
return 1; return 1;
} }
// ty kercig cuz id kms lol
public void renderParticle(Tessellator p_70539_1_, float p_70539_2_, float p_70539_3_, float p_70539_4_, float p_70539_5_, float p_70539_6_, float p_70539_7_) { public void renderParticle(Tessellator p_70539_1_, float p_70539_2_, float p_70539_3_, float p_70539_4_, float p_70539_5_, float p_70539_6_, float p_70539_7_) {
renderFoamBubbles(p_70539_1_, p_70539_2_, p_70539_3_, p_70539_4_, p_70539_5_, p_70539_6_, p_70539_7_,
posX, posY, posZ, particleScale, particleAlpha);
Random urandom = new Random(this.getEntityId()); for (int i = 1; i < trail.size(); i++) {
TrailPoint point = trail.get(i);
float trailScale = particleScale * (1.0F - (float)i / trailLength);
float trailAlpha = particleAlpha * (1.0F - (float)i / trailLength) * 0.7F;
for(int i = 0; i < 6; i++) { renderFoamBubbles(p_70539_1_, p_70539_2_, p_70539_3_, p_70539_4_, p_70539_5_, p_70539_6_, p_70539_7_,
point.x, point.y, point.z, trailScale, trailAlpha);
}
}
p_70539_1_.setColorRGBA_F(255F, 255F, 255F, this.particleAlpha); private void renderFoamBubbles(Tessellator tessellator, float p_70539_2_, float p_70539_3_, float p_70539_4_,
p_70539_1_.setNormal(0.0F, 1.0F, 0.0F); float p_70539_5_, float p_70539_6_, float p_70539_7_, double x, double y, double z, float scale, float alpha) {
float scale = urandom.nextFloat() + 0.5F; Random urandom = new Random(this.getEntityId() + (long)(x * 100) + (long)(y * 10) + (long)z);
float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double)p_70539_2_ - interpPosX) + (urandom.nextGaussian() - 1D) * 0.75F);
float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double)p_70539_2_ - interpPosY) + (urandom.nextGaussian() - 1D) * 0.75F);
float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double)p_70539_2_ - interpPosZ) + (urandom.nextGaussian() - 1D) * 0.75F);
p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale - p_70539_7_ * scale), particleIcon.getMaxU(), particleIcon.getMaxV()); int bubbleCount = explosionPhase == 0 ? 8 : (explosionPhase == 1 ? 6 : 4);
p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale + p_70539_7_ * scale), particleIcon.getMaxU(), particleIcon.getMinV());
p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale + p_70539_7_ * scale), particleIcon.getMinU(), particleIcon.getMinV()); for (int i = 0; i < bubbleCount; i++) {
p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale - p_70539_7_ * scale), particleIcon.getMinU(), particleIcon.getMaxV()); float whiteness = 0.9F + urandom.nextFloat() * 0.1F;
tessellator.setColorRGBA_F(whiteness, whiteness, whiteness, alpha);
tessellator.setNormal(0.0F, 1.0F, 0.0F);
float bubbleScale = scale * (urandom.nextFloat() * 0.5F + 0.75F);
float offset = explosionPhase == 0 ? 0.4F : (explosionPhase == 1 ? 0.6F : 0.9F);
float pX = (float) ((x - interpPosX) + (urandom.nextGaussian()) * offset);
float pY = (float) ((y - interpPosY) + (urandom.nextGaussian()) * offset * 0.7F);
float pZ = (float) ((z - interpPosZ) + (urandom.nextGaussian()) * offset);
tessellator.addVertexWithUV(
(double)(pX - p_70539_3_ * bubbleScale - p_70539_6_ * bubbleScale),
(double)(pY - p_70539_4_ * bubbleScale),
(double)(pZ - p_70539_5_ * bubbleScale - p_70539_7_ * bubbleScale),
particleIcon.getMaxU(), particleIcon.getMaxV());
tessellator.addVertexWithUV(
(double)(pX - p_70539_3_ * bubbleScale + p_70539_6_ * bubbleScale),
(double)(pY + p_70539_4_ * bubbleScale),
(double)(pZ - p_70539_5_ * bubbleScale + p_70539_7_ * bubbleScale),
particleIcon.getMaxU(), particleIcon.getMinV());
tessellator.addVertexWithUV(
(double)(pX + p_70539_3_ * bubbleScale + p_70539_6_ * bubbleScale),
(double)(pY + p_70539_4_ * bubbleScale),
(double)(pZ + p_70539_5_ * bubbleScale + p_70539_7_ * bubbleScale),
particleIcon.getMinU(), particleIcon.getMinV());
tessellator.addVertexWithUV(
(double)(pX + p_70539_3_ * bubbleScale - p_70539_6_ * bubbleScale),
(double)(pY - p_70539_4_ * bubbleScale),
(double)(pZ + p_70539_5_ * bubbleScale - p_70539_7_ * bubbleScale),
particleIcon.getMinU(), particleIcon.getMaxV());
} }
} }
} }

View File

@ -1,102 +0,0 @@
package com.hbm.particle;
import com.hbm.main.ModEventHandlerClient;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import java.awt.*;
import java.util.Random;
@SideOnly(Side.CLIENT)
public class ParticleWater extends EntityFX {
private int age;
public int maxAge;
private float baseScale = 1.0F;
private float maxScale = 1.0F;
public ParticleWater(TextureManager p_i1213_1_, World p_i1218_1_, double p_i1218_2_, double p_i1218_4_, double p_i1218_6_) {
super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_);
particleIcon = ModEventHandlerClient.particleBase;
maxAge = 10 + rand.nextInt(5);
particleGravity = 0.2F;
double speed = 0.1 + rand.nextDouble() *2;
double theta = rand.nextDouble() * 2 * Math.PI;
double phi = rand.nextDouble() * Math.PI / 2;
double motionX1 = speed * Math.cos(theta) * Math.sin(phi);
this.motionX = motionX1;
this.motionZ = motionX1;
}
public void setBaseScale(float f) { this.baseScale = f; }
public void setMaxScale(float f) { this.maxScale = f; }
public void onUpdate() {
this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
particleAlpha = 1 - ((float) age / (float) maxAge);
++this.age;
if (this.age == this.maxAge) {
this.setDead();
}
if (this.age < maxAge / 4) {
this.motionY = 4;
} else {
this.motionY -= 0.2 * (1 - (float) this.age /maxAge);
}
this.motionY -= this.particleGravity;
this.motionX += rand.nextGaussian() * 0.2 * 2;
this.motionZ += rand.nextGaussian() * 0.2 * 2;
this.moveEntity(this.motionX, motionY, this.motionZ);
motionX *= 0.925;
motionY *= 0.925;
motionZ *= 0.925;
this.particleAge++;
if(this.onGround || this.isInWeb) this.setDead();
}
public int getFXLayer() {
return 1;
}
public void renderParticle(Tessellator p_70539_1_, float p_70539_2_, float p_70539_3_, float p_70539_4_, float p_70539_5_, float p_70539_6_, float p_70539_7_) {
Random urandom = new Random(this.getEntityId());
for(int i = 0; i < 6; i++) {
this.particleRed = this.particleGreen = this.particleBlue = urandom.nextFloat() * 0.25F + 0.25F;
p_70539_1_.setColorRGBA_F(this.particleRed, this.particleGreen, 185F, this.particleAlpha);
p_70539_1_.setNormal(0.0F, 1.0F, 0.0F);
float scale = urandom.nextFloat() + 0.5F;
float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double)p_70539_2_ - interpPosX) + (urandom.nextGaussian() - 1D) * 0.75F);
float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double)p_70539_2_ - interpPosY) + (urandom.nextGaussian() - 1D) * 0.75F);
float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double)p_70539_2_ - interpPosZ) + (urandom.nextGaussian() - 1D) * 0.75F);
p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale - p_70539_7_ * scale), particleIcon.getMaxU(), particleIcon.getMaxV());
p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale + p_70539_7_ * scale), particleIcon.getMaxU(), particleIcon.getMinV());
p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale + p_70539_7_ * scale), particleIcon.getMinU(), particleIcon.getMinV());
p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale - p_70539_7_ * scale), particleIcon.getMinU(), particleIcon.getMaxV());
}
}
}

View File

@ -55,8 +55,8 @@ public class RenderLandmine extends TileEntitySpecialRenderer {
ResourceManager.mine_fat.renderAll(); ResourceManager.mine_fat.renderAll();
} }
if(block == ModBlocks.mine_naval) { if(block == ModBlocks.mine_naval) {
GL11.glScaled(0.5D, 0.5D, 0.5D); GL11.glScaled(1D, 1D, 1D);
GL11.glTranslated(0, 1, 0); GL11.glTranslated(0,0.5,0);
bindTexture(ResourceManager.mine_naval_tex); bindTexture(ResourceManager.mine_naval_tex);
ResourceManager.mine_naval.renderAll(); ResourceManager.mine_naval.renderAll();
} }

View File

@ -794,6 +794,7 @@ public class NBTStructure {
} }
// Each jigsaw block in a structure will instance one of these // Each jigsaw block in a structure will instance one of these
private static class JigsawConnection { private static class JigsawConnection {

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 923 B

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 922 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 874 B