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
@ -6,11 +6,7 @@ import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.config.ServerConfig;
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
|
||||
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.explosion.vanillant.standard.*;
|
||||
import com.hbm.interfaces.IBomb;
|
||||
import com.hbm.items.ModItems;
|
||||
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 net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.BlockDirectional;
|
||||
import net.minecraft.block.BlockFence;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@ -33,6 +31,7 @@ import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
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_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_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);
|
||||
}
|
||||
if(this == ModBlocks.mine_fat) this.setBlockBounds(5 * f, 0.0F, 4 * f, 11 * f, 6 * f, 12 * f);}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
@ -134,6 +131,18 @@ public class Landmine extends BlockContainer implements IBomb {
|
||||
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
|
||||
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.spawnShrapnels(world, x + 0.5, y + 0.5, z + 0.5, 5);
|
||||
} else if(this == ModBlocks.mine_fat) {
|
||||
|
||||
ExplosionVNT vnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 10);
|
||||
vnt.setBlockAllocator(new BlockAllocatorStandard(64));
|
||||
vnt.setBlockProcessor(new BlockProcessorStandard());
|
||||
@ -186,13 +194,16 @@ public class Landmine extends BlockContainer implements IBomb {
|
||||
vnt.setBlockProcessor(new BlockProcessorStandard());
|
||||
vnt.setEntityProcessor(new EntityProcessorCrossSmooth(0.5, ServerConfig.MINE_NAVAL_DAMAGE.get()).setupPiercing(5F, 0.2F));
|
||||
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||
vnt.setSFX(new ExplosionEffectWeapon(5, 1F, 0.5F));
|
||||
vnt.setSFX(new ExplosionEffectWeapon(6, 1F, 0.5F));
|
||||
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.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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -40,15 +40,6 @@ public class ExplosionLarge {
|
||||
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) {
|
||||
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
|
||||
@ -46,18 +46,18 @@ import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class AssemblerRecipes extends SerializableRecipe {
|
||||
|
||||
|
||||
public static HashMap<ComparableStack, AssemblerRecipe> recipes = new HashMap();
|
||||
public static List<ComparableStack> recipeList = new ArrayList();
|
||||
|
||||
|
||||
/** Legacy NOP, WarTec needs this */
|
||||
public static void loadRecipes() { }
|
||||
|
||||
@Override
|
||||
public void registerDefaults() {
|
||||
|
||||
|
||||
boolean exp = GeneralConfig.enableExpensiveMode;
|
||||
|
||||
|
||||
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_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_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.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_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);
|
||||
@ -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_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_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.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);
|
||||
@ -264,7 +265,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER),
|
||||
new ComparableStack(ModItems.part_generic, 32, EnumPartType.LDE)
|
||||
},600);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.missile_soyuz_lander, 1), new AStack[] {
|
||||
new OreDictStack(AL.shell(), 4),
|
||||
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.part_generic, 12, EnumPartType.LDE)
|
||||
},600, ModItems.journal_bj);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {
|
||||
new OreDictStack(RUBBER.ingot(), 12),
|
||||
new OreDictStack(TI.shell(), 3),
|
||||
@ -378,7 +379,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.ingot_cft, 16),
|
||||
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID),
|
||||
}, 500);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] {
|
||||
new ComparableStack(ModItems.ingot_electronium, 32),
|
||||
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 OreDictStack(DIAMOND.dust(), 16)
|
||||
}, 100);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.HSS.ordinal()), new AStack[] {
|
||||
new OreDictStack(DURA.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 OreDictStack(DIAMOND.dust(), 24)
|
||||
}, 100);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.DESH.ordinal()), new AStack[] {
|
||||
new OreDictStack(DESH.ingot(), 16),
|
||||
new OreDictStack(RUBBER.ingot(), 12),
|
||||
@ -497,7 +498,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.drillbit, 1, EnumDrillType.DESH.ordinal()),
|
||||
new OreDictStack(DIAMOND.dust(), 32)
|
||||
}, 100);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY.ordinal()), new AStack[] {
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 20),
|
||||
new OreDictStack(DESH.ingot(), 12),
|
||||
@ -507,7 +508,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.drillbit, 1, EnumDrillType.TCALLOY.ordinal()),
|
||||
new OreDictStack(DIAMOND.dust(), 48)
|
||||
}, 100);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO.ordinal()), new AStack[] {
|
||||
new OreDictStack(FERRO.ingot(), 24),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 12),
|
||||
@ -517,7 +518,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.drillbit, 1, EnumDrillType.FERRO.ordinal()),
|
||||
new OreDictStack(DIAMOND.dust(), 56)
|
||||
}, 100);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_large_turbine, 1), new AStack[] {
|
||||
!exp ? new OreDictStack(STEEL.plate528(), 12) : new OreDictStack(STEEL.heavyComp(), 1),
|
||||
new OreDictStack(RUBBER.ingot(), 4),
|
||||
@ -539,7 +540,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new OreDictStack(DURA.pipe(), 16),
|
||||
new OreDictStack(STEEL.pipe(), 16)
|
||||
}, 600);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_condenser_powered, 1), new AStack[] {
|
||||
!exp ? new OreDictStack(STEEL.plateWelded(), 8) : new OreDictStack(STEEL.heavyComp(), 3),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 4),
|
||||
@ -548,7 +549,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new OreDictStack(STEEL.pipe(), 24),
|
||||
new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4)
|
||||
}, 600);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] {
|
||||
new ComparableStack(ModBlocks.machine_lithium_battery, 3),
|
||||
new OreDictStack(ND.wireDense(), 32),
|
||||
@ -560,7 +561,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new OreDictStack(CU.plateCast(), 8),
|
||||
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)
|
||||
}, 600);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] {
|
||||
!exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp(), 1),
|
||||
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.coin_ufo, 1),
|
||||
}, 1200, ModItems.journal_bj);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.vault_door, 1), new AStack[] {
|
||||
new OreDictStack(STEEL.ingot(), 32),
|
||||
new OreDictStack(W.ingot(), 32),
|
||||
@ -602,7 +603,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new OreDictStack(DURA.bolt(), 16),
|
||||
new ComparableStack(ModItems.motor, 3),
|
||||
}, 200);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.blast_door, 1), new AStack[] {
|
||||
new OreDictStack(STEEL.ingot(), 8),
|
||||
new OreDictStack(W.ingot(), 8),
|
||||
@ -613,7 +614,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new OreDictStack(DURA.bolt(), 4),
|
||||
new ComparableStack(ModItems.motor, 1),
|
||||
}, 300);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.fire_door, 1), new AStack[] {
|
||||
new OreDictStack(STEEL.ingot(), 8),
|
||||
new OreDictStack(STEEL.plate(), 8),
|
||||
@ -728,7 +729,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModBlocks.machine_radar, 1),
|
||||
new ComparableStack(ModItems.crt_display, 1)
|
||||
}, 300);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL), new AStack[] {
|
||||
new OreDictStack(STEEL.plate(), 24),
|
||||
new OreDictStack(ANY_PLASTIC.ingot(), 12),
|
||||
@ -794,7 +795,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new OreDictStack(Fluids.PEROXIDE.getDict(1_000), 16),
|
||||
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
|
||||
}, 100);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_silex, 1), new AStack[] {
|
||||
new ComparableStack(ModBlocks.glass_quartz, 16),
|
||||
!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, 4, EnumCircuitType.BASIC)
|
||||
}, 400);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] {
|
||||
new ComparableStack(ModBlocks.concrete_asbestos, 4),
|
||||
!exp ? new OreDictStack(STEEL.plate528(), 4) : new OreDictStack(STEEL.plateCast(), 16),
|
||||
new OreDictStack(CU.ingot(), 4),
|
||||
new ComparableStack(ModItems.plate_polymer, 4)
|
||||
}, 100);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.multitool_hit, 1), new AStack[] {
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),
|
||||
new OreDictStack(STEEL.plate(), 4),
|
||||
@ -825,7 +826,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.motor, 4),
|
||||
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD)
|
||||
}, 100);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_assemfac, 1), new AStack[] {
|
||||
!exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8),
|
||||
@ -837,7 +838,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new OreDictStack(STEEL.pipe(), 8),
|
||||
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)
|
||||
}, 400);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_chemfac, 1), new AStack[] {
|
||||
!exp ? new OreDictStack(STEEL.ingot(), 48) : new OreDictStack(STEEL.heavyComp(), 2),
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8),
|
||||
@ -850,7 +851,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new OreDictStack(STEEL.pipe(), 8),
|
||||
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)
|
||||
}, 400);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.missile_shuttle, 1), new AStack[] {
|
||||
new ComparableStack(ModItems.missile_generic, 2),
|
||||
new ComparableStack(ModItems.missile_strong, 1),
|
||||
@ -862,7 +863,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new OreDictStack(KEY_ANYPANE, 6),
|
||||
new OreDictStack(STEEL.plate(), 4),
|
||||
}, 100);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_difurnace_rtg_off, 1), new AStack[] {
|
||||
new ComparableStack(ModBlocks.machine_difurnace_off, 1),
|
||||
new ComparableStack(ModItems.rtg_unit, 3),
|
||||
@ -982,7 +983,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModBlocks.capacitor_tantalium, 1),
|
||||
new ComparableStack(ModBlocks.glass_quartz, 16)
|
||||
}, 200);
|
||||
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.launch_pad_large, 1), new AStack[] {
|
||||
new OreDictStack(STEEL.plateCast(), 6),
|
||||
@ -997,7 +998,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new OreDictStack(ANY_HARDPLASTIC.ingot(), 16),
|
||||
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED)
|
||||
}, 400);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModItems.euphemium_capacitor, 1), new AStack[] {
|
||||
new OreDictStack(NB.ingot(), 4),
|
||||
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_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);
|
||||
|
||||
|
||||
} else {
|
||||
addTantalium(new ComparableStack(ModBlocks.machine_centrifuge, 1), 5);
|
||||
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_vacuum_distill, 1), 50);
|
||||
addTantalium(new ComparableStack(ModBlocks.machine_catalytic_reformer, 1), 50);
|
||||
|
||||
|
||||
addTantalium(new ComparableStack(ModBlocks.turret_chekhov, 1), 3);
|
||||
addTantalium(new ComparableStack(ModBlocks.turret_friendly, 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_fritz, 1), 3);
|
||||
addTantalium(new ComparableStack(ModBlocks.launch_pad, 1), 5);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] {
|
||||
new ComparableStack(ModBlocks.machine_lithium_battery, 3),
|
||||
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, 50, EnumCircuitType.CAPACITOR_BOARD)
|
||||
}, 600);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] {
|
||||
new OreDictStack(STEEL.ingot(), 16),
|
||||
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.crt_display, 8),
|
||||
}, 300);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.rbmk_crane_console, 1), new AStack[] {
|
||||
new OreDictStack(STEEL.ingot(), 16),
|
||||
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, 10, EnumCircuitType.CAPACITOR_BOARD),
|
||||
}, 300);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core, 1), new AStack[] {
|
||||
new ComparableStack(ModBlocks.machine_battery, 3),
|
||||
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, 15, EnumCircuitType.CAPACITOR_BOARD),
|
||||
}, 200);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core_large, 1), new AStack[] {
|
||||
new ComparableStack(ModBlocks.machine_battery, 5),
|
||||
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, 25, EnumCircuitType.CAPACITOR_BOARD),
|
||||
}, 200);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.struct_soyuz_core, 1), new AStack[] {
|
||||
new ComparableStack(ModBlocks.machine_lithium_battery, 5),
|
||||
new ComparableStack(ModBlocks.steel_scaffold, 24),
|
||||
@ -1166,7 +1167,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.circuit, 100, EnumCircuitType.CAPACITOR_BOARD),
|
||||
}, 200);
|
||||
}
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_fracking_tower), new AStack[] {
|
||||
new ComparableStack(ModBlocks.steel_scaffold, 40),
|
||||
new ComparableStack(ModBlocks.concrete_smooth, 64),
|
||||
@ -1177,7 +1178,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.tank_steel, 24),
|
||||
new ComparableStack(ModItems.pipes_steel, 2)
|
||||
}, 600);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_catalytic_cracker), new AStack[] {
|
||||
new ComparableStack(ModBlocks.steel_scaffold, 16),
|
||||
!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 ComparableStack(ModItems.catalyst_clay, 12),
|
||||
}, 300);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_liquefactor), new AStack[] {
|
||||
new OreDictStack(STEEL.ingot(), 8),
|
||||
new OreDictStack(CU.plate528(), 12),
|
||||
@ -1195,7 +1196,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.catalyst_clay, 4),
|
||||
new ComparableStack(ModItems.coil_tungsten, 8)
|
||||
}, 200);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_solidifier), new AStack[] {
|
||||
new OreDictStack(ANY_CONCRETE.any(), 8),
|
||||
new OreDictStack(AL.plate528(), 12),
|
||||
@ -1205,7 +1206,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.catalyst_clay, 4),
|
||||
new ComparableStack(ModItems.coil_copper, 4)
|
||||
}, 200);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.machine_radiolysis), new AStack[] {
|
||||
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),
|
||||
new OreDictStack(RUBBER.ingot(), 8),
|
||||
@ -1214,7 +1215,7 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.thermo_element, 8),
|
||||
new ComparableStack(ModItems.tank_steel, 3)
|
||||
}, 200);
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(ModBlocks.transition_seal, 1), new AStack[]{
|
||||
new ComparableStack(ModBlocks.cmb_brick_reinforced, 16),
|
||||
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.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);
|
||||
|
||||
|
||||
if(GeneralConfig.enableMekanismChanges && Loader.isModLoaded("Mekanism")) {
|
||||
|
||||
|
||||
Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock");
|
||||
|
||||
|
||||
if(mb != null) {
|
||||
|
||||
|
||||
makeRecipe(new ComparableStack(mb, 1, 4), new AStack[] {
|
||||
new OreDictStack(BIGMT.plateCast(), 16),
|
||||
new OreDictStack(CU.plateWelded(), 12),
|
||||
@ -1261,13 +1262,13 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
}, 1200);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for(NTMMaterial mat : Mats.orderedList) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// WarTec compatibility code
|
||||
try {
|
||||
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!");
|
||||
} catch(Exception e) { }
|
||||
}
|
||||
|
||||
|
||||
public static void makeRecipe(ComparableStack out, AStack[] in, int duration) {
|
||||
makeRecipe(out, in, duration, ModItems.template_folder);
|
||||
}
|
||||
|
||||
|
||||
public static void makeRecipe(ComparableStack out, AStack[] in, int duration, Item... folder) {
|
||||
|
||||
|
||||
if(out == null || Item.itemRegistry.getNameForObject(out.item) == null) {
|
||||
MainRegistry.logger.error("Canceling assembler registration, item was null!");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
AssemblerRecipe recipe = new AssemblerRecipe(in, duration, folder);
|
||||
recipes.put(out, recipe);
|
||||
recipeList.add(out);
|
||||
@ -1314,13 +1315,13 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
@Override
|
||||
public void readRecipe(JsonElement recipe) {
|
||||
JsonObject obj = recipe.getAsJsonObject();
|
||||
|
||||
|
||||
ItemStack output = this.readItemStack(obj.get("output").getAsJsonArray());
|
||||
AStack[] input = this.readAStackArray(obj.get("input").getAsJsonArray());
|
||||
int duration = obj.get("duration").getAsInt();
|
||||
|
||||
|
||||
if(output == null || output.getItem() == ModItems.nothing) return;
|
||||
|
||||
|
||||
if(obj.has("folders")) {
|
||||
JsonArray array = obj.get("folders").getAsJsonArray();
|
||||
List<Item> items = new ArrayList();
|
||||
@ -1337,46 +1338,46 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
@Override
|
||||
public void writeRecipe(Object recipe, JsonWriter writer) throws IOException {
|
||||
Entry<ComparableStack, AssemblerRecipe> entry = (Entry<ComparableStack, AssemblerRecipe>) recipe;
|
||||
|
||||
|
||||
writer.name("output");
|
||||
this.writeItemStack(entry.getKey().toStack(), writer);
|
||||
writer.name("input").beginArray();
|
||||
for(AStack stack : entry.getValue().ingredients) this.writeAStack(stack, writer);
|
||||
writer.endArray();
|
||||
writer.name("duration").value(entry.getValue().time);
|
||||
|
||||
|
||||
if(entry.getValue().folders.size() != 1 || !entry.getValue().folders.contains(ModItems.template_folder)) {
|
||||
writer.name("folders").beginArray();
|
||||
for(Item folder : entry.getValue().folders) writer.value(Item.itemRegistry.getNameForObject(folder));
|
||||
writer.endArray();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static ItemStack getOutputFromTempate(ItemStack stack) {
|
||||
|
||||
|
||||
if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) {
|
||||
|
||||
|
||||
ComparableStack comp = ItemAssemblyTemplate.readType(stack);
|
||||
|
||||
|
||||
//NEW
|
||||
if(comp != null) {
|
||||
return comp.toStack();
|
||||
}
|
||||
|
||||
|
||||
//LEGACY
|
||||
int i = stack.getItemDamage();
|
||||
if(i >= 0 && i < recipeList.size()) {
|
||||
return recipeList.get(i).toStack();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static List<AStack> getRecipeFromTempate(ItemStack stack) {
|
||||
|
||||
|
||||
if(stack != null && stack.getItem() instanceof ItemAssemblyTemplate) {
|
||||
|
||||
|
||||
//NEW
|
||||
ComparableStack compStack = ItemAssemblyTemplate.readType(stack);
|
||||
if(compStack != null) {
|
||||
@ -1385,12 +1386,12 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
AStack[] ret = recipe.ingredients;
|
||||
return ret == null ? null : Arrays.asList(ret);
|
||||
}
|
||||
|
||||
|
||||
//LEGACY
|
||||
int i = stack.getItemDamage();
|
||||
if(i >= 0 && i < recipeList.size()) {
|
||||
ItemStack out = recipeList.get(i).toStack();
|
||||
|
||||
|
||||
if(out != null) {
|
||||
ComparableStack comp = new ComparableStack(out);
|
||||
AssemblerRecipe recipe = recipes.get(comp);
|
||||
@ -1400,55 +1401,55 @@ public class AssemblerRecipes extends SerializableRecipe {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static void addTantalium(ComparableStack out, int amount) {
|
||||
|
||||
|
||||
AssemblerRecipe recipe = recipes.get(out);
|
||||
|
||||
|
||||
if(recipe != null) {
|
||||
|
||||
|
||||
AStack[] news = new AStack[recipe.ingredients.length + 1];
|
||||
|
||||
|
||||
for(int i = 0; i < recipe.ingredients.length; i++)
|
||||
news[i] = recipe.ingredients[i];
|
||||
|
||||
|
||||
news[news.length - 1] = new ComparableStack(ModItems.circuit, amount, EnumCircuitType.CAPACITOR_BOARD);
|
||||
recipe.ingredients = news;
|
||||
}
|
||||
}
|
||||
|
||||
public static Map<ItemStack, List<Object>> getRecipes() {
|
||||
|
||||
|
||||
Map<ItemStack, List<Object>> recipes = new HashMap();
|
||||
|
||||
|
||||
for(Entry<ComparableStack, AssemblerRecipe> entry : AssemblerRecipes.recipes.entrySet()) {
|
||||
|
||||
|
||||
List<Object> value = new ArrayList();
|
||||
AssemblerRecipe recipe = entry.getValue();
|
||||
|
||||
|
||||
for(AStack o : recipe.ingredients) {
|
||||
value.add(o.extractForNEI());
|
||||
}
|
||||
|
||||
|
||||
recipes.put(entry.getKey().toStack(), value);
|
||||
}
|
||||
|
||||
|
||||
return recipes;
|
||||
}
|
||||
|
||||
|
||||
public static class AssemblerRecipe {
|
||||
|
||||
|
||||
public AStack[] ingredients;
|
||||
public int time;
|
||||
public HashSet<Item> folders;
|
||||
|
||||
|
||||
public AssemblerRecipe(AStack[] ingredients, int time) {
|
||||
this(ingredients, time, ModItems.template_folder);
|
||||
}
|
||||
|
||||
|
||||
public AssemblerRecipe(AStack[] ingredients, int time, Item... folder) {
|
||||
this.ingredients = ingredients;
|
||||
this.time = time;
|
||||
|
||||
@ -390,6 +390,10 @@ public class ChemplantRecipes extends SerializableRecipe {
|
||||
new ItemStack(ModItems.niter, 3))
|
||||
.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() {
|
||||
|
||||
@ -40,7 +40,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
|
||||
public static List<AnvilSmithingRecipe> smithingRecipes = new ArrayList();
|
||||
public static List<AnvilConstructionRecipe> constructionRecipes = new ArrayList();
|
||||
|
||||
|
||||
public static void register() {
|
||||
registerSmithing();
|
||||
}
|
||||
@ -49,7 +49,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
@Override public Object getRecipeObject() { return constructionRecipes; }
|
||||
@Override public void deleteRecipes() { constructionRecipes.clear(); }
|
||||
@Override public void registerDefaults() { registerConstruction(); }
|
||||
|
||||
|
||||
/*
|
||||
* ////// // // // ////// // // // // // //////
|
||||
* // //// //// // // // // // //// // //
|
||||
@ -58,9 +58,9 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
* ////// // // // // // // // // // //////
|
||||
*/
|
||||
public static void registerSmithing() {
|
||||
|
||||
|
||||
Block[] anvils = new Block[]{ModBlocks.anvil_iron, ModBlocks.anvil_lead};
|
||||
|
||||
|
||||
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_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_osmiridium, 1), new ComparableStack(anvil), new OreDictStack(OSMIRIDIUM.ingot(), 10)));
|
||||
}
|
||||
|
||||
|
||||
for(int i = 0; i < 9; i++)
|
||||
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)));
|
||||
|
||||
|
||||
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)));
|
||||
|
||||
|
||||
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.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(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(1, new OreDictStack(U.billet()), new OreDictStack("billet")));
|
||||
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(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 AnvilSmithingCyanideRecipe());
|
||||
smithingRecipes.add(new AnvilSmithingRenameRecipe());
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* ////// ////// // // ////// ////// //// // // ////// ////// // ////// // //
|
||||
* // // // //// // // // // // // // // // // // // //// //
|
||||
@ -139,7 +139,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
* ////// ////// // // ////// // // // ////// ////// // // ////// // //
|
||||
*/
|
||||
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(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));
|
||||
@ -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(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));
|
||||
|
||||
|
||||
registerConstructionRecipes();
|
||||
registerConstructionAmmo();
|
||||
registerConstructionUpgrades();
|
||||
registerConstructionRecycling();
|
||||
}
|
||||
|
||||
|
||||
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));
|
||||
@ -191,13 +191,13 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new OreDictStack(MaterialShapes.PLATE.name() + mat.names[0], 4),
|
||||
new AnvilOutput(new ItemStack(ModItems.shell, 1, mat.id))).setTier(1));
|
||||
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]);
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new OreDictStack(key, 3),
|
||||
new AnvilOutput(new ItemStack(ModItems.pipe, 1, mat.id))).setTier(1));
|
||||
}
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModItems.coil_copper, 2),
|
||||
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.thermo_element), 2);
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new ComparableStack(Blocks.stonebrick, 4),
|
||||
@ -225,7 +225,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new OreDictStack(CU.plate(), 4)
|
||||
},
|
||||
new AnvilOutput(new ItemStack(ModBlocks.machine_difurnace_off))).setTier(1));
|
||||
|
||||
|
||||
int ukModifier = 1;
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
@ -405,7 +405,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.circuit, 2, EnumCircuitType.VACUUM_TUBE.ordinal()),
|
||||
new ComparableStack(ModItems.sawblade)
|
||||
}, new AnvilOutput(new ItemStack(ModBlocks.machine_autosaw))).setTier(2));
|
||||
|
||||
|
||||
pullFromAssembler(new ComparableStack(ModBlocks.machine_diesel), 2);
|
||||
|
||||
/*constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
@ -432,14 +432,14 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModBlocks.machine_condenser, 16),
|
||||
new OreDictStack(STEEL.pipe(), 8),
|
||||
}, new AnvilOutput(new ItemStack(ModBlocks.machine_tower_large))).setTier(4));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new ComparableStack(Items.bone, 16),
|
||||
new ComparableStack(Items.leather, 4),
|
||||
new ComparableStack(Items.feather, 24)
|
||||
}, new AnvilOutput(new ItemStack(ModItems.wings_limp))).setTier(2));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new ComparableStack(ModItems.sulfur, 12),
|
||||
@ -448,7 +448,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC.ordinal())
|
||||
},
|
||||
new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_extractor))).setTier(2));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new ComparableStack(ModItems.deuterium_filter, 2),
|
||||
@ -459,7 +459,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new OreDictStack(Fluids.SOURGAS.getDict(1_000), 8),
|
||||
},
|
||||
new AnvilOutput(new ItemStack(ModBlocks.machine_deuterium_tower))).setTier(4));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new OreDictStack(ANY_CONCRETE.any(), 2),
|
||||
@ -468,7 +468,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.coil_copper, 4)
|
||||
},
|
||||
new AnvilOutput(new ItemStack(ModBlocks.red_pylon_large))).setTier(2));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new OreDictStack(ANY_CONCRETE.any(), 8),
|
||||
@ -477,7 +477,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.coil_copper, 8)
|
||||
},
|
||||
new AnvilOutput(new ItemStack(ModBlocks.substation, 2))).setTier(2));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new OreDictStack(STEEL.plate(), 4),
|
||||
@ -485,7 +485,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModBlocks.steel_grate, 2)
|
||||
},
|
||||
new AnvilOutput(new ItemStack(ModBlocks.chimney_brick))).setTier(2));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new OreDictStack(STEEL.plate(), 16),
|
||||
@ -494,7 +494,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new ComparableStack(ModItems.filter_coal, 4)
|
||||
},
|
||||
new AnvilOutput(new ItemStack(ModBlocks.chimney_industrial))).setTier(3));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new ComparableStack(ModItems.tank_steel, 1),
|
||||
@ -507,14 +507,14 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new OreDictStack(PB.plate528(), 2),
|
||||
new ComparableStack(ModItems.nuclear_waste_vitrified, 10)
|
||||
}, new AnvilOutput(new ItemStack(ModBlocks.vitrified_barrel))).setTier(3));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new AStack[] {
|
||||
new ComparableStack(ModItems.man_core, 1),
|
||||
new OreDictStack(BE.ingot(), 4),
|
||||
new ComparableStack(ModItems.screwdriver, 1)
|
||||
}, new AnvilOutput(new ItemStack(ModItems.demon_core_open))).setTier(3));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
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));
|
||||
@ -546,7 +546,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
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 AnvilOutput(new ItemStack(ModItems.plate_armor_dnt))).setTier(7));
|
||||
|
||||
|
||||
pullFromAssembler(new ComparableStack(ModItems.plate_mixed, 4), 3);
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
@ -556,7 +556,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new OreDictStack(AL.plateWelded(), 2),
|
||||
new OreDictStack(PU239.billet(), 3)
|
||||
}, 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_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));
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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));
|
||||
@ -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, 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, 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));
|
||||
@ -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, 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));
|
||||
|
||||
|
||||
pullFromAssembler(new ComparableStack(ModItems.pellet_buckshot), 1);
|
||||
}
|
||||
|
||||
|
||||
public static void registerConstructionUpgrades() {
|
||||
pullFromAssembler(new ComparableStack(ModItems.upgrade_template), 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_screm), 4);
|
||||
}
|
||||
|
||||
|
||||
public static void registerConstructionRecycling() {
|
||||
|
||||
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_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_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_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));
|
||||
@ -659,7 +660,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new AnvilOutput(new ItemStack(ModItems.ingot_copper, 6))
|
||||
}
|
||||
).setTier(2));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.heater_oven),
|
||||
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.5F),
|
||||
new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ANALOG.ordinal()), 0.1F)
|
||||
|
||||
|
||||
}
|
||||
).setTier(2));
|
||||
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_GOLD.id), 0.25F),
|
||||
new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.VACUUM_TUBE.ordinal()), 0.25F)
|
||||
|
||||
|
||||
}
|
||||
).setTier(2));
|
||||
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_advanced, 1), 0.1F),
|
||||
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.01F)
|
||||
|
||||
|
||||
}
|
||||
).setTier(2));
|
||||
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_sc_uranium, 1), 0.1F),
|
||||
new AnvilOutput(new ItemStack(ModItems.fusion_core, 1), 0.05F)
|
||||
|
||||
|
||||
}
|
||||
).setTier(2));
|
||||
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.gem_alexandrite, 1), 0.25F),
|
||||
new AnvilOutput(new ItemStack(ModItems.flame_pony, 1), 0.01F)
|
||||
|
||||
|
||||
}
|
||||
).setTier(2));
|
||||
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_polymer, 2), 0.25F),
|
||||
new AnvilOutput(new ItemStack(ModItems.scrap, 1))
|
||||
|
||||
|
||||
}
|
||||
).setTier(1));
|
||||
|
||||
@ -870,7 +871,7 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
new AnvilOutput(new ItemStack(ModItems.lithium, 1)),
|
||||
new AnvilOutput(new ItemStack(ModItems.cell_empty, 1))
|
||||
}).setTier(2));
|
||||
|
||||
|
||||
//RBMK
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
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.crate_steel, 2))
|
||||
}).setTier(4));
|
||||
|
||||
|
||||
if(!GeneralConfig.enable528) {
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.rbmk_rod), new AnvilOutput[] {
|
||||
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.ingot_steel, 4))
|
||||
}).setTier(3));
|
||||
|
||||
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(
|
||||
new ComparableStack(ModBlocks.yellow_barrel), new AnvilOutput[] {
|
||||
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)
|
||||
}).setTier(1));
|
||||
}
|
||||
|
||||
|
||||
public static void pullFromAssembler(ComparableStack result, int tier) {
|
||||
|
||||
|
||||
AssemblerRecipe recipe = AssemblerRecipes.recipes.get(result);
|
||||
|
||||
|
||||
if(recipe != null) {
|
||||
constructionRecipes.add(new AnvilConstructionRecipe(recipe.ingredients, new AnvilOutput(result.toStack())).setTier(tier));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static List<AnvilSmithingRecipe> getSmithing() {
|
||||
return smithingRecipes;
|
||||
}
|
||||
|
||||
|
||||
public static List<AnvilConstructionRecipe> getConstruction() {
|
||||
return constructionRecipes;
|
||||
}
|
||||
|
||||
|
||||
public static class AnvilConstructionRecipe {
|
||||
public List<AStack> input = new ArrayList();
|
||||
public List<AnvilOutput> output = new ArrayList();
|
||||
public int tierLower = 0;
|
||||
public int tierUpper = -1;
|
||||
OverlayType overlay = OverlayType.NONE;
|
||||
|
||||
|
||||
public AnvilConstructionRecipe(AStack input, AnvilOutput output) {
|
||||
this.input.add(input);
|
||||
this.output.add(output);
|
||||
this.setOverlay(OverlayType.SMITHING); //preferred overlay for 1:1 conversions is smithing
|
||||
}
|
||||
|
||||
|
||||
public AnvilConstructionRecipe(AStack[] input, AnvilOutput output) {
|
||||
for(AStack stack : input) this.input.add(stack);
|
||||
this.output.add(output);
|
||||
this.setOverlay(OverlayType.CONSTRUCTION); //preferred overlay for many:1 conversions is construction
|
||||
}
|
||||
|
||||
|
||||
public AnvilConstructionRecipe(AStack input, AnvilOutput[] output) {
|
||||
this.input.add(input);
|
||||
for(AnvilOutput out : output) this.output.add(out);
|
||||
this.setOverlay(OverlayType.RECYCLING); //preferred overlay for 1:many conversions is recycling
|
||||
}
|
||||
|
||||
|
||||
public AnvilConstructionRecipe(AStack[] input, AnvilOutput[] output) {
|
||||
for(AStack stack : input) this.input.add(stack);
|
||||
for(AnvilOutput out : output) this.output.add(out);
|
||||
this.setOverlay(OverlayType.NONE); //no preferred overlay for many:many conversions
|
||||
}
|
||||
|
||||
|
||||
public AnvilConstructionRecipe(AStack[] input, Pair<ItemStack, Float>[] output) {
|
||||
for(AStack stack : input) this.input.add(stack);
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
public AnvilConstructionRecipe setTier(int tier) {
|
||||
this.tierLower = tier;
|
||||
if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMUnlockAnvil) this.tierLower = 1;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public AnvilConstructionRecipe setTierRange(int lower, int upper) {
|
||||
this.tierLower = lower;
|
||||
this.tierUpper = upper;
|
||||
if(GeneralConfig.enableLBSM && GeneralConfig.enableLBSMUnlockAnvil) this.tierLower = this.tierUpper = 1;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public boolean isTierValid(int tier) {
|
||||
|
||||
|
||||
if(this.tierUpper == -1)
|
||||
return tier >= this.tierLower;
|
||||
|
||||
|
||||
return tier >= this.tierLower && tier <= this.tierUpper;
|
||||
}
|
||||
|
||||
|
||||
public AnvilConstructionRecipe setOverlay(OverlayType overlay) {
|
||||
this.overlay = overlay;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public OverlayType getOverlay() {
|
||||
return this.overlay;
|
||||
}
|
||||
|
||||
|
||||
public ItemStack getDisplay() {
|
||||
switch(this.overlay) {
|
||||
case NONE: return this.output.get(0).stack.copy();
|
||||
@ -1124,21 +1125,21 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static class AnvilOutput {
|
||||
public ItemStack stack;
|
||||
public float chance;
|
||||
|
||||
|
||||
public AnvilOutput(ItemStack stack) {
|
||||
this(stack, 1F);
|
||||
}
|
||||
|
||||
|
||||
public AnvilOutput(ItemStack stack, float chance) {
|
||||
this.stack = stack;
|
||||
this.chance = chance;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static enum OverlayType {
|
||||
NONE,
|
||||
CONSTRUCTION,
|
||||
@ -1149,38 +1150,38 @@ public class AnvilRecipes extends SerializableRecipe {
|
||||
@Override
|
||||
public void readRecipe(JsonElement recipe) {
|
||||
JsonObject obj = (JsonObject) recipe;
|
||||
|
||||
|
||||
AStack[] inputs = this.readAStackArray(obj.get("inputs").getAsJsonArray());
|
||||
Pair<ItemStack, Float>[] outputs = this.readItemStackArrayChance(obj.get("outputs").getAsJsonArray());
|
||||
|
||||
int tierLower = obj.get("tierLower").getAsInt();
|
||||
int tierUpper = obj.has("tierUpper") ? obj.get("tierUpper").getAsInt() : -1;
|
||||
|
||||
|
||||
OverlayType overlay = OverlayType.NONE;
|
||||
if(obj.has("overlay")) {
|
||||
String overlayName = obj.get("overlay").getAsString();
|
||||
overlay = OverlayType.valueOf(overlayName);
|
||||
if(overlay == null) overlay = OverlayType.NONE;
|
||||
}
|
||||
|
||||
|
||||
this.constructionRecipes.add(new AnvilConstructionRecipe(inputs, outputs).setTierRange(tierLower, tierUpper).setOverlay(overlay));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeRecipe(Object recipe, JsonWriter writer) throws IOException {
|
||||
AnvilConstructionRecipe rec = (AnvilConstructionRecipe) recipe;
|
||||
|
||||
|
||||
writer.name("inputs").beginArray();
|
||||
for(AStack stack : rec.input) this.writeAStack(stack, writer);
|
||||
writer.endArray();
|
||||
|
||||
|
||||
writer.name("outputs").beginArray();
|
||||
for(AnvilOutput stack : rec.output) this.writeItemStackChance(new Pair(stack.stack, stack.chance), writer);
|
||||
writer.endArray();
|
||||
|
||||
writer.name("tierLower").value(rec.tierLower);
|
||||
writer.name("tierUpper").value(rec.tierUpper);
|
||||
|
||||
|
||||
writer.name("overlay").value(rec.overlay.name());
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,6 +8,8 @@ import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@ -16,74 +18,172 @@ public class ParticleFoam extends EntityFX {
|
||||
private int age;
|
||||
public int maxAge;
|
||||
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_) {
|
||||
super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_);
|
||||
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 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() {
|
||||
this.prevPosX = this.posX;
|
||||
this.prevPosY = this.posY;
|
||||
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;
|
||||
|
||||
if (this.age == this.maxAge) {
|
||||
this.setDead();
|
||||
}
|
||||
|
||||
if (this.age < maxAge / 4) {
|
||||
this.motionY = 3;
|
||||
float phaseRatio = (float) age / (float) maxAge;
|
||||
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 {
|
||||
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;
|
||||
this.motionZ += rand.nextGaussian() * 0.1;
|
||||
motionX += (rand.nextFloat() - 0.5F) * jitter;
|
||||
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;
|
||||
motionY *= 0.925;
|
||||
motionZ *= 0.925;
|
||||
this.moveEntity(this.motionX, motionY, this.motionZ);
|
||||
|
||||
this.particleAge++;
|
||||
if(this.onGround || this.isInWeb) this.setDead();
|
||||
// Kill particle if it hits ground
|
||||
if (this.onGround || this.isInWeb) {
|
||||
this.setDead();
|
||||
}
|
||||
}
|
||||
|
||||
public int getFXLayer() {
|
||||
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_) {
|
||||
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);
|
||||
p_70539_1_.setNormal(0.0F, 1.0F, 0.0F);
|
||||
private void renderFoamBubbles(Tessellator tessellator, float p_70539_2_, float p_70539_3_, float p_70539_4_,
|
||||
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;
|
||||
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);
|
||||
Random urandom = new Random(this.getEntityId() + (long)(x * 100) + (long)(y * 10) + (long)z);
|
||||
|
||||
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());
|
||||
int bubbleCount = explosionPhase == 0 ? 8 : (explosionPhase == 1 ? 6 : 4);
|
||||
|
||||
for (int i = 0; i < bubbleCount; i++) {
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -55,8 +55,8 @@ public class RenderLandmine extends TileEntitySpecialRenderer {
|
||||
ResourceManager.mine_fat.renderAll();
|
||||
}
|
||||
if(block == ModBlocks.mine_naval) {
|
||||
GL11.glScaled(0.5D, 0.5D, 0.5D);
|
||||
GL11.glTranslated(0, 1, 0);
|
||||
GL11.glScaled(1D, 1D, 1D);
|
||||
GL11.glTranslated(0,0.5,0);
|
||||
bindTexture(ResourceManager.mine_naval_tex);
|
||||
ResourceManager.mine_naval.renderAll();
|
||||
}
|
||||
|
||||
@ -794,6 +794,7 @@ public class NBTStructure {
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Each jigsaw block in a structure will instance one of these
|
||||
private static class JigsawConnection {
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 923 B After Width: | Height: | Size: 613 B |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 922 B |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 874 B |