it's ZIRNOX time!

This commit is contained in:
Boblet 2021-11-10 10:48:21 +01:00
parent 40f57dbcd5
commit cbd99f6792
87 changed files with 9546 additions and 328 deletions

View File

@ -431,6 +431,7 @@ public class ModBlocks {
public static Block waste_trinitite; public static Block waste_trinitite;
public static Block waste_trinitite_red; public static Block waste_trinitite_red;
public static Block waste_log; public static Block waste_log;
public static Block waste_leaves;
public static Block waste_planks; public static Block waste_planks;
public static Block frozen_dirt; public static Block frozen_dirt;
public static Block frozen_grass; public static Block frozen_grass;
@ -968,6 +969,9 @@ public class ModBlocks {
public static Block machine_reactor_small; public static Block machine_reactor_small;
public static final int guiID_reactor_small = 65; public static final int guiID_reactor_small = 65;
public static Block reactor_zirnox;
public static final int guiID_reactor_zirnox = 124;
public static Block zirnox_destroyed;
public static Block machine_controller; public static Block machine_controller;
public static final int guiID_machine_controller = 78; public static final int guiID_machine_controller = 78;
@ -1089,6 +1093,7 @@ public class ModBlocks {
public static Block gas_radon; public static Block gas_radon;
public static Block gas_radon_dense; public static Block gas_radon_dense;
public static Block gas_radon_tomb; public static Block gas_radon_tomb;
public static Block gas_meltdown;
public static Block gas_monoxide; public static Block gas_monoxide;
public static Block gas_asbestos; public static Block gas_asbestos;
public static Block gas_coal; public static Block gas_coal;
@ -1606,6 +1611,7 @@ public class ModBlocks {
waste_trinitite = new BlockOre(Material.sand).setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite"); waste_trinitite = new BlockOre(Material.sand).setBlockName("waste_trinitite").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite");
waste_trinitite_red = new BlockOre(Material.sand).setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red"); waste_trinitite_red = new BlockOre(Material.sand).setBlockName("waste_trinitite_red").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_trinitite_red");
waste_log = new WasteLog(Material.wood).setBlockName("waste_log").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(2.5F); waste_log = new WasteLog(Material.wood).setBlockName("waste_log").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(2.5F);
waste_leaves = new WasteLeaves(Material.leaves).setBlockName("waste_leaves").setStepSound(Block.soundTypeGrass).setCreativeTab(MainRegistry.blockTab).setHardness(0.1F).setBlockTextureName(RefStrings.MODID + ":waste_leaves");
waste_planks = new BlockOre(Material.wood).setBlockName("waste_planks").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_planks"); waste_planks = new BlockOre(Material.wood).setBlockName("waste_planks").setStepSound(Block.soundTypeWood).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":waste_planks");
frozen_dirt = new BlockOre(Material.ground).setBlockName("frozen_dirt").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_dirt"); frozen_dirt = new BlockOre(Material.ground).setBlockName("frozen_dirt").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F).setBlockTextureName(RefStrings.MODID + ":frozen_dirt");
frozen_grass = new WasteEarth(Material.ground, false).setBlockName("frozen_grass").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F); frozen_grass = new WasteEarth(Material.ground, false).setBlockName("frozen_grass").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setResistance(2.5F);
@ -2026,6 +2032,8 @@ public class ModBlocks {
machine_epress = new MachineEPress(Material.iron).setBlockName("machine_epress").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_epress"); machine_epress = new MachineEPress(Material.iron).setBlockName("machine_epress").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_epress");
machine_selenium = new MachineSeleniumEngine(Material.iron).setBlockName("machine_selenium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_selenium"); machine_selenium = new MachineSeleniumEngine(Material.iron).setBlockName("machine_selenium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_selenium");
machine_reactor_small = new MachineReactorSmall(Material.iron).setBlockName("machine_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor_small"); machine_reactor_small = new MachineReactorSmall(Material.iron).setBlockName("machine_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_reactor_small");
reactor_zirnox = new ReactorZirnox(Material.iron).setBlockName("machine_zirnox").setHardness(100.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
zirnox_destroyed = new ZirnoxDestroyed(Material.iron).setBlockName("zirnox_destroyed").setHardness(100.0F).setResistance(800.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_controller = new MachineReactorControl(Material.iron).setBlockName("machine_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_controller = new MachineReactorControl(Material.iron).setBlockName("machine_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_boiler_off = new MachineBoiler(false).setBlockName("machine_boiler_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_boiler_off"); machine_boiler_off = new MachineBoiler(false).setBlockName("machine_boiler_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_boiler_off");
@ -2090,6 +2098,7 @@ public class ModBlocks {
gas_radon = new BlockGasRadon().setBlockName("gas_radon").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon"); gas_radon = new BlockGasRadon().setBlockName("gas_radon").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon");
gas_radon_dense = new BlockGasRadonDense().setBlockName("gas_radon_dense").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon_dense"); gas_radon_dense = new BlockGasRadonDense().setBlockName("gas_radon_dense").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon_dense");
gas_radon_tomb = new BlockGasRadonTomb().setBlockName("gas_radon_tomb").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon_tomb"); gas_radon_tomb = new BlockGasRadonTomb().setBlockName("gas_radon_tomb").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_radon_tomb");
gas_meltdown = new BlockGasMeltdown().setBlockName("gas_meltdown").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_meltdown");
gas_monoxide = new BlockGasMonoxide().setBlockName("gas_monoxide").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_monoxide"); gas_monoxide = new BlockGasMonoxide().setBlockName("gas_monoxide").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_monoxide");
gas_asbestos = new BlockGasAsbestos().setBlockName("gas_asbestos").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_asbestos"); gas_asbestos = new BlockGasAsbestos().setBlockName("gas_asbestos").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_asbestos");
gas_coal = new BlockGasCoal().setBlockName("gas_coal").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_coal"); gas_coal = new BlockGasCoal().setBlockName("gas_coal").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_coal");
@ -2589,6 +2598,7 @@ public class ModBlocks {
GameRegistry.registerBlock(waste_trinitite, waste_trinitite.getUnlocalizedName()); GameRegistry.registerBlock(waste_trinitite, waste_trinitite.getUnlocalizedName());
GameRegistry.registerBlock(waste_trinitite_red, waste_trinitite_red.getUnlocalizedName()); GameRegistry.registerBlock(waste_trinitite_red, waste_trinitite_red.getUnlocalizedName());
GameRegistry.registerBlock(waste_log, waste_log.getUnlocalizedName()); GameRegistry.registerBlock(waste_log, waste_log.getUnlocalizedName());
GameRegistry.registerBlock(waste_leaves, waste_leaves.getUnlocalizedName());
GameRegistry.registerBlock(waste_planks, waste_planks.getUnlocalizedName()); GameRegistry.registerBlock(waste_planks, waste_planks.getUnlocalizedName());
GameRegistry.registerBlock(frozen_grass, frozen_grass.getUnlocalizedName()); GameRegistry.registerBlock(frozen_grass, frozen_grass.getUnlocalizedName());
GameRegistry.registerBlock(frozen_dirt, frozen_dirt.getUnlocalizedName()); GameRegistry.registerBlock(frozen_dirt, frozen_dirt.getUnlocalizedName());
@ -2787,6 +2797,8 @@ public class ModBlocks {
GameRegistry.registerBlock(machine_generator, machine_generator.getUnlocalizedName()); GameRegistry.registerBlock(machine_generator, machine_generator.getUnlocalizedName());
GameRegistry.registerBlock(machine_controller, machine_controller.getUnlocalizedName()); GameRegistry.registerBlock(machine_controller, machine_controller.getUnlocalizedName());
GameRegistry.registerBlock(machine_reactor_small, machine_reactor_small.getUnlocalizedName()); GameRegistry.registerBlock(machine_reactor_small, machine_reactor_small.getUnlocalizedName());
GameRegistry.registerBlock(reactor_zirnox, reactor_zirnox.getUnlocalizedName());
GameRegistry.registerBlock(zirnox_destroyed, zirnox_destroyed.getUnlocalizedName());
GameRegistry.registerBlock(machine_industrial_generator, machine_industrial_generator.getUnlocalizedName()); GameRegistry.registerBlock(machine_industrial_generator, machine_industrial_generator.getUnlocalizedName());
GameRegistry.registerBlock(machine_radgen, machine_radgen.getUnlocalizedName()); GameRegistry.registerBlock(machine_radgen, machine_radgen.getUnlocalizedName());
GameRegistry.registerBlock(machine_cyclotron, machine_cyclotron.getUnlocalizedName()); GameRegistry.registerBlock(machine_cyclotron, machine_cyclotron.getUnlocalizedName());
@ -3146,6 +3158,7 @@ public class ModBlocks {
GameRegistry.registerBlock(gas_radon, gas_radon.getUnlocalizedName()); GameRegistry.registerBlock(gas_radon, gas_radon.getUnlocalizedName());
GameRegistry.registerBlock(gas_radon_dense, gas_radon_dense.getUnlocalizedName()); GameRegistry.registerBlock(gas_radon_dense, gas_radon_dense.getUnlocalizedName());
GameRegistry.registerBlock(gas_radon_tomb, gas_radon_tomb.getUnlocalizedName()); GameRegistry.registerBlock(gas_radon_tomb, gas_radon_tomb.getUnlocalizedName());
GameRegistry.registerBlock(gas_meltdown, gas_meltdown.getUnlocalizedName());
GameRegistry.registerBlock(gas_monoxide, gas_monoxide.getUnlocalizedName()); GameRegistry.registerBlock(gas_monoxide, gas_monoxide.getUnlocalizedName());
GameRegistry.registerBlock(gas_asbestos, gas_asbestos.getUnlocalizedName()); GameRegistry.registerBlock(gas_asbestos, gas_asbestos.getUnlocalizedName());
GameRegistry.registerBlock(gas_coal, gas_coal.getUnlocalizedName()); GameRegistry.registerBlock(gas_coal, gas_coal.getUnlocalizedName());

View File

@ -0,0 +1,93 @@
package com.hbm.blocks.gas;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.extprop.HbmLivingProps;
import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.potion.HbmPotion;
import com.hbm.util.ArmorRegistry;
import com.hbm.util.ArmorUtil;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ArmorRegistry.HazardClass;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class BlockGasMeltdown extends BlockGasBase {
public BlockGasMeltdown() {
super(0.1F, 0.4F, 0.1F);
}
@Override
public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) {
if(!(entity instanceof EntityLivingBase))
return;
EntityLivingBase entityLiving = (EntityLivingBase) entity;
ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 0.5F);
entityLiving.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 60 * 20, 2));
if(ArmorRegistry.hasAllProtection(entityLiving, 3, HazardClass.PARTICLE_FINE)) {
ArmorUtil.damageGasMaskFilter(entityLiving, 1);
} else {
HbmLivingProps.incrementFibrosis(entityLiving, 5);
}
}
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
super.randomDisplayTick(world, x, y, z, rand);
world.spawnParticle("townaura", x + rand.nextFloat(), y + rand.nextFloat(), z + rand.nextFloat(), 0.0D, 0.0D, 0.0D);
}
@Override
public ForgeDirection getFirstDirection(World world, int x, int y, int z) {
if(world.rand.nextInt(2) == 0)
return ForgeDirection.UP;
return ForgeDirection.DOWN;
}
@Override
public ForgeDirection getSecondDirection(World world, int x, int y, int z) {
return this.randomHorizontal(world);
}
@Override
public void updateTick(World world, int x, int y, int z, Random rand) {
if(!world.isRemote) {
ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6));
if(rand.nextInt(7) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) {
world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_radon_dense);
}
ChunkRadiationManager.proxy.incrementRad(world, x, y, z, 5);
if(rand.nextInt(450) == 0) {
world.setBlockToAir(x, y, z);
return;
}
}
super.updateTick(world, x, y, z, rand);
}
}

View File

@ -0,0 +1,68 @@
package com.hbm.blocks.generic;
import java.util.Random;
import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class WasteLeaves extends Block {
public WasteLeaves(Material mat) {
super(mat);
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":waste_leaves");
}
@Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
return null;
}
@Override
public void updateTick(World world, int x, int y, int z, Random rand) {
if(rand.nextInt(300) == 0) {
world.setBlockToAir(x, y, z);
}
super.updateTick(world, x, y, z, rand);
}
/*@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
super.randomDisplayTick(world, x, y, z, rand);
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "deadleaf");
MainRegistry.proxy.effectNT(data);
}*/
public boolean renderAsNormalBlock() {
return false;
}
@Override
public boolean isOpaqueCube() {
return false;
}
protected boolean canSilkHarvest() {
return false;
}
}

View File

@ -0,0 +1,75 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.IMultiblock;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityReactorZirnox;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class ReactorZirnox extends BlockDummyable implements IMultiblock {
public ReactorZirnox(Material mat) {
super(mat);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12)
return new TileEntityReactorZirnox();
if(meta >= 6)
return new TileEntityProxyCombo(false, true, true);
return null;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote)
{
return true;
} else if(!player.isSneaking())
{
int[] pos = this.findCore(world, x, y, z);
if(pos == null)
return false;
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_reactor_zirnox, world, pos[0], pos[1], pos[2]);
return true;
} else {
return false;
}
}
@Override
public int[] getDimensions() {
return new int[] {4, 0, 2, 2, 2, 2,};
}
@Override
public int getOffset() {
return 2;
}
protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
this.makeExtra(world, x + dir.offsetX * o + rot.offsetX * 2, y + 1, z + dir.offsetZ * o + rot.offsetZ * 2);
this.makeExtra(world, x + dir.offsetX * o + rot.offsetX * 2, y + 3, z + dir.offsetZ * o + rot.offsetZ * 2);
this.makeExtra(world, x + dir.offsetX * o + rot.offsetX * -2, y + 1, z + dir.offsetZ * o + rot.offsetZ * -2);
this.makeExtra(world, x + dir.offsetX * o + rot.offsetX * -2, y + 3, z + dir.offsetZ * o + rot.offsetZ * -2);
}
}

View File

@ -0,0 +1,115 @@
package com.hbm.blocks.machine;
import java.util.ArrayList;
import java.util.Random;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.IMultiblock;
import com.hbm.items.ModItems;
import com.hbm.main.MainRegistry;
import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityZirnoxDestroyed;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.material.Material;
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;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class ZirnoxDestroyed extends BlockDummyable implements IMultiblock {
public ZirnoxDestroyed(Material mat) {
super(mat);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12)
return new TileEntityZirnoxDestroyed();
if(meta >= 6)
return new TileEntityProxyCombo(false, true, true);
return null;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
return false;
}
@Override
public void updateTick(World world, int x, int y, int z, Random rand) {
ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6));
if(rand.nextInt(4) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY + 1, z + dir.offsetZ) == Blocks.air) {
world.setBlock(x + dir.offsetX, y + dir.offsetY + 1, z + dir.offsetZ, ModBlocks.gas_meltdown);
}
super.updateTick(world, x, y, z, rand);
}
@Override
public int tickRate(World world) {
return 100 + world.rand.nextInt(20);
}
public void onBlockAdded(World world, int x, int y, int z) {
super.onBlockAdded(world, x, y, z);
if(!world.isRemote) {
if(world.rand.nextInt(4) == 0) {
NBTTagCompound data = new NBTTagCompound();
data.setString("type", "rbmkflame");
data.setInteger("maxAge", 90);
PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + 0.25 + world.rand.nextDouble() * 0.5, y + 1.75, z + 0.25 + world.rand.nextDouble() * 0.5), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 1.75, z + 0.5, 75));
MainRegistry.proxy.effectNT(data);
world.playSoundEffect(x + 0.5F, y + 0.5, z + 0.5, "fire.fire", 1.0F + world.rand.nextFloat(), world.rand.nextFloat() * 0.7F + 0.3F);
}
}
world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world));
}
@Override
public Item getItemDropped(int meta, Random rand, int fortune) {
return null;
}
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) {
ArrayList<ItemStack> drops = new ArrayList<ItemStack>();
drops.add(new ItemStack(ModBlocks.concrete_smooth, 6));
drops.add(new ItemStack(ModBlocks.deco_pipe_quad, 4));
drops.add(new ItemStack(ModBlocks.steel_grate, 2));
drops.add(new ItemStack(ModItems.debris_metal, 6));
drops.add(new ItemStack(ModItems.debris_graphite, 2));
drops.add(new ItemStack(ModItems.fallout, 4));
return drops;
}
@Override
public int[] getDimensions() {
return new int[] {1, 0, 2, 2, 2, 2,};
}
@Override
public int getOffset() {
return 2;
}
protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
}
}

View File

@ -8,8 +8,10 @@ import com.hbm.packet.AuxParticlePacketNT;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class RBMKDebrisBurning extends RBMKDebris { public class RBMKDebrisBurning extends RBMKDebris {
@ -33,6 +35,12 @@ public class RBMKDebrisBurning extends RBMKDebris {
world.playSoundEffect(x + 0.5F, y + 0.5, z + 0.5, "fire.fire", 1.0F + rand.nextFloat(), rand.nextFloat() * 0.7F + 0.3F); world.playSoundEffect(x + 0.5F, y + 0.5, z + 0.5, "fire.fire", 1.0F + rand.nextFloat(), rand.nextFloat() * 0.7F + 0.3F);
} }
ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6));
if(rand.nextInt(7) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) {
world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_meltdown);
}
if(rand.nextInt(100) == 0) { if(rand.nextInt(100) == 0) {
world.setBlock(x, y, z, ModBlocks.pribris); world.setBlock(x, y, z, ModBlocks.pribris);
} else { } else {

View File

@ -15,11 +15,13 @@ import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class RBMKDebrisRadiating extends RBMKDebrisBurning { public class RBMKDebrisRadiating extends RBMKDebrisBurning {
@ -46,6 +48,12 @@ public class RBMKDebrisRadiating extends RBMKDebrisBurning {
} }
ForgeDirection dir = ForgeDirection.getOrientation(rand.nextInt(6));
if(rand.nextInt(5) == 0 && world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) {
world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_meltdown);
}
if(rand.nextInt(1000) == 0) { if(rand.nextInt(1000) == 0) {
int meta = world.getBlockMetadata(x, y, z); int meta = world.getBlockMetadata(x, y, z);

View File

@ -42,9 +42,11 @@ public class RodRecipes {
CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_lead, 1), new Object[] { ModItems.rod_empty, PB.nugget(), PB.nugget(), PB.nugget(), PB.nugget(), PB.nugget(), PB.nugget() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_lead, 1), new Object[] { ModItems.rod_empty, PB.nugget(), PB.nugget(), PB.nugget(), PB.nugget(), PB.nugget(), PB.nugget() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.nugget_lead, 6), new Object[] { ModItems.rod_lead }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.nugget_lead, 6), new Object[] { ModItems.rod_lead });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_lithium, 1), new Object[] { ModItems.rod_empty, LI.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_lithium, 1), new Object[] { ModItems.rod_empty, LI.ingot() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_zirnox_lithium), new Object[] { ModItems.rod_zirnox_empty, LI.ingot(), LI.ingot() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.lithium, 1), new Object[] { ModItems.rod_lithium }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.lithium, 1), new Object[] { ModItems.rod_lithium });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.cell_tritium, 1), new Object[] { ModItems.rod_tritium, ModItems.cell_empty }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.cell_tritium, 1), new Object[] { ModItems.rod_tritium, ModItems.cell_empty });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.cell_tritium, 2), new Object[] { ModItems.rod_zirnox_tritium, ModItems.cell_empty, ModItems.cell_empty });
//Dual rods //Dual rods
CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_empty, 2), new Object[] { ModItems.rod_dual_empty }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_empty, 2), new Object[] { ModItems.rod_dual_empty });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_dual_empty, 1), new Object[] { ModItems.rod_empty, ModItems.rod_empty }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_dual_empty, 1), new Object[] { ModItems.rod_empty, ModItems.rod_empty });
@ -101,6 +103,29 @@ public class RodRecipes {
CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_quad_lithium, 1), new Object[] { ModItems.rod_quad_empty, LI.ingot(), LI.ingot(), LI.ingot(), LI.ingot() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.rod_quad_lithium, 1), new Object[] { ModItems.rod_quad_empty, LI.ingot(), LI.ingot(), LI.ingot(), LI.ingot() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.lithium, 4), new Object[] { ModItems.rod_quad_lithium }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.lithium, 4), new Object[] { ModItems.rod_quad_lithium });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.cell_tritium, 4), new Object[] { ModItems.rod_quad_tritium, ModItems.cell_empty, ModItems.cell_empty, ModItems.cell_empty, ModItems.cell_empty }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.cell_tritium, 4), new Object[] { ModItems.rod_quad_tritium, ModItems.cell_empty, ModItems.cell_empty, ModItems.cell_empty, ModItems.cell_empty });
//Zirnox Fuel
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.rod_zirnox_empty, 4), new Object[] { "Z Z", "ZBZ", "Z Z", 'Z', "nuggetZirconium", 'B', "ingotBeryllium" }));
addZIRNOXRod(ModItems.billet_uranium, ModItems.rod_zirnox_natural_uranium_fuel);
addZIRNOXRod(ModItems.billet_uranium_fuel, ModItems.rod_zirnox_uranium_fuel);
addZIRNOXRod(ModItems.billet_th232, ModItems.rod_zirnox_th232);
addZIRNOXRod(ModItems.billet_thorium_fuel, ModItems.rod_zirnox_thorium_fuel);
addZIRNOXRod(ModItems.billet_mox_fuel, ModItems.rod_zirnox_mox_fuel);
addZIRNOXRod(ModItems.billet_plutonium_fuel, ModItems.rod_zirnox_plutonium_fuel);
addZIRNOXRod(ModItems.billet_u233, ModItems.rod_zirnox_u233_fuel);
addZIRNOXRod(ModItems.billet_u235, ModItems.rod_zirnox_u235_fuel);
addZIRNOXRod(ModItems.billet_les, ModItems.rod_zirnox_les_fuel);
CraftingManager.addShapelessAuto(new ItemStack(ModItems.waste_natural_uranium_hot, 2), new Object[] { ModItems.rod_zirnox_natural_uranium_fuel_depleted });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.waste_uranium_hot, 2), new Object[] { ModItems.rod_zirnox_uranium_fuel_depleted });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.waste_thorium_hot, 2), new Object[] { ModItems.rod_zirnox_thorium_fuel_depleted });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.waste_mox_hot, 2), new Object[] { ModItems.rod_zirnox_mox_fuel_depleted });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.waste_plutonium_hot, 2), new Object[] { ModItems.rod_zirnox_plutonium_fuel_depleted });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.waste_u233_hot, 2), new Object[] { ModItems.rod_zirnox_u233_fuel_depleted });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.waste_u235_hot, 2), new Object[] { ModItems.rod_zirnox_u235_fuel_depleted });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.waste_schrabidium_hot, 2), new Object[] { ModItems.rod_zirnox_les_fuel_depleted });
//Pile fuel //Pile fuel
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_uranium, 1), new Object[] { " U ", "PUP", " U ", 'P', IRON.plate(), 'U', U.billet() }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.pile_rod_uranium, 1), new Object[] { " U ", "PUP", " U ", 'P', IRON.plate(), 'U', U.billet() });
@ -218,4 +243,9 @@ public class RodRecipes {
public static void addRBMKRod(Item billet, Item out) { public static void addRBMKRod(Item billet, Item out) {
CraftingManager.addShapelessAuto(new ItemStack(out), new Object[] { ModItems.rbmk_fuel_empty, billet, billet, billet, billet, billet, billet, billet, billet }); CraftingManager.addShapelessAuto(new ItemStack(out), new Object[] { ModItems.rbmk_fuel_empty, billet, billet, billet, billet, billet, billet, billet, billet });
} }
//Fill rods with 2 billets
public static void addZIRNOXRod(Item billet, Item out) {
GameRegistry.addShapelessRecipe(new ItemStack(out), new Object[] { ModItems.rod_zirnox_empty, billet, billet });
}
} }

View File

@ -0,0 +1,227 @@
package com.hbm.entity.projectile;
import java.util.List;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.crash.CrashReport;
import net.minecraft.crash.CrashReportCategory;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.ReportedException;
import net.minecraft.world.World;
abstract public class EntityDebrisBase extends Entity {
public float rot;
public float lastRot;
protected boolean hasSizeSet = false;
public EntityDebrisBase(World world) {
super(world);
}
@Override
protected void entityInit() {
this.dataWatcher.addObject(20, 0);
this.rot = this.lastRot = this.rand.nextFloat() * 360;
}
@Override
public boolean canBeCollidedWith() {
return true;
}
abstract public boolean interactFirst(EntityPlayer player);
abstract protected int getLifetime();
@Override
protected void readEntityFromNBT(NBTTagCompound nbt) {
this.dataWatcher.updateObject(20, nbt.getInteger("debtype"));
}
@Override
protected void writeEntityToNBT(NBTTagCompound nbt) {
nbt.setInteger("debtype", this.dataWatcher.getWatchableObjectInt(20));
}
@Override
public void moveEntity(double moX, double moY, double moZ) {
this.worldObj.theProfiler.startSection("move");
this.ySize *= 0.4F;
if(this.isInWeb) {
this.isInWeb = false;
}
double initMoX = moX;
double initMoY = moY;
double initMoZ = moZ;
AxisAlignedBB axisalignedbb = this.boundingBox.copy();
List list = this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox.addCoord(moX, moY, moZ));
for(int i = 0; i < list.size(); ++i) {
moY = ((AxisAlignedBB) list.get(i)).calculateYOffset(this.boundingBox, moY);
}
this.boundingBox.offset(0.0D, moY, 0.0D);
if(!this.field_70135_K && initMoY != moY) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
boolean isGoingDown = this.onGround || initMoY != moY && initMoY < 0.0D;
int j;
for(j = 0; j < list.size(); ++j) {
moX = ((AxisAlignedBB) list.get(j)).calculateXOffset(this.boundingBox, moX);
}
this.boundingBox.offset(moX, 0.0D, 0.0D);
if(!this.field_70135_K && initMoX != moX) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
for(j = 0; j < list.size(); ++j) {
moZ = ((AxisAlignedBB) list.get(j)).calculateZOffset(this.boundingBox, moZ);
}
this.boundingBox.offset(0.0D, 0.0D, moZ);
if(!this.field_70135_K && initMoZ != moZ) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
double d10;
double d11;
int k;
double d12;
if(this.stepHeight > 0.0F && isGoingDown && this.ySize < 0.05F && (initMoX != moX || initMoZ != moZ)) {
d12 = moX;
d10 = moY;
d11 = moZ;
moX = initMoX;
moY = (double) this.stepHeight;
moZ = initMoZ;
AxisAlignedBB axisalignedbb1 = this.boundingBox.copy();
this.boundingBox.setBB(axisalignedbb);
list = this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox.addCoord(initMoX, moY, initMoZ));
for(k = 0; k < list.size(); ++k) {
moY = ((AxisAlignedBB) list.get(k)).calculateYOffset(this.boundingBox, moY);
}
this.boundingBox.offset(0.0D, moY, 0.0D);
if(!this.field_70135_K && initMoY != moY) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
for(k = 0; k < list.size(); ++k) {
moX = ((AxisAlignedBB) list.get(k)).calculateXOffset(this.boundingBox, moX);
}
this.boundingBox.offset(moX, 0.0D, 0.0D);
if(!this.field_70135_K && initMoX != moX) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
for(k = 0; k < list.size(); ++k) {
moZ = ((AxisAlignedBB) list.get(k)).calculateZOffset(this.boundingBox, moZ);
}
this.boundingBox.offset(0.0D, 0.0D, moZ);
if(!this.field_70135_K && initMoZ != moZ) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
if(!this.field_70135_K && initMoY != moY) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
} else {
moY = (double) (-this.stepHeight);
for(k = 0; k < list.size(); ++k) {
moY = ((AxisAlignedBB) list.get(k)).calculateYOffset(this.boundingBox, moY);
}
this.boundingBox.offset(0.0D, moY, 0.0D);
}
if(d12 * d12 + d11 * d11 >= moX * moX + moZ * moZ) {
moX = d12;
moY = d10;
moZ = d11;
this.boundingBox.setBB(axisalignedbb1);
}
}
this.worldObj.theProfiler.endSection();
this.worldObj.theProfiler.startSection("rest");
this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D;
this.posY = this.boundingBox.minY + (double) this.yOffset - (double) this.ySize;
this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D;
this.isCollidedHorizontally = initMoX != moX || initMoZ != moZ;
this.isCollidedVertically = initMoY != moY;
this.onGround = initMoY != moY && initMoY < 0.0D;
this.isCollided = this.isCollidedHorizontally || this.isCollidedVertically;
this.updateFallState(moY, this.onGround);
if(initMoX != moX) {
//this.motionX = 0.0D;
this.motionX *= -0.75D;
}
if(initMoY != moY) {
this.motionY = 0.0D;
}
if(initMoZ != moZ) {
//this.motionZ = 0.0D;
this.motionZ *= -0.75D;
}
try {
this.func_145775_I();
} catch(Throwable throwable) {
CrashReport crashreport = CrashReport.makeCrashReport(throwable, "Checking entity block collision");
CrashReportCategory crashreportcategory = crashreport.makeCategory("Entity being checked for collision");
this.addEntityCrashInfo(crashreportcategory);
throw new ReportedException(crashreport);
}
this.worldObj.theProfiler.endSection();
}
@Override
@SideOnly(Side.CLIENT)
public boolean isInRangeToRenderDist(double dist) {
int range = 128;
return dist < range * range;
}
}

View File

@ -6,23 +6,16 @@ import com.hbm.items.ModItems;
import com.hbm.potion.HbmPotion; import com.hbm.potion.HbmPotion;
import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.machine.rbmk.RBMKDials;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.crash.CrashReport;
import net.minecraft.crash.CrashReportCategory;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.PotionEffect; import net.minecraft.potion.PotionEffect;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.ReportedException;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
public class EntityRBMKDebris extends Entity { public class EntityRBMKDebris extends EntityDebrisBase {
public float rot; public float rot;
public float lastRot; public float lastRot;
@ -38,17 +31,6 @@ public class EntityRBMKDebris extends Entity {
this.setType(type); this.setType(type);
} }
@Override
protected void entityInit() {
this.dataWatcher.addObject(20, 0);
this.rot = this.lastRot = this.rand.nextFloat() * 360;
}
@Override
public boolean canBeCollidedWith() {
return true;
}
@Override @Override
public boolean interactFirst(EntityPlayer player) { public boolean interactFirst(EntityPlayer player) {
@ -152,7 +134,8 @@ public class EntityRBMKDebris extends Entity {
} }
} }
private int getLifetime() { @Override
protected int getLifetime() {
switch(this.getType()) { switch(this.getType()) {
case BLANK: return 3 * 60 * 20; case BLANK: return 3 * 60 * 20;
@ -182,182 +165,6 @@ public class EntityRBMKDebris extends Entity {
protected void writeEntityToNBT(NBTTagCompound nbt) { protected void writeEntityToNBT(NBTTagCompound nbt) {
nbt.setInteger("debtype", this.dataWatcher.getWatchableObjectInt(20)); nbt.setInteger("debtype", this.dataWatcher.getWatchableObjectInt(20));
} }
@Override
public void moveEntity(double moX, double moY, double moZ) {
this.worldObj.theProfiler.startSection("move");
this.ySize *= 0.4F;
if(this.isInWeb) {
this.isInWeb = false;
}
double initMoX = moX;
double initMoY = moY;
double initMoZ = moZ;
AxisAlignedBB axisalignedbb = this.boundingBox.copy();
List list = this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox.addCoord(moX, moY, moZ));
for(int i = 0; i < list.size(); ++i) {
moY = ((AxisAlignedBB) list.get(i)).calculateYOffset(this.boundingBox, moY);
}
this.boundingBox.offset(0.0D, moY, 0.0D);
if(!this.field_70135_K && initMoY != moY) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
boolean isGoingDown = this.onGround || initMoY != moY && initMoY < 0.0D;
int j;
for(j = 0; j < list.size(); ++j) {
moX = ((AxisAlignedBB) list.get(j)).calculateXOffset(this.boundingBox, moX);
}
this.boundingBox.offset(moX, 0.0D, 0.0D);
if(!this.field_70135_K && initMoX != moX) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
for(j = 0; j < list.size(); ++j) {
moZ = ((AxisAlignedBB) list.get(j)).calculateZOffset(this.boundingBox, moZ);
}
this.boundingBox.offset(0.0D, 0.0D, moZ);
if(!this.field_70135_K && initMoZ != moZ) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
double d10;
double d11;
int k;
double d12;
if(this.stepHeight > 0.0F && isGoingDown && this.ySize < 0.05F && (initMoX != moX || initMoZ != moZ)) {
d12 = moX;
d10 = moY;
d11 = moZ;
moX = initMoX;
moY = (double) this.stepHeight;
moZ = initMoZ;
AxisAlignedBB axisalignedbb1 = this.boundingBox.copy();
this.boundingBox.setBB(axisalignedbb);
list = this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox.addCoord(initMoX, moY, initMoZ));
for(k = 0; k < list.size(); ++k) {
moY = ((AxisAlignedBB) list.get(k)).calculateYOffset(this.boundingBox, moY);
}
this.boundingBox.offset(0.0D, moY, 0.0D);
if(!this.field_70135_K && initMoY != moY) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
for(k = 0; k < list.size(); ++k) {
moX = ((AxisAlignedBB) list.get(k)).calculateXOffset(this.boundingBox, moX);
}
this.boundingBox.offset(moX, 0.0D, 0.0D);
if(!this.field_70135_K && initMoX != moX) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
for(k = 0; k < list.size(); ++k) {
moZ = ((AxisAlignedBB) list.get(k)).calculateZOffset(this.boundingBox, moZ);
}
this.boundingBox.offset(0.0D, 0.0D, moZ);
if(!this.field_70135_K && initMoZ != moZ) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
}
if(!this.field_70135_K && initMoY != moY) {
moZ = 0.0D;
moY = 0.0D;
moX = 0.0D;
} else {
moY = (double) (-this.stepHeight);
for(k = 0; k < list.size(); ++k) {
moY = ((AxisAlignedBB) list.get(k)).calculateYOffset(this.boundingBox, moY);
}
this.boundingBox.offset(0.0D, moY, 0.0D);
}
if(d12 * d12 + d11 * d11 >= moX * moX + moZ * moZ) {
moX = d12;
moY = d10;
moZ = d11;
this.boundingBox.setBB(axisalignedbb1);
}
}
this.worldObj.theProfiler.endSection();
this.worldObj.theProfiler.startSection("rest");
this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D;
this.posY = this.boundingBox.minY + (double) this.yOffset - (double) this.ySize;
this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D;
this.isCollidedHorizontally = initMoX != moX || initMoZ != moZ;
this.isCollidedVertically = initMoY != moY;
this.onGround = initMoY != moY && initMoY < 0.0D;
this.isCollided = this.isCollidedHorizontally || this.isCollidedVertically;
this.updateFallState(moY, this.onGround);
if(initMoX != moX) {
//this.motionX = 0.0D;
this.motionX *= -0.75D;
}
if(initMoY != moY) {
this.motionY = 0.0D;
}
if(initMoZ != moZ) {
//this.motionZ = 0.0D;
this.motionZ *= -0.75D;
}
try {
this.func_145775_I();
} catch(Throwable throwable) {
CrashReport crashreport = CrashReport.makeCrashReport(throwable, "Checking entity block collision");
CrashReportCategory crashreportcategory = crashreport.makeCategory("Entity being checked for collision");
this.addEntityCrashInfo(crashreportcategory);
throw new ReportedException(crashreport);
}
this.worldObj.theProfiler.endSection();
}
@Override
@SideOnly(Side.CLIENT)
public boolean isInRangeToRenderDist(double dist) {
int range = 128;
return dist < range * range;
}
public static enum DebrisType { public static enum DebrisType {
BLANK, //just a metal beam BLANK, //just a metal beam

View File

@ -0,0 +1,160 @@
package com.hbm.entity.projectile;
import java.util.List;
import com.hbm.items.ModItems;
import com.hbm.potion.HbmPotion;
import com.hbm.tileentity.machine.rbmk.RBMKDials;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class EntityZirnoxDebris extends EntityDebrisBase {
public EntityZirnoxDebris(World world) {
super(world);
}
public EntityZirnoxDebris(World world, double x, double y, double z, DebrisType type) {
super(world);
this.setPosition(x, y, z);
this.setType(type);
}
@Override
public boolean interactFirst(EntityPlayer player) {
if(!worldObj.isRemote) {
switch(this.getType()) {
case BLANK: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.debris_metal))) this.setDead(); break;
case ELEMENT: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.debris_element))) this.setDead(); break;
case SHRAPNEL: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.debris_shrapnel))) this.setDead(); break;
case GRAPHITE: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.debris_graphite))) this.setDead(); break;
case CONCRETE: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.debris_concrete))) this.setDead(); break;
case EXCHANGER: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.debris_exchanger))) this.setDead(); break;
}
player.inventoryContainer.detectAndSendChanges();
}
return false;
}
@Override
public void onUpdate() {
if(!hasSizeSet) {
switch(this.getType()) {
case BLANK: this.setSize(0.5F, 0.5F); break;
case ELEMENT: this.setSize(1F, 1F); break;
case SHRAPNEL: this.setSize(0.5F, 0.5F); break;
case GRAPHITE: this.setSize(0.25F, 0.25F); break;
case CONCRETE: this.setSize(1F, 0.5F); break;
case EXCHANGER: this.setSize(1F, 0.5F); break;
}
hasSizeSet = true;
}
this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
this.motionY -= 0.04D;
this.moveEntity(this.motionX, this.motionY, this.motionZ);
this.lastRot = this.rot;
if(this.onGround) {
this.motionX *= 0.85D;
this.motionZ *= 0.85D;
this.motionY *= -0.5D;
} else {
this.rot += 10F;
if(rot >= 360F) {
this.rot -= 360F;
this.lastRot -= 360F;
}
}
if(!worldObj.isRemote) {
if((this.getType() == DebrisType.CONCRETE || this.getType() == DebrisType.EXCHANGER) && motionY > 0) {
Vec3 pos = Vec3.createVectorHelper(posX, posY, posZ);
Vec3 next = Vec3.createVectorHelper(posX + motionX * 2, posY + motionY * 2, posZ + motionZ * 2);
MovingObjectPosition mop = worldObj.func_147447_a(pos, next, false, false, false);
if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) {
int x = mop.blockX;
int y = mop.blockY;
int z = mop.blockZ;
for(int i = -1; i <= 1; i++) {
for(int j = -1; j <= 1; j++) {
for(int k = -1; k <= 1; k++) {
int rn = Math.abs(i) + Math.abs(j) + Math.abs(k);
if(rn <= 1 || rand.nextInt(rn) == 0)
worldObj.setBlockToAir(x + i, y + j, z + k);
}
}
}
this.setDead();
}
}
if(this.getType() == DebrisType.ELEMENT || this.getType() == DebrisType.GRAPHITE) {
List<EntityLivingBase> entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, this.boundingBox.expand(10, 10, 10));
for(EntityLivingBase e : entities) {
e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 60 * 20, 4));
}
}
if(!RBMKDials.getPermaScrap(worldObj) && this.ticksExisted > getLifetime() + this.getEntityId() % 50)
this.setDead();
}
}
protected int getLifetime() {
switch(this.getType()) {
case BLANK: return 3 * 60 * 20;
case ELEMENT: return 10 * 60 * 20;
case SHRAPNEL: return 15 * 60 * 20;
case GRAPHITE: return 15 * 60 * 20;
case CONCRETE: return 60 * 20;
case EXCHANGER: return 60 * 20;
default: return 0;
}
}
public void setType(DebrisType type) {
this.dataWatcher.updateObject(20, type.ordinal());
}
public DebrisType getType() {
return DebrisType.values()[Math.abs(this.dataWatcher.getWatchableObjectInt(20)) % DebrisType.values().length];
}
public static enum DebrisType {
BLANK, //just a metal beam
ELEMENT, //fuel element
SHRAPNEL, //steel shrapnel from the pipes and walkways
GRAPHITE, //spicy rock
CONCRETE, //the all destroying harbinger of annihilation
EXCHANGER; //the all destroying harbinger of annihilation: sideways edition
}
}

View File

@ -35,7 +35,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
public static final int maxAsbestos = 60 * 60 * 20; public static final int maxAsbestos = 60 * 60 * 20;
private int blacklung; private int blacklung;
public static final int maxBlacklung = 60 * 60 * 20; public static final int maxBlacklung = 60 * 60 * 20;
private int Fibrosis; private int fibrosis;
public static final int maxFibrosis = 60 * 60 * 30; public static final int maxFibrosis = 60 * 60 * 30;
private float radEnv; private float radEnv;
private float radBuf; private float radBuf;
@ -212,14 +212,14 @@ public class HbmLivingProps implements IExtendedEntityProperties {
/// PULMONARY FIBROSIS /// /// PULMONARY FIBROSIS ///
public static int getFibrosis(EntityLivingBase entity) { public static int getFibrosis(EntityLivingBase entity) {
return getData(entity).Fibrosis; return getData(entity).fibrosis;
} }
public static void setFibrosis(EntityLivingBase entity, int fibrosis) { public static void setFibrosis(EntityLivingBase entity, int fibrosis) {
getData(entity).Fibrosis = fibrosis; getData(entity).fibrosis = fibrosis;
if (fibrosis >= maxFibrosis) { if (fibrosis >= maxFibrosis) {
getData(entity).Fibrosis = 0; getData(entity).fibrosis = 0;
entity.attackEntityFrom(ModDamageSource.asbestos, 1000); entity.attackEntityFrom(ModDamageSource.asbestos, 1000);
} }
} }
@ -260,6 +260,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
props.setInteger("hfr_bomb", bombTimer); props.setInteger("hfr_bomb", bombTimer);
props.setInteger("hfr_contagion", contagion); props.setInteger("hfr_contagion", contagion);
props.setInteger("hfr_blacklung", blacklung); props.setInteger("hfr_blacklung", blacklung);
props.setInteger("hfr_fibrosis", fibrosis);
props.setInteger("hfr_cont_count", this.contamination.size()); props.setInteger("hfr_cont_count", this.contamination.size());
@ -282,6 +283,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
bombTimer = props.getInteger("hfr_bomb"); bombTimer = props.getInteger("hfr_bomb");
contagion = props.getInteger("hfr_contagion"); contagion = props.getInteger("hfr_contagion");
blacklung = props.getInteger("hfr_blacklung"); blacklung = props.getInteger("hfr_blacklung");
fibrosis = props.getInteger("hfr_fibrosis");
int cont = props.getInteger("hfr_cont_count"); int cont = props.getInteger("hfr_cont_count");

View File

@ -98,7 +98,8 @@ public class FluidTypeHandler {
HELIUM3 (0xFCF0C4, 7, 2, 2, 3, 4, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.helium3"), HELIUM3 (0xFCF0C4, 7, 2, 2, 3, 4, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.helium3"),
DEATH (0x717A88, 8, 2, 2, 2, 0, 1, EnumSymbol.ACID, "hbmfluid.death", 300, FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER), DEATH (0x717A88, 8, 2, 2, 2, 0, 1, EnumSymbol.ACID, "hbmfluid.death", 300, FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER),
ETHANOL (0xe0ffff, 9, 2, 2, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.ethanol"), ETHANOL (0xe0ffff, 9, 2, 2, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.ethanol"),
HEAVYWATER (0x00a0b0, 10, 2, 2, 1, 0, 0, EnumSymbol.NONE, "hbmfluid.heavywater"); HEAVYWATER (0x00a0b0, 10, 2, 2, 1, 0, 0, EnumSymbol.NONE, "hbmfluid.heavywater"),
CARBONDIOXIDE (0x747474, 6, 2, 2, 3, 0, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.carbondioxide");
//Approximate HEX Color of the fluid, used for pipe rendering //Approximate HEX Color of the fluid, used for pipe rendering
private int color; private int color;

View File

@ -860,6 +860,13 @@ public class GUIHandler implements IGuiHandler {
} }
return null; return null;
} }
case ModBlocks.guiID_reactor_zirnox: {
if(entity instanceof TileEntityReactorZirnox) {
return new ContainerReactorZirnox(player.inventory, (TileEntityReactorZirnox) entity);
}
return null;
}
} }
// NON-TE CONTAINERS // NON-TE CONTAINERS
@ -1709,6 +1716,13 @@ public class GUIHandler implements IGuiHandler {
} }
return null; return null;
} }
case ModBlocks.guiID_reactor_zirnox: {
if(entity instanceof TileEntityReactorZirnox) {
return new GUIReactorZirnox(player.inventory, (TileEntityReactorZirnox) entity);
}
return null;
}
} }
// ITEM GUIS // ITEM GUIS

View File

@ -9,6 +9,7 @@ import com.hbm.packet.AuxParticlePacket;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.ChunkCoordIntPair;
@ -219,12 +220,17 @@ public class ChunkRadiationHandlerSimple extends ChunkRadiationHandler {
if(world.getBlock(x, y, z) == Blocks.grass) { if(world.getBlock(x, y, z) == Blocks.grass) {
world.setBlock(x, y, z, ModBlocks.waste_earth); world.setBlock(x, y, z, ModBlocks.waste_earth);
} else if(world.getBlock(x, y, z) == Blocks.tallgrass) { } else if(world.getBlock(x, y, z) == Blocks.tallgrass) {
world.setBlock(x, y, z, Blocks.air); world.setBlock(x, y, z, Blocks.air);
} else if(world.getBlock(x, y, z) == Blocks.leaves) {
world.setBlock(x, y, z, Blocks.air); } else if(world.getBlock(x, y, z).getMaterial() == Material.leaves && !(world.getBlock(x, y, z) == ModBlocks.waste_leaves)) {
} else if(world.getBlock(x, y, z) == Blocks.leaves2) {
world.setBlock(x, y, z, Blocks.air); if(world.rand.nextInt(7) <= 5) {
world.setBlock(x, y, z, ModBlocks.waste_leaves);
} else {
world.setBlock(x, y, z, Blocks.air);
}
} }
} }
} }

View File

@ -168,6 +168,27 @@ public class HazardRegistry {
HazardSystem.register(block_corium_cobble, makeData(RADIATION, 150F)); HazardSystem.register(block_corium_cobble, makeData(RADIATION, 150F));
HazardSystem.register(sand_gold198, makeData(RADIATION, au198 * block * powder_mult)); HazardSystem.register(sand_gold198, makeData(RADIATION, au198 * block * powder_mult));
HazardSystem.register(rod_zirnox_natural_uranium_fuel, makeData(RADIATION, u * rod_dual));
HazardSystem.register(rod_zirnox_uranium_fuel, makeData(RADIATION, uf * rod_dual));
HazardSystem.register(rod_zirnox_th232, makeData(RADIATION, th232 * rod_dual));
HazardSystem.register(rod_zirnox_thorium_fuel, makeData(RADIATION, thf * rod_dual));
HazardSystem.register(rod_zirnox_mox_fuel, makeData(RADIATION, mox * rod_dual));
HazardSystem.register(rod_zirnox_plutonium_fuel, makeData(RADIATION, puf * rod_dual));
HazardSystem.register(rod_zirnox_u233_fuel, makeData(RADIATION, u233 * rod_dual));
HazardSystem.register(rod_zirnox_u235_fuel, makeData(RADIATION, u235 * rod_dual));
HazardSystem.register(rod_zirnox_les_fuel, makeData(RADIATION, saf * rod_dual));
HazardSystem.register(rod_zirnox_natural_uranium_fuel_depleted, makeData(RADIATION, 70F));
HazardSystem.register(rod_zirnox_uranium_fuel_depleted, makeData(RADIATION, 80F));
HazardSystem.register(rod_zirnox_thorium_fuel_depleted, makeData(RADIATION, 60F));
HazardSystem.register(rod_zirnox_mox_fuel_depleted, makeData(RADIATION, 100F));
HazardSystem.register(rod_zirnox_plutonium_fuel_depleted, makeData(RADIATION, 110F));
HazardSystem.register(rod_zirnox_u233_fuel_depleted, makeData(RADIATION, 120F));
HazardSystem.register(rod_zirnox_u235_fuel_depleted, makeData(RADIATION, 110F));
HazardSystem.register(rod_zirnox_les_fuel_depleted, new HazardData().addEntry(RADIATION, 120F).addEntry(BLINDING, 5F));
HazardSystem.register(waste_natural_uranium, makeData(RADIATION, 30F));
HazardSystem.register(waste_uranium, makeData(RADIATION, 15F)); HazardSystem.register(waste_uranium, makeData(RADIATION, 15F));
HazardSystem.register(waste_thorium, makeData(RADIATION, 10F)); HazardSystem.register(waste_thorium, makeData(RADIATION, 10F));
HazardSystem.register(waste_plutonium, makeData(RADIATION, 15F)); HazardSystem.register(waste_plutonium, makeData(RADIATION, 15F));
@ -179,6 +200,14 @@ public class HazardRegistry {
HazardSystem.register(waste_mox_hot, new HazardData().addEntry(RADIATION, 15F).addEntry(HOT, 5F)); HazardSystem.register(waste_mox_hot, new HazardData().addEntry(RADIATION, 15F).addEntry(HOT, 5F));
HazardSystem.register(waste_schrabidium_hot, new HazardData().addEntry(RADIATION, 40F).addEntry(HOT, 5F).addEntry(BLINDING, 5F)); HazardSystem.register(waste_schrabidium_hot, new HazardData().addEntry(RADIATION, 40F).addEntry(HOT, 5F).addEntry(BLINDING, 5F));
HazardSystem.register(debris_graphite, new HazardData().addEntry(RADIATION, 70F).addEntry(HOT, 5F));
HazardSystem.register(debris_metal, makeData(RADIATION, 5F));
HazardSystem.register(debris_fuel, new HazardData().addEntry(RADIATION, 500F).addEntry(HOT, 5F));
HazardSystem.register(debris_concrete, makeData(RADIATION, 30F));
HazardSystem.register(debris_exchanger, makeData(RADIATION, 25F));
HazardSystem.register(debris_shrapnel, makeData(RADIATION, 2.5F));
HazardSystem.register(debris_element, makeData(RADIATION, 100F));
HazardSystem.register(nugget_uranium_fuel, makeData(RADIATION, uf * nugget)); HazardSystem.register(nugget_uranium_fuel, makeData(RADIATION, uf * nugget));
HazardSystem.register(billet_uranium_fuel, makeData(RADIATION, uf * billet)); HazardSystem.register(billet_uranium_fuel, makeData(RADIATION, uf * billet));
HazardSystem.register(ingot_uranium_fuel, makeData(RADIATION, uf * ingot)); HazardSystem.register(ingot_uranium_fuel, makeData(RADIATION, uf * ingot));

View File

@ -0,0 +1,116 @@
package com.hbm.inventory.container;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.inventory.FluidContainerRegistry;
import com.hbm.inventory.SlotMachineOutput;
import com.hbm.items.machine.ItemZirnoxRod;
import com.hbm.tileentity.machine.TileEntityReactorZirnox;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerReactorZirnox extends Container {
private TileEntityReactorZirnox zirnox;
public ContainerReactorZirnox(InventoryPlayer invPlayer, TileEntityReactorZirnox te) {
zirnox = te;
//Rods
this.addSlotToContainer(new Slot(te, 0, 26, 16));
this.addSlotToContainer(new Slot(te, 1, 62, 16));
this.addSlotToContainer(new Slot(te, 2, 98, 16));
this.addSlotToContainer(new Slot(te, 3, 8, 34));
this.addSlotToContainer(new Slot(te, 4, 44, 34));
this.addSlotToContainer(new Slot(te, 5, 80, 34));
this.addSlotToContainer(new Slot(te, 6, 116, 34));
this.addSlotToContainer(new Slot(te, 7, 26, 52));
this.addSlotToContainer(new Slot(te, 8, 62, 52));
this.addSlotToContainer(new Slot(te, 9, 98, 52));
this.addSlotToContainer(new Slot(te, 10, 8, 70));
this.addSlotToContainer(new Slot(te, 11, 44, 70));
this.addSlotToContainer(new Slot(te, 12, 80, 70));
this.addSlotToContainer(new Slot(te, 13, 116, 70));
this.addSlotToContainer(new Slot(te, 14, 26, 88));
this.addSlotToContainer(new Slot(te, 15, 62, 88));
this.addSlotToContainer(new Slot(te, 16, 98, 88));
this.addSlotToContainer(new Slot(te, 17, 8, 106));
this.addSlotToContainer(new Slot(te, 18, 44, 106));
this.addSlotToContainer(new Slot(te, 19, 80, 106));
this.addSlotToContainer(new Slot(te, 20, 116, 106));
this.addSlotToContainer(new Slot(te, 21, 26, 124));
this.addSlotToContainer(new Slot(te, 22, 62, 124));
this.addSlotToContainer(new Slot(te, 23, 98, 124));
//Fluid IO
this.addSlotToContainer(new Slot(te, 24, 143, 124));
this.addSlotToContainer(new SlotMachineOutput(te, 26, 143, 142));
this.addSlotToContainer(new Slot(te, 25, 179, 124));
this.addSlotToContainer(new SlotMachineOutput(te, 27, 179, 142));
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 9; j++)
{
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 90));
}
}
for(int i = 0; i < 9; i++)
{
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 232));
}
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
ItemStack var3 = null;
Slot slot = (Slot) this.inventorySlots.get(index);
if (slot != null && slot.getHasStack()) {
ItemStack stack = slot.getStack();
var3 = stack.copy();
if (index <= 27) {
if (!this.mergeItemStack(stack, 28, this.inventorySlots.size(), true)) {
return null;
}
} else {
if(FluidContainerRegistry.getFluidContent(stack, FluidType.CARBONDIOXIDE) > 0) {
if(!this.mergeItemStack(stack, 24, 25, true))
return null;
} else if(FluidContainerRegistry.getFluidContent(stack, FluidType.WATER) > 0) {
if(!this.mergeItemStack(stack, 25, 26, true))
return null;
} else {
if(stack.getItem() instanceof ItemZirnoxRod) {
if(!this.mergeItemStack(stack, 0, 24, true))
return null;
}
}
}
if (stack.stackSize == 0) {
slot.putStack((ItemStack) null);
} else {
slot.onSlotChanged();
}
}
return var3;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return zirnox.isUseableByPlayer(player);
}
}

View File

@ -64,6 +64,7 @@ public class Fluids {
public static FluidType PLASMA_HT; public static FluidType PLASMA_HT;
public static FluidType PLASMA_XM; public static FluidType PLASMA_XM;
public static FluidType PLASMA_BF; public static FluidType PLASMA_BF;
public static FluidType CARBONDIOXIDE;
public static final HashMap<Integer, FluidType> idMapping = new HashMap(); public static final HashMap<Integer, FluidType> idMapping = new HashMap();
public static final List<FluidType> metaOrder = new ArrayList(); public static final List<FluidType> metaOrder = new ArrayList();
@ -138,7 +139,7 @@ public class Fluids {
PLASMA_XM = new FluidType(0xC6A5FF, 11, 1, 2, 0, 4, 1, EnumSymbol.RADIATION, "hbmfluid.plasma_xm", 4250, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_XM = new FluidType(0xC6A5FF, 11, 1, 2, 0, 4, 1, EnumSymbol.RADIATION, "hbmfluid.plasma_xm", 4250, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
PLASMA_BF = new FluidType(0xA7F1A3, 12, 1, 2, 4, 5, 4, EnumSymbol.ANTIMATTER, "hbmfluid.plasma_bf", 8500, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); PLASMA_BF = new FluidType(0xA7F1A3, 12, 1, 2, 4, 5, 4, EnumSymbol.ANTIMATTER, "hbmfluid.plasma_bf", 8500, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
// v v v v v v v v // v v v v v v v v
CARBONDIOXIDE = new FluidType(0x404040, 6, 2, 2, 3, 0, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.carbondioxide");
// ^ ^ ^ ^ ^ ^ ^ ^ // ^ ^ ^ ^ ^ ^ ^ ^
//ADD NEW FLUIDS HERE //ADD NEW FLUIDS HERE
//AND DON'T FORGET THE META DOWN HERE //AND DON'T FORGET THE META DOWN HERE
@ -156,6 +157,7 @@ public class Fluids {
metaOrder.add(ULTRAHOTSTEAM); metaOrder.add(ULTRAHOTSTEAM);
metaOrder.add(SPENTSTEAM); metaOrder.add(SPENTSTEAM);
//coolants //coolants
metaOrder.add(CARBONDIOXIDE);
metaOrder.add(COOLANT); metaOrder.add(COOLANT);
metaOrder.add(CRYOGEL); metaOrder.add(CRYOGEL);
//pure elements, cyogenic gasses //pure elements, cyogenic gasses

View File

@ -0,0 +1,128 @@
package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerReactorZirnox;
import com.hbm.lib.RefStrings;
import com.hbm.packet.AuxButtonPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.tileentity.machine.TileEntityReactorZirnox;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUIReactorZirnox extends GuiInfoContainer {
//fuck you
private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/gui/reactors/gui_zirnox.png");
private TileEntityReactorZirnox zirnox;
public GUIReactorZirnox(InventoryPlayer invPlayer, TileEntityReactorZirnox tile) {
super(new ContainerReactorZirnox(invPlayer, tile));
zirnox = tile;
this.xSize = 203;
this.ySize = 256;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
zirnox.steam.renderTankInfo(this, mouseX, mouseY, guiLeft + 160, guiTop + 108, 18, 12);
zirnox.carbonDioxide.renderTankInfo(this, mouseX, mouseY, guiLeft + 142, guiTop + 108, 18, 12);
zirnox.water.renderTankInfo(this, mouseX, mouseY, guiLeft + 178, guiTop + 108, 18, 12);
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 160, guiTop + 33, 18, 17, new String[] { "Temperature:", " " + Math.round((zirnox.heat) * 0.00001 * 480 + 20) + "°C" });
this.drawCustomInfo(this, mouseX, mouseY, guiLeft + 178, guiTop + 33, 18, 17, new String[] { "Pressure:", " " + Math.round((zirnox.pressure) * 0.00001 * 30) + " bar" });
String[] info = new String[] { "CO2 transfers heat from the core", "to the water. This will boil", "the water into steam.", "Water Consumption Rate:", "100 mB/t", "2000 mB/s" };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, info);
String[] info2 = new String[] { "Pressure can be reduced by",
"reducing the amount of CO2",
"in the reactor." };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, info2);
if(zirnox.water.getFill() <= 0) {
String[] warn1 = new String[] { "Error: Water is required for",
"the reactor to function properly!" };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 32 + 16, warn1);
}
if(zirnox.carbonDioxide.getFill() < 4000) {
String[] warn2 = new String[] { "Error: CO2 is required for",
"the reactor to function properly!" };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 32 + 16, warn2);
}
}
protected void mouseClicked(int x, int y, int i) {
super.mouseClicked(x, y, i);
if(guiLeft + 144 <= x && guiLeft + 144 + 14 > x && guiTop + 35 < y && guiTop + 35 + 14 >= y) {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(zirnox.xCoord, zirnox.yCoord, zirnox.zCoord, 0, 0));
}
if(guiLeft + 151 <= x && guiLeft + 151 + 36 > x && guiTop + 51 < y && guiTop + 51 + 36 >= y) {
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(zirnox.xCoord, zirnox.yCoord, zirnox.zCoord, 0, 1));
}
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
String name = this.zirnox.hasCustomInventoryName() ? this.zirnox.getInventoryName() : I18n.format(this.zirnox.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96, 4210752);
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
int s = zirnox.getGaugeScaled(6, 0);
drawTexturedModalRect(guiLeft + 160, guiTop + 108, 238, 0 + 12 * s, 18, 12);
int c = zirnox.getGaugeScaled(6, 1);
drawTexturedModalRect(guiLeft + 142, guiTop + 108, 238, 0 + 12 * c, 18, 12);
int w = zirnox.getGaugeScaled(6, 2);
drawTexturedModalRect(guiLeft + 178, guiTop + 108, 238, 0 + 12 * w, 18, 12);
int h = zirnox.getGaugeScaled(12, 3);
drawTexturedModalRect(guiLeft + 160, guiTop + 33, 220, 0 + 18 * h, 18, 17);
int p = zirnox.getGaugeScaled(12, 4);
drawTexturedModalRect(guiLeft + 178, guiTop + 33, 220, 0 + 18 * p, 18, 17);
if(zirnox.isOn) {
for(int x = 0; x < 4; x++)
for(int y = 0; y < 4; y++)
drawTexturedModalRect(guiLeft + 7 + 36 * x, guiTop + 15 + 36 * y, 238, 238, 18, 18);
for(int x = 0; x < 3; x++)
for(int y = 0; y < 3; y++)
drawTexturedModalRect(guiLeft + 25 + 36 * x, guiTop + 33 + 36 * y, 238, 238, 18, 18);
drawTexturedModalRect(guiLeft + 142, guiTop + 15, 220, 238, 18, 18);
}
this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2);
this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3);
if(zirnox.water.getFill() <= 0)
this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6);
if(zirnox.carbonDioxide.getFill() <= 8000)
this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32 + 16, 16, 16, 7);
}
}

View File

@ -513,6 +513,21 @@ public class AssemblerRecipes {
new ComparableStack(ModItems.circuit_red_copper, 8), new ComparableStack(ModItems.circuit_red_copper, 8),
new ComparableStack(ModItems.circuit_gold, 3), new ComparableStack(ModItems.circuit_gold, 3),
}, 600); }, 600);
makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] {
new ComparableStack(ModItems.hull_big_steel, 3),
new ComparableStack(ModItems.hull_small_steel, 6),
new ComparableStack(ModBlocks.steel_scaffold, 4),
new ComparableStack(ModBlocks.steel_grate, 8),
new ComparableStack(ModBlocks.concrete_smooth, 12),
new ComparableStack(ModBlocks.deco_pipe_quad, 12),
new ComparableStack(ModItems.motor, 4),
new OreDictStack(B.ingot(), 2),
new OreDictStack(PB.ingot(), 4),
new OreDictStack(GRAPHITE.ingot(), 24),
new ComparableStack(ModItems.circuit_copper, 4),
new ComparableStack(ModItems.circuit_red_copper, 2),
}, 600);
makeRecipe(new ComparableStack(ModItems.gun_zomg, 1), new AStack[] { makeRecipe(new ComparableStack(ModItems.gun_zomg, 1), new AStack[] {
new ComparableStack(ModItems.crystal_xen, 2), new ComparableStack(ModItems.crystal_xen, 2),

View File

@ -23,35 +23,53 @@ public class CentrifugeRecipes {
public static void register() { public static void register() {
recipes.put(new ComparableStack(ModItems.waste_natural_uranium), new ItemStack[] {
new ItemStack(ModItems.nugget_u238, 1),
new ItemStack(ModItems.nugget_pu_mix, 2),
new ItemStack(ModItems.nugget_pu239, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 2) });
recipes.put(new ComparableStack(ModItems.waste_uranium), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_uranium), new ItemStack[] {
new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.nugget_u238, 1),
new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.nugget_pu_mix, 2),
new ItemStack(ModItems.nugget_technetium, 1), new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 2) }); new ItemStack(ModItems.nuclear_waste_tiny, 2) });
recipes.put(new ComparableStack(ModItems.waste_plutonium), new ItemStack[] {
new ItemStack(ModItems.nugget_pu_mix, 1),
new ItemStack(ModItems.nugget_pu_mix, 1),
new ItemStack(ModItems.nugget_polonium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
recipes.put(new ComparableStack(ModItems.waste_mox), new ItemStack[] {
new ItemStack(ModItems.nugget_pu_mix, 1),
new ItemStack(ModItems.nugget_u238, 2),
new ItemStack(ModItems.nugget_polonium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 2) });
recipes.put(new ComparableStack(ModItems.waste_schrabidium), new ItemStack[] {
new ItemStack(ModItems.nugget_beryllium, 1),
new ItemStack(ModItems.nugget_lead, 1),
new ItemStack(ModItems.nugget_solinium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
recipes.put(new ComparableStack(ModItems.waste_thorium), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_thorium), new ItemStack[] {
new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.nugget_u238, 1),
new ItemStack(ModItems.nugget_th232, 1), new ItemStack(ModItems.nugget_th232, 1),
new ItemStack(ModItems.nugget_u233, 3), new ItemStack(ModItems.nugget_u233, 3),
new ItemStack(ModItems.nuclear_waste_tiny, 1) }); new ItemStack(ModItems.nuclear_waste_tiny, 1) });
recipes.put(new ComparableStack(ModItems.waste_mox), new ItemStack[] {
new ItemStack(ModItems.nugget_pu_mix, 1),
new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nugget_ra226, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
recipes.put(new ComparableStack(ModItems.waste_plutonium), new ItemStack[] {
new ItemStack(ModItems.nugget_pu_mix, 1),
new ItemStack(ModItems.nugget_pu_mix, 1),
new ItemStack(ModItems.nugget_ra226, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
recipes.put(new ComparableStack(ModItems.waste_u233), new ItemStack[] {
new ItemStack(ModItems.nugget_u235, 1),
new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nugget_ra226, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
recipes.put(new ComparableStack(ModItems.waste_u235), new ItemStack[] {
new ItemStack(ModItems.nugget_pu238, 1),
new ItemStack(ModItems.nugget_neptunium, 1),
new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
recipes.put(new ComparableStack(ModItems.waste_schrabidium), new ItemStack[] {
new ItemStack(ModItems.nugget_beryllium, 2),
new ItemStack(ModItems.nugget_pu239, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
recipes.put(new ComparableStack(ModItems.powder_cloud), new ItemStack[] { recipes.put(new ComparableStack(ModItems.powder_cloud), new ItemStack[] {
new ItemStack(ModItems.powder_copper, 1), new ItemStack(ModItems.powder_copper, 1),

View File

@ -1477,6 +1477,10 @@ public class MachineRecipes {
case ETHANOL: case ETHANOL:
list.add(new ItemStack(ModItems.biomass, 6)); list.add(new ItemStack(ModItems.biomass, 6));
break; break;
case METH:
list.add(new ItemStack(Items.wheat, 1));
list.add(new ItemStack(Items.dye, 2, 3));
break;
default: default:
break; break;
} }
@ -1726,6 +1730,13 @@ public class MachineRecipes {
case OSMIRIDIUM_DEATH: case OSMIRIDIUM_DEATH:
input[0] = new FluidStack(1000, FluidType.ACID); input[0] = new FluidStack(1000, FluidType.ACID);
break; break;
case METH:
input[0] = new FluidStack(400, FluidType.LUBRICANT);
input[1] = new FluidStack(400, FluidType.ACID);
break;
case CO2:
input[0] = new FluidStack(1000, FluidType.GAS);
break;
default: default:
break; break;
} }
@ -1883,6 +1894,10 @@ public class MachineRecipes {
case TEL: case TEL:
output[0] = new ItemStack(ModItems.antiknock, 1); output[0] = new ItemStack(ModItems.antiknock, 1);
break; break;
case METH:
output[0] = new ItemStack(ModItems.chocolate, 2);
output[1] = new ItemStack(ModItems.chocolate, 2);
break;
default: default:
break; break;
} }
@ -2039,6 +2054,9 @@ public class MachineRecipes {
case ETHANOL: case ETHANOL:
output[0] = new FluidStack(1000, FluidType.ETHANOL); output[0] = new FluidStack(1000, FluidType.ETHANOL);
break; break;
case CO2:
output[0] = new FluidStack(1000, FluidType.CARBONDIOXIDE);
break;
default: default:
break; break;
} }

View File

@ -889,6 +889,7 @@ public class ModItems {
public static Item chocolate_milk; public static Item chocolate_milk;
public static Item coffee; public static Item coffee;
public static Item coffee_radium; public static Item coffee_radium;
public static Item chocolate;
public static Item cap_nuka; public static Item cap_nuka;
public static Item cap_quantum; public static Item cap_quantum;
public static Item cap_sparkle; public static Item cap_sparkle;
@ -1018,6 +1019,45 @@ public class ModItems {
public static Item rod_coolant; public static Item rod_coolant;
public static Item rod_dual_coolant; public static Item rod_dual_coolant;
public static Item rod_quad_coolant; public static Item rod_quad_coolant;
public static Item rod_zirnox_empty;
public static Item rod_zirnox_natural_uranium_fuel;
public static Item rod_zirnox_uranium_fuel;
public static Item rod_zirnox_th232;
public static Item rod_zirnox_thorium_fuel;
public static Item rod_zirnox_mox_fuel;
public static Item rod_zirnox_plutonium_fuel;
public static Item rod_zirnox_u233_fuel;
public static Item rod_zirnox_u235_fuel;
public static Item rod_zirnox_les_fuel;
public static Item rod_zirnox_lithium;
public static Item rod_zirnox_tritium;
public static Item rod_zirnox_natural_uranium_fuel_depleted;
public static Item rod_zirnox_uranium_fuel_depleted;
public static Item rod_zirnox_thorium_fuel_depleted;
public static Item rod_zirnox_mox_fuel_depleted;
public static Item rod_zirnox_plutonium_fuel_depleted;
public static Item rod_zirnox_u233_fuel_depleted;
public static Item rod_zirnox_u235_fuel_depleted;
public static Item rod_zirnox_les_fuel_depleted;
public static Item waste_natural_uranium;
public static Item waste_uranium;
public static Item waste_thorium;
public static Item waste_mox;
public static Item waste_plutonium;
public static Item waste_u233;
public static Item waste_u235;
public static Item waste_schrabidium;
public static Item waste_natural_uranium_hot;
public static Item waste_uranium_hot;
public static Item waste_thorium_hot;
public static Item waste_mox_hot;
public static Item waste_plutonium_hot;
public static Item waste_u233_hot;
public static Item waste_u235_hot;
public static Item waste_schrabidium_hot;
public static Item pile_rod_uranium; public static Item pile_rod_uranium;
public static Item pile_rod_plutonium; public static Item pile_rod_plutonium;
@ -1121,20 +1161,14 @@ public class ModItems {
public static Item rod_waste; public static Item rod_waste;
public static Item rod_dual_waste; public static Item rod_dual_waste;
public static Item rod_quad_waste; public static Item rod_quad_waste;
public static Item waste_uranium;
public static Item waste_thorium;
public static Item waste_plutonium;
public static Item waste_mox;
public static Item waste_schrabidium;
public static Item waste_uranium_hot;
public static Item waste_thorium_hot;
public static Item waste_plutonium_hot;
public static Item waste_mox_hot;
public static Item waste_schrabidium_hot;
public static Item debris_graphite; public static Item debris_graphite;
public static Item debris_metal; public static Item debris_metal;
public static Item debris_fuel; public static Item debris_fuel;
public static Item debris_concrete;
public static Item debris_exchanger;
public static Item debris_shrapnel;
public static Item debris_element;
public static Item containment_box; public static Item containment_box;
@ -3232,6 +3266,7 @@ public class ModItems {
radx = new ItemPill(0).setUnlocalizedName("radx").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radx"); radx = new ItemPill(0).setUnlocalizedName("radx").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radx");
siox = new ItemPill(0).setUnlocalizedName("siox").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":siox"); siox = new ItemPill(0).setUnlocalizedName("siox").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":siox");
xanax = new ItemPill(0).setUnlocalizedName("xanax").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":xanax_2"); xanax = new ItemPill(0).setUnlocalizedName("xanax").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":xanax_2");
chocolate = new ItemPill(0).setUnlocalizedName("chocolate").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":chocolate");
fmn = new ItemPill(0).setUnlocalizedName("fmn").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":tablet"); fmn = new ItemPill(0).setUnlocalizedName("fmn").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":tablet");
pirfenidone = new ItemPill(0).setUnlocalizedName("pirfenidone").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pirfenidone"); pirfenidone = new ItemPill(0).setUnlocalizedName("pirfenidone").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":pirfenidone");
five_htp = new ItemPill(0).setUnlocalizedName("five_htp").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":5htp"); five_htp = new ItemPill(0).setUnlocalizedName("five_htp").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":5htp");
@ -3444,21 +3479,60 @@ public class ModItems {
rod_quad_balefire = new ItemHazard(600000F).setUnlocalizedName("rod_quad_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_balefire"); rod_quad_balefire = new ItemHazard(600000F).setUnlocalizedName("rod_quad_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_balefire");
rod_quad_balefire_blazing = new ItemHazard(1000000F, true).setUnlocalizedName("rod_quad_balefire_blazing").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_balefire_blazing"); rod_quad_balefire_blazing = new ItemHazard(1000000F, true).setUnlocalizedName("rod_quad_balefire_blazing").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_balefire_blazing");
rod_thorium_fuel = new ItemFuelRod(ItemHazard.thf * ItemHazard.rod, false, 100000, 10).setUnlocalizedName("rod_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_thorium_fuel"); rod_thorium_fuel = new ItemFuelRod(100000, 10).setUnlocalizedName("rod_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_thorium_fuel");
rod_dual_thorium_fuel = new ItemFuelRod(ItemHazard.thf * ItemHazard.rod_dual, false, 100000, 20).setUnlocalizedName("rod_dual_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_thorium_fuel"); rod_dual_thorium_fuel = new ItemFuelRod(100000, 20).setUnlocalizedName("rod_dual_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_thorium_fuel");
rod_quad_thorium_fuel = new ItemFuelRod(ItemHazard.thf * ItemHazard.rod_quad, false, 100000, 40).setUnlocalizedName("rod_quad_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_thorium_fuel"); rod_quad_thorium_fuel = new ItemFuelRod(100000, 40).setUnlocalizedName("rod_quad_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_thorium_fuel");
rod_uranium_fuel = new ItemFuelRod(ItemHazard.uf * ItemHazard.rod, false, 100000, 15).setUnlocalizedName("rod_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_uranium_fuel"); rod_uranium_fuel = new ItemFuelRod(100000, 15).setUnlocalizedName("rod_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_uranium_fuel");
rod_dual_uranium_fuel = new ItemFuelRod(ItemHazard.uf * ItemHazard.rod_dual, false, 100000, 30).setUnlocalizedName("rod_dual_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_uranium_fuel"); rod_dual_uranium_fuel = new ItemFuelRod(100000, 30).setUnlocalizedName("rod_dual_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_uranium_fuel");
rod_quad_uranium_fuel = new ItemFuelRod(ItemHazard.uf * ItemHazard.rod_quad, false, 100000, 60).setUnlocalizedName("rod_quad_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_uranium_fuel"); rod_quad_uranium_fuel = new ItemFuelRod( 100000, 60).setUnlocalizedName("rod_quad_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_uranium_fuel");
rod_plutonium_fuel = new ItemFuelRod(ItemHazard.puf * ItemHazard.rod, false, 75000, 25).setUnlocalizedName("rod_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_plutonium_fuel"); rod_plutonium_fuel = new ItemFuelRod(75000, 25).setUnlocalizedName("rod_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_plutonium_fuel");
rod_dual_plutonium_fuel = new ItemFuelRod(ItemHazard.puf * ItemHazard.rod_dual, false, 75000, 50).setUnlocalizedName("rod_dual_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_plutonium_fuel"); rod_dual_plutonium_fuel = new ItemFuelRod(75000, 50).setUnlocalizedName("rod_dual_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_plutonium_fuel");
rod_quad_plutonium_fuel = new ItemFuelRod(ItemHazard.puf * ItemHazard.rod_quad, false, 75000, 100).setUnlocalizedName("rod_quad_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_plutonium_fuel"); rod_quad_plutonium_fuel = new ItemFuelRod(75000, 100).setUnlocalizedName("rod_quad_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_plutonium_fuel");
rod_mox_fuel = new ItemFuelRod(ItemHazard.mox * ItemHazard.rod, false, 150000, 10).setUnlocalizedName("rod_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_mox_fuel"); rod_mox_fuel = new ItemFuelRod(150000, 10).setUnlocalizedName("rod_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_mox_fuel");
rod_dual_mox_fuel = new ItemFuelRod(ItemHazard.mox * ItemHazard.rod_dual, false, 150000, 20).setUnlocalizedName("rod_dual_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_mox_fuel"); rod_dual_mox_fuel = new ItemFuelRod(150000, 20).setUnlocalizedName("rod_dual_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_mox_fuel");
rod_quad_mox_fuel = new ItemFuelRod(ItemHazard.mox * ItemHazard.rod_quad, false, 150000, 40).setUnlocalizedName("rod_quad_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_mox_fuel"); rod_quad_mox_fuel = new ItemFuelRod(150000, 40).setUnlocalizedName("rod_quad_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_mox_fuel");
rod_schrabidium_fuel = new ItemFuelRod(ItemHazard.saf * ItemHazard.rod, true, 500000, 250).setUnlocalizedName("rod_schrabidium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_schrabidium_fuel"); rod_schrabidium_fuel = new ItemFuelRod(500000, 250).setUnlocalizedName("rod_schrabidium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_schrabidium_fuel");
rod_dual_schrabidium_fuel = new ItemFuelRod(ItemHazard.saf * ItemHazard.rod_dual, true, 500000, 500).setUnlocalizedName("rod_dual_schrabidium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_schrabidium_fuel"); rod_dual_schrabidium_fuel = new ItemFuelRod(500000, 500).setUnlocalizedName("rod_dual_schrabidium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_schrabidium_fuel");
rod_quad_schrabidium_fuel = new ItemFuelRod(ItemHazard.saf * ItemHazard.rod_quad, true, 500000, 1000).setUnlocalizedName("rod_quad_schrabidium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_schrabidium_fuel"); rod_quad_schrabidium_fuel = new ItemFuelRod(500000, 1000).setUnlocalizedName("rod_quad_schrabidium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_schrabidium_fuel");
rod_zirnox_empty = new Item().setUnlocalizedName("rod_zirnox_empty").setMaxStackSize(64).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_empty");
rod_zirnox_natural_uranium_fuel = new ItemZirnoxRod(120000, 35).setUnlocalizedName("rod_zirnox_natural_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_natural_uranium_fuel");
rod_zirnox_uranium_fuel = new ItemZirnoxRod(100000, 50).setUnlocalizedName("rod_zirnox_uranium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel");
rod_zirnox_th232 = new ItemZirnoxBreedingRod(10000, 0).setUnlocalizedName("rod_zirnox_th232").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_th232");
rod_zirnox_thorium_fuel = new ItemZirnoxRod(120000, 30).setUnlocalizedName("rod_zirnox_thorium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel");
rod_zirnox_mox_fuel = new ItemZirnoxRod(85000, 60).setUnlocalizedName("rod_zirnox_mox_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_mox_fuel");
rod_zirnox_plutonium_fuel = new ItemZirnoxRod(75000, 75).setUnlocalizedName("rod_zirnox_plutonium_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_plutonium_fuel");
rod_zirnox_u233_fuel = new ItemZirnoxRod(100000, 70).setUnlocalizedName("rod_zirnox_u233_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u233_fuel");
rod_zirnox_u235_fuel = new ItemZirnoxRod(80000, 80).setUnlocalizedName("rod_zirnox_u235_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_u235_fuel");
rod_zirnox_les_fuel = new ItemZirnoxRod(200000, 150).setUnlocalizedName("rod_zirnox_les_fuel").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_les_fuel");
rod_zirnox_lithium = new ItemZirnoxBreedingRod(20000, 0).setUnlocalizedName("rod_zirnox_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":rod_zirnox_lithium");
rod_zirnox_tritium = new Item().setUnlocalizedName("rod_zirnox_tritium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_tritium");
rod_zirnox_natural_uranium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_natural_uranium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel_depleted");
rod_zirnox_uranium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_uranium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_uranium_fuel_depleted");
rod_zirnox_thorium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_thorium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_thorium_fuel_depleted");
rod_zirnox_mox_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_mox_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_mox_fuel_depleted");
rod_zirnox_plutonium_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_plutonium_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_plutonium_fuel_depleted");
rod_zirnox_u233_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_u233_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_u233_fuel_depleted");
rod_zirnox_u235_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_u235_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_u235_fuel_depleted");
rod_zirnox_les_fuel_depleted = new Item().setUnlocalizedName("rod_zirnox_les_fuel_depleted").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_zirnox_empty).setTextureName(RefStrings.MODID + ":rod_zirnox_les_fuel_depleted");
waste_natural_uranium = new ItemNuclearWaste().setUnlocalizedName("waste_natural_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium");
waste_uranium = new ItemNuclearWaste().setUnlocalizedName("waste_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium");
waste_thorium = new ItemNuclearWaste().setUnlocalizedName("waste_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_thorium");
waste_mox = new ItemNuclearWaste().setUnlocalizedName("waste_mox").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_mox");
waste_plutonium = new ItemNuclearWaste().setUnlocalizedName("waste_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plutonium");
waste_u233 = new ItemNuclearWaste().setUnlocalizedName("waste_u233").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium");
waste_u235 = new ItemNuclearWaste().setUnlocalizedName("waste_u235").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium");
waste_schrabidium = new ItemNuclearWaste().setUnlocalizedName("waste_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_schrabidium");
waste_natural_uranium_hot = new ItemNuclearWaste().setUnlocalizedName("waste_natural_uranium_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium_hot");
waste_uranium_hot = new ItemNuclearWaste().setUnlocalizedName("waste_uranium_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium_hot");
waste_thorium_hot = new ItemNuclearWaste().setUnlocalizedName("waste_thorium_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_thorium_hot");
waste_mox_hot = new ItemNuclearWaste().setUnlocalizedName("waste_mox_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_mox_hot");
waste_plutonium_hot = new ItemNuclearWaste().setUnlocalizedName("waste_plutonium_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plutonium_hot");
waste_u233_hot = new ItemNuclearWaste().setUnlocalizedName("waste_u233_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium_hot");
waste_u235_hot = new ItemNuclearWaste().setUnlocalizedName("waste_u235_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium_hot");
waste_schrabidium_hot = new ItemNuclearWaste().setUnlocalizedName("waste_schrabidium_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_schrabidium_hot");
rod_water = new ItemCustomLore().setUnlocalizedName("rod_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_water"); rod_water = new ItemCustomLore().setUnlocalizedName("rod_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_empty).setTextureName(RefStrings.MODID + ":rod_water");
rod_dual_water = new ItemCustomLore().setUnlocalizedName("rod_dual_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_water"); rod_dual_water = new ItemCustomLore().setUnlocalizedName("rod_dual_water").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_water");
@ -3735,16 +3809,6 @@ public class ModItems {
nuclear_waste_tiny = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_tiny"); nuclear_waste_tiny = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_tiny");
nuclear_waste_vitrified = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_vitrified").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_vitrified"); nuclear_waste_vitrified = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_vitrified").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_vitrified");
nuclear_waste_vitrified_tiny = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_vitrified_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_vitrified_tiny"); nuclear_waste_vitrified_tiny = new ItemNuclearWaste().setUnlocalizedName("nuclear_waste_vitrified_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nuclear_waste_vitrified_tiny");
waste_uranium = new ItemNuclearWaste().setUnlocalizedName("waste_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium");
waste_thorium = new ItemNuclearWaste().setUnlocalizedName("waste_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_thorium");
waste_plutonium = new ItemNuclearWaste().setUnlocalizedName("waste_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plutonium");
waste_mox = new ItemNuclearWaste().setUnlocalizedName("waste_mox").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_mox");
waste_schrabidium = new ItemNuclearWaste().setUnlocalizedName("waste_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_schrabidium");
waste_uranium_hot = new ItemNuclearWaste().setUnlocalizedName("waste_uranium_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_uranium_hot");
waste_thorium_hot = new ItemNuclearWaste().setUnlocalizedName("waste_thorium_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_thorium_hot");
waste_plutonium_hot = new ItemNuclearWaste().setUnlocalizedName("waste_plutonium_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_plutonium_hot");
waste_mox_hot = new ItemNuclearWaste().setUnlocalizedName("waste_mox_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_mox_hot");
waste_schrabidium_hot = new ItemNuclearWaste().setUnlocalizedName("waste_schrabidium_hot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":waste_schrabidium_hot");
scrap = new Item().setUnlocalizedName("scrap").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap"); scrap = new Item().setUnlocalizedName("scrap").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap");
scrap_nuclear = new Item().setUnlocalizedName("scrap_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_nuclear"); scrap_nuclear = new Item().setUnlocalizedName("scrap_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_nuclear");
containment_box = new ItemLeadBox().setUnlocalizedName("containment_box").setCreativeTab(null).setTextureName(RefStrings.MODID + ":containment_box"); containment_box = new ItemLeadBox().setUnlocalizedName("containment_box").setCreativeTab(null).setTextureName(RefStrings.MODID + ":containment_box");
@ -3767,10 +3831,14 @@ public class ModItems {
rod_dual_waste = new ItemHazard(30F).setUnlocalizedName("rod_dual_waste").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_waste"); rod_dual_waste = new ItemHazard(30F).setUnlocalizedName("rod_dual_waste").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_waste");
rod_quad_waste = new ItemHazard(60F).setUnlocalizedName("rod_quad_waste").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_waste"); rod_quad_waste = new ItemHazard(60F).setUnlocalizedName("rod_quad_waste").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_waste");
debris_graphite = new ItemHazard().addRadiation(70F).toItem().setUnlocalizedName("debris_graphite").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_graphite"); debris_graphite = new Item().setUnlocalizedName("debris_graphite").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_graphite");
debris_metal = new ItemHazard().addRadiation(5F).toItem().setUnlocalizedName("debris_metal").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_metal"); debris_metal = new Item().setUnlocalizedName("debris_metal").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_metal");
debris_fuel = new ItemHazard().addRadiation(1500F).addFire(15).toItem().setUnlocalizedName("debris_fuel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_fuel"); debris_fuel = new Item().setUnlocalizedName("debris_fuel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_fuel");
debris_concrete = new Item().setUnlocalizedName("debris_concrete").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_concrete");
debris_exchanger = new Item().setUnlocalizedName("debris_exchanger").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_exchanger");
debris_shrapnel =new Item().setUnlocalizedName("debris_shrapnel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_shrapnel");
debris_element =new Item().setUnlocalizedName("debris_element").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_element");
pellet_cluster = new ItemCustomLore().setUnlocalizedName("pellet_cluster").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_cluster"); pellet_cluster = new ItemCustomLore().setUnlocalizedName("pellet_cluster").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_cluster");
powder_fire = new ItemCustomLore().setUnlocalizedName("powder_fire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_red_phosphorus"); powder_fire = new ItemCustomLore().setUnlocalizedName("powder_fire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_red_phosphorus");
powder_ice = new ItemCustomLore().setUnlocalizedName("powder_ice").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ice"); powder_ice = new ItemCustomLore().setUnlocalizedName("powder_ice").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ice");
@ -4723,6 +4791,11 @@ public class ModItems {
robes_legs = new ArmorFSB(ArmorMaterial.CHAIN, 7, 2, RefStrings.MODID + ":textures/armor/robes_2.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_legs").setTextureName(RefStrings.MODID + ":robes_legs"); robes_legs = new ArmorFSB(ArmorMaterial.CHAIN, 7, 2, RefStrings.MODID + ":textures/armor/robes_2.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_legs").setTextureName(RefStrings.MODID + ":robes_legs");
robes_boots = new ArmorFSB(ArmorMaterial.CHAIN, 7, 3, RefStrings.MODID + ":textures/armor/robes_1.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_boots").setTextureName(RefStrings.MODID + ":robes_boots"); robes_boots = new ArmorFSB(ArmorMaterial.CHAIN, 7, 3, RefStrings.MODID + ":textures/armor/robes_1.png").cloneStats((ArmorFSB) robes_helmet).setUnlocalizedName("robes_boots").setTextureName(RefStrings.MODID + ":robes_boots");
initializeItem2();
}
public static void initializeItem2() {
ArmorMaterial aMatZirconium = EnumHelper.addArmorMaterial("HBM_ZIRCONIUM", 1000, new int[] { 2, 5, 3, 1 }, 100); ArmorMaterial aMatZirconium = EnumHelper.addArmorMaterial("HBM_ZIRCONIUM", 1000, new int[] { 2, 5, 3, 1 }, 100);
aMatZirconium.customCraftingMaterial = ModItems.ingot_zirconium; aMatZirconium.customCraftingMaterial = ModItems.ingot_zirconium;
zirconium_legs = new ArmorFSB(aMatZirconium, 7, 2, RefStrings.MODID + ":textures/armor/zirconium_2.png").setMod(0.0F).setUnlocalizedName("zirconium_legs").setTextureName(RefStrings.MODID + ":zirconium_legs"); zirconium_legs = new ArmorFSB(aMatZirconium, 7, 2, RefStrings.MODID + ":textures/armor/zirconium_2.png").setMod(0.0F).setUnlocalizedName("zirconium_legs").setTextureName(RefStrings.MODID + ":zirconium_legs");
@ -4869,11 +4942,6 @@ public class ModItems {
jackt = new ModArmor(MainRegistry.aMatSteel, 7, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt"); jackt = new ModArmor(MainRegistry.aMatSteel, 7, 1).setUnlocalizedName("jackt").setTextureName(RefStrings.MODID + ":jackt");
jackt2 = new ModArmor(MainRegistry.aMatSteel, 7, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2"); jackt2 = new ModArmor(MainRegistry.aMatSteel, 7, 1).setUnlocalizedName("jackt2").setTextureName(RefStrings.MODID + ":jackt2");
initializeItem2();
}
public static void initializeItem2() {
chainsaw = new ItemToolAbility(25, -0.05, MainRegistry.tMatChainsaw, EnumToolType.AXE) chainsaw = new ItemToolAbility(25, -0.05, MainRegistry.tMatChainsaw, EnumToolType.AXE)
.addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new ToolAbility.SilkAbility())
.addBreakAbility(new ToolAbility.RecursionAbility(5)) .addBreakAbility(new ToolAbility.RecursionAbility(5))
@ -6545,6 +6613,46 @@ public class ModItems {
GameRegistry.registerItem(rod_waste, rod_waste.getUnlocalizedName()); GameRegistry.registerItem(rod_waste, rod_waste.getUnlocalizedName());
GameRegistry.registerItem(rod_dual_waste, rod_dual_waste.getUnlocalizedName()); GameRegistry.registerItem(rod_dual_waste, rod_dual_waste.getUnlocalizedName());
GameRegistry.registerItem(rod_quad_waste, rod_quad_waste.getUnlocalizedName()); GameRegistry.registerItem(rod_quad_waste, rod_quad_waste.getUnlocalizedName());
//ZIRNOX parts
GameRegistry.registerItem(rod_zirnox_empty, rod_zirnox_empty.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_natural_uranium_fuel, rod_zirnox_natural_uranium_fuel.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_uranium_fuel, rod_zirnox_uranium_fuel.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_th232, rod_zirnox_th232.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_thorium_fuel, rod_zirnox_thorium_fuel.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_mox_fuel, rod_zirnox_mox_fuel.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_plutonium_fuel, rod_zirnox_plutonium_fuel.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_u233_fuel, rod_zirnox_u233_fuel.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_u235_fuel, rod_zirnox_u235_fuel.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_les_fuel, rod_zirnox_les_fuel.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_lithium, rod_zirnox_lithium.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_tritium, rod_zirnox_tritium.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_natural_uranium_fuel_depleted, rod_zirnox_natural_uranium_fuel_depleted.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_uranium_fuel_depleted, rod_zirnox_uranium_fuel_depleted.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_thorium_fuel_depleted, rod_zirnox_thorium_fuel_depleted.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_mox_fuel_depleted, rod_zirnox_mox_fuel_depleted.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_plutonium_fuel_depleted, rod_zirnox_plutonium_fuel_depleted.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_u233_fuel_depleted, rod_zirnox_u233_fuel_depleted.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_u235_fuel_depleted, rod_zirnox_u235_fuel_depleted.getUnlocalizedName());
GameRegistry.registerItem(rod_zirnox_les_fuel_depleted, rod_zirnox_les_fuel_depleted.getUnlocalizedName());
GameRegistry.registerItem(waste_natural_uranium_hot, waste_natural_uranium_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_uranium_hot, waste_uranium_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_thorium_hot, waste_thorium_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_mox_hot, waste_mox_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_plutonium_hot, waste_plutonium_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_u233_hot, waste_u233_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_u235_hot, waste_u235_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_schrabidium_hot, waste_schrabidium_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_natural_uranium, waste_natural_uranium.getUnlocalizedName());
GameRegistry.registerItem(waste_uranium, waste_uranium.getUnlocalizedName());
GameRegistry.registerItem(waste_thorium, waste_thorium.getUnlocalizedName());
GameRegistry.registerItem(waste_mox, waste_mox.getUnlocalizedName());
GameRegistry.registerItem(waste_plutonium, waste_plutonium.getUnlocalizedName());
GameRegistry.registerItem(waste_u233, waste_u233.getUnlocalizedName());
GameRegistry.registerItem(waste_u235, waste_u235.getUnlocalizedName());
GameRegistry.registerItem(waste_schrabidium, waste_schrabidium.getUnlocalizedName());
//Pile parts //Pile parts
GameRegistry.registerItem(pile_rod_uranium, pile_rod_uranium.getUnlocalizedName()); GameRegistry.registerItem(pile_rod_uranium, pile_rod_uranium.getUnlocalizedName());
@ -6621,20 +6729,14 @@ public class ModItems {
GameRegistry.registerItem(debris_graphite, debris_graphite.getUnlocalizedName()); GameRegistry.registerItem(debris_graphite, debris_graphite.getUnlocalizedName());
GameRegistry.registerItem(debris_metal, debris_metal.getUnlocalizedName()); GameRegistry.registerItem(debris_metal, debris_metal.getUnlocalizedName());
GameRegistry.registerItem(debris_fuel, debris_fuel.getUnlocalizedName()); GameRegistry.registerItem(debris_fuel, debris_fuel.getUnlocalizedName());
GameRegistry.registerItem(debris_concrete, debris_concrete.getUnlocalizedName());
GameRegistry.registerItem(debris_exchanger, debris_exchanger.getUnlocalizedName());
GameRegistry.registerItem(debris_shrapnel, debris_shrapnel.getUnlocalizedName());
GameRegistry.registerItem(debris_element, debris_element.getUnlocalizedName());
GameRegistry.registerItem(undefined, undefined.getUnlocalizedName()); GameRegistry.registerItem(undefined, undefined.getUnlocalizedName());
GameRegistry.registerItem(scrap, scrap.getUnlocalizedName()); GameRegistry.registerItem(scrap, scrap.getUnlocalizedName());
GameRegistry.registerItem(scrap_nuclear, scrap_nuclear.getUnlocalizedName()); GameRegistry.registerItem(scrap_nuclear, scrap_nuclear.getUnlocalizedName());
GameRegistry.registerItem(waste_uranium_hot, waste_uranium_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_thorium_hot, waste_thorium_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_plutonium_hot, waste_plutonium_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_mox_hot, waste_mox_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_schrabidium_hot, waste_schrabidium_hot.getUnlocalizedName());
GameRegistry.registerItem(waste_uranium, waste_uranium.getUnlocalizedName());
GameRegistry.registerItem(waste_thorium, waste_thorium.getUnlocalizedName());
GameRegistry.registerItem(waste_plutonium, waste_plutonium.getUnlocalizedName());
GameRegistry.registerItem(waste_mox, waste_mox.getUnlocalizedName());
GameRegistry.registerItem(waste_schrabidium, waste_schrabidium.getUnlocalizedName());
GameRegistry.registerItem(trinitite, trinitite.getUnlocalizedName()); GameRegistry.registerItem(trinitite, trinitite.getUnlocalizedName());
GameRegistry.registerItem(nuclear_waste_long, nuclear_waste_long.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste_long, nuclear_waste_long.getUnlocalizedName());
GameRegistry.registerItem(nuclear_waste_long_tiny, nuclear_waste_long_tiny.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste_long_tiny, nuclear_waste_long_tiny.getUnlocalizedName());
@ -7357,6 +7459,7 @@ public class ModItems {
GameRegistry.registerItem(siox, siox.getUnlocalizedName()); GameRegistry.registerItem(siox, siox.getUnlocalizedName());
GameRegistry.registerItem(pill_iodine, pill_iodine.getUnlocalizedName()); GameRegistry.registerItem(pill_iodine, pill_iodine.getUnlocalizedName());
GameRegistry.registerItem(xanax, xanax.getUnlocalizedName()); GameRegistry.registerItem(xanax, xanax.getUnlocalizedName());
GameRegistry.registerItem(chocolate, chocolate.getUnlocalizedName());
GameRegistry.registerItem(fmn, fmn.getUnlocalizedName()); GameRegistry.registerItem(fmn, fmn.getUnlocalizedName());
GameRegistry.registerItem(pirfenidone, pirfenidone.getUnlocalizedName()); GameRegistry.registerItem(pirfenidone, pirfenidone.getUnlocalizedName());
GameRegistry.registerItem(five_htp, five_htp.getUnlocalizedName()); GameRegistry.registerItem(five_htp, five_htp.getUnlocalizedName());

View File

@ -61,6 +61,15 @@ public class ItemPill extends ItemFood {
float digamma = HbmLivingProps.getDigamma(player); float digamma = HbmLivingProps.getDigamma(player);
HbmLivingProps.setDigamma(player, Math.max(digamma - 0.5F, 0F)); HbmLivingProps.setDigamma(player, Math.max(digamma - 0.5F, 0F));
} }
if(this == ModItems.chocolate) {
if(rand.nextInt(25) == 0) {
player.attackEntityFrom(ModDamageSource.overdose, 1000);
}
player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 60 * 20, 3));
player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 60 * 20, 3));
player.addPotionEffect(new PotionEffect(Potion.jump.id, 60 * 20, 3));
}
if(this == ModItems.fmn) { if(this == ModItems.fmn) {
float digamma = HbmLivingProps.getDigamma(player); float digamma = HbmLivingProps.getDigamma(player);
@ -100,6 +109,9 @@ public class ItemPill extends ItemFood {
if(this == ModItems.fmn) { if(this == ModItems.fmn) {
list.add("Removes all DRX above 2,000mDRX"); list.add("Removes all DRX above 2,000mDRX");
} }
if(this == ModItems.chocolate) {
list.add("Radium Chocolate? Pretty sure this is just meth.");
}
if(this == ModItems.pirfenidone) { if(this == ModItems.pirfenidone) {
list.add("Removes all Pulmonary Fibrosis over 35%"); list.add("Removes all Pulmonary Fibrosis over 35%");
} }

View File

@ -105,7 +105,9 @@ public class ItemChemistryTemplate extends Item {
FRACKSOL, FRACKSOL,
HELIUM3, HELIUM3,
OSMIRIDIUM_DEATH, OSMIRIDIUM_DEATH,
ETHANOL; ETHANOL,
METH,
CO2;
public static EnumChemistryTemplate getEnum(int i) { public static EnumChemistryTemplate getEnum(int i) {
if(i < EnumChemistryTemplate.values().length) if(i < EnumChemistryTemplate.values().length)
@ -309,6 +311,10 @@ public class ItemChemistryTemplate extends Item {
return 240; return 240;
case ETHANOL: case ETHANOL:
return 50; return 50;
case METH:
return 30;
case CO2:
return 60;
default: default:
return 100; return 100;
} }

View File

@ -2,35 +2,29 @@ package com.hbm.items.machine;
import java.util.List; import java.util.List;
import com.hbm.items.special.ItemHazard;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
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;
import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.EnumChatFormatting;
public class ItemFuelRod extends ItemHazard { public class ItemFuelRod extends Item {
public int lifeTime; public int lifeTime;
public int heat; public int heat;
public ItemFuelRod(float radiation, boolean blinding, int life, int heat) { public ItemFuelRod(int life, int heat) {
super();
this.lifeTime = life; this.lifeTime = life;
this.heat = heat; this.heat = heat;
this.canRepair = false; this.canRepair = false;
this.addRadiation(radiation);
if(blinding)
this.addBlinding();
} }
@Override @Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
{
list.add(EnumChatFormatting.YELLOW + "[Reactor Fuel Rod]");
list.add(EnumChatFormatting.YELLOW + "[Reactor Fuel Rod]");
list.add(EnumChatFormatting.DARK_AQUA + " Generates " + heat + " heat per tick"); list.add(EnumChatFormatting.DARK_AQUA + " Generates " + heat + " heat per tick");
list.add(EnumChatFormatting.DARK_AQUA + " Lasts " + Library.getShortNumber(lifeTime) + " ticks"); list.add(EnumChatFormatting.DARK_AQUA + " Lasts " + Library.getShortNumber(lifeTime) + " ticks");
@ -38,6 +32,7 @@ public class ItemFuelRod extends ItemHazard {
} }
public static void setLifeTime(ItemStack stack, int time) { public static void setLifeTime(ItemStack stack, int time) {
if(!stack.hasTagCompound()) if(!stack.hasTagCompound())
stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound = new NBTTagCompound();
@ -45,6 +40,7 @@ public class ItemFuelRod extends ItemHazard {
} }
public static int getLifeTime(ItemStack stack) { public static int getLifeTime(ItemStack stack) {
if(!stack.hasTagCompound()) { if(!stack.hasTagCompound()) {
stack.stackTagCompound = new NBTTagCompound(); stack.stackTagCompound = new NBTTagCompound();
return 0; return 0;
@ -57,9 +53,7 @@ public class ItemFuelRod extends ItemHazard {
return true; return true;
} }
public double getDurabilityForDisplay(ItemStack stack) public double getDurabilityForDisplay(ItemStack stack) {
{
return (double)getLifeTime(stack) / (double)((ItemFuelRod)stack.getItem()).lifeTime; return (double)getLifeTime(stack) / (double)((ItemFuelRod)stack.getItem()).lifeTime;
} }
} }

View File

@ -0,0 +1,24 @@
package com.hbm.items.machine;
import java.util.List;
import com.hbm.lib.Library;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
public class ItemZirnoxBreedingRod extends ItemZirnoxRod {
public ItemZirnoxBreedingRod(int life, int heat) {
super(life, heat);
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
list.add(EnumChatFormatting.YELLOW + "[ZIRNOX Breeding Rod]");
list.add(EnumChatFormatting.DARK_AQUA + " Place next to fuel rods to breed");
list.add(EnumChatFormatting.DARK_AQUA + " Lasts " + Library.getShortNumber(lifeTime) + " ticks");
}
}

View File

@ -0,0 +1,24 @@
package com.hbm.items.machine;
import java.util.List;
import com.hbm.lib.Library;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
public class ItemZirnoxRod extends ItemFuelRod {
public ItemZirnoxRod(int life, int heat) {
super(life, heat);
}
@Override
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) {
list.add(EnumChatFormatting.YELLOW + "[ZIRNOX Fuel Rod]");
list.add(EnumChatFormatting.DARK_AQUA + " Generates " + heat + " heat per tick");
list.add(EnumChatFormatting.DARK_AQUA + " Lasts " + Library.getShortNumber(lifeTime) + " ticks");
}
}

View File

@ -51,6 +51,7 @@ public class ModDamageSource extends DamageSource {
public static DamageSource blacklung = (new DamageSource("blacklung")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource blacklung = (new DamageSource("blacklung")).setDamageIsAbsolute().setDamageBypassesArmor();
public static DamageSource mku = (new DamageSource("mku")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource mku = (new DamageSource("mku")).setDamageIsAbsolute().setDamageBypassesArmor();
public static DamageSource vacuum = (new DamageSource("vacuum")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource vacuum = (new DamageSource("vacuum")).setDamageIsAbsolute().setDamageBypassesArmor();
public static DamageSource overdose = (new DamageSource("overdose")).setDamageIsAbsolute().setDamageBypassesArmor();
public static final String s_bullet = "revolverBullet"; public static final String s_bullet = "revolverBullet";
public static final String s_emplacer = "chopperBullet"; public static final String s_emplacer = "chopperBullet";

View File

@ -211,6 +211,9 @@ public class ClientProxy extends ServerProxy {
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSLimiter.class, new RenderAMSLimiter()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSLimiter.class, new RenderAMSLimiter());
//ZIRNOX
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorZirnox.class, new RenderZirnox());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityZirnoxDestroyed.class, new RenderZirnoxDestroyed());
//DFC //DFC
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCoreEmitter.class, new RenderCoreComponent()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCoreEmitter.class, new RenderCoreComponent());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCoreReceiver.class, new RenderCoreComponent()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCoreReceiver.class, new RenderCoreComponent());
@ -466,6 +469,7 @@ public class ClientProxy extends ServerProxy {
RenderingRegistry.registerEntityRenderingHandler(EntityEMP.class, new RenderEmpty()); RenderingRegistry.registerEntityRenderingHandler(EntityEMP.class, new RenderEmpty());
RenderingRegistry.registerEntityRenderingHandler(EntityBeamVortex.class, new RenderVortexBeam()); RenderingRegistry.registerEntityRenderingHandler(EntityBeamVortex.class, new RenderVortexBeam());
RenderingRegistry.registerEntityRenderingHandler(EntityRBMKDebris.class, new RenderRBMKDebris()); RenderingRegistry.registerEntityRenderingHandler(EntityRBMKDebris.class, new RenderRBMKDebris());
RenderingRegistry.registerEntityRenderingHandler(EntityZirnoxDebris.class, new RenderZirnoxDebris());
//grenades //grenades
RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeGeneric.class, new RenderSnowball(ModItems.grenade_generic)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeGeneric.class, new RenderSnowball(ModItems.grenade_generic));
RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeStrong.class, new RenderSnowball(ModItems.grenade_strong)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeStrong.class, new RenderSnowball(ModItems.grenade_strong));
@ -1420,6 +1424,10 @@ public class ClientProxy extends ServerProxy {
Minecraft.getMinecraft().effectRenderer.addEffect(fx); Minecraft.getMinecraft().effectRenderer.addEffect(fx);
} }
if("deadleaf".equals(type)) {
Minecraft.getMinecraft().effectRenderer.addEffect(new ParticleDeadLeaf(man, world, x, y, z));
}
if("anim".equals(type)) { if("anim".equals(type)) {
if("crucible".equals(data.getString("mode")) && player.getHeldItem() != null) { if("crucible".equals(data.getString("mode")) && player.getHeldItem() != null) {

View File

@ -465,6 +465,7 @@ public class MainRegistry {
EntityRegistry.registerModEntity(EntitySpear.class, "entity_digamma_spear", 158, this, 1000, 1, true); EntityRegistry.registerModEntity(EntitySpear.class, "entity_digamma_spear", 158, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityMissileVolcano.class, "entity_missile_volcano", 159, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityMissileVolcano.class, "entity_missile_volcano", 159, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityMissileShuttle.class, "entity_missile_shuttle", 160, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityMissileShuttle.class, "entity_missile_shuttle", 160, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityZirnoxDebris.class, "entity_zirnox_debris", 161, this, 1000, 1, true);
EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00);
EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd);

View File

@ -263,6 +263,10 @@ public class ResourceManager {
public static final IModelCustom spider = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/blockspider.obj")); public static final IModelCustom spider = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/blockspider.obj"));
public static final IModelCustom ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/ufo.obj")); public static final IModelCustom ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/ufo.obj"));
//ZIRNOX
public static final IModelCustom zirnox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox.obj"));
public static final IModelCustom zirnox_destroyed = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox_destroyed.obj"));
//Belt //Belt
public static final IModelCustom arrow = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/arrow.obj")); public static final IModelCustom arrow = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/arrow.obj"));
@ -551,6 +555,10 @@ public class ResourceManager {
public static final ResourceLocation iou = new ResourceLocation(RefStrings.MODID, "textures/entity/iou.png"); public static final ResourceLocation iou = new ResourceLocation(RefStrings.MODID, "textures/entity/iou.png");
public static final ResourceLocation spider_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/blockspider.png"); public static final ResourceLocation spider_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/blockspider.png");
public static final ResourceLocation ufo_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/ufo.png"); public static final ResourceLocation ufo_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/ufo.png");
//ZIRNOX
public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png");
public static final ResourceLocation zirnox_destroyed_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox_destroyed.png");

View File

@ -18,6 +18,7 @@ import com.hbm.tileentity.machine.TileEntityMachineReactorLarge;
import com.hbm.tileentity.machine.TileEntityMachineReactorSmall; import com.hbm.tileentity.machine.TileEntityMachineReactorSmall;
import com.hbm.tileentity.machine.TileEntityRadioRec; import com.hbm.tileentity.machine.TileEntityRadioRec;
import com.hbm.tileentity.machine.TileEntityReactorControl; import com.hbm.tileentity.machine.TileEntityReactorControl;
import com.hbm.tileentity.machine.TileEntityReactorZirnox;
import com.hbm.tileentity.machine.TileEntitySoyuzLauncher; import com.hbm.tileentity.machine.TileEntitySoyuzLauncher;
import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessage;
@ -282,6 +283,23 @@ public class AuxButtonPacket implements IMessage {
base.handleButtonPacket(m.value, m.id); base.handleButtonPacket(m.value, m.id);
} }
if(te instanceof TileEntityReactorZirnox) {
TileEntityReactorZirnox zirnox = (TileEntityReactorZirnox)te;
if(m.id == 0) {
zirnox.isOn = !zirnox.isOn;
}
if(m.id == 1) {
int fill = zirnox.carbonDioxide.getFill();
zirnox.carbonDioxide.setFill(fill - 1000);
if(fill < 0) {
zirnox.carbonDioxide.setFill(0);
}
}
}
//why make new packets when you can just abuse and uglify the existing ones? //why make new packets when you can just abuse and uglify the existing ones?
if(te == null && m.value == 999) { if(te == null && m.value == 999) {

View File

@ -0,0 +1,55 @@
package com.hbm.particle;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
@SideOnly(Side.CLIENT)
public class ParticleDeadLeaf extends EntityFX {
public ParticleDeadLeaf(TextureManager texman, World world, double x, double y, double z) {
super(world, x, y, z);
this.particleRed = 0.7F + world.rand.nextFloat() * 0.05F;
this.particleGreen = 0.2F + world.rand.nextFloat() * 0.05F;
this.particleBlue = 0.2F + world.rand.nextFloat() * 0.05F;
this.particleScale = 1F;
this.particleMaxAge = 100 + world.rand.nextInt(20);
this.particleGravity = 0.2F;
}
public int getFXLayer() {
return 1;
}
public void onUpdate() {
super.onUpdate();
if(!this.onGround) {
this.motionX += rand.nextGaussian() * 0.075D;
this.motionZ += rand.nextGaussian() * 0.075D;
}
}
@Override
public void renderParticle(Tessellator tess, float interp, float x, float y, float z, float tx, float tz) {
tess.setNormal(0.0F, 1.0F, 0.0F);
tess.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha);
float f10 = this.particleScale * 0.1F;
float f11 = (float) (this.prevPosX + (this.posX - this.prevPosX) * (double) interp - interpPosX);
float f12 = (float) (this.prevPosY + (this.posY - this.prevPosY) * (double) interp - interpPosY);
float f13 = (float) (this.prevPosZ + (this.posZ - this.prevPosZ) * (double) interp - interpPosZ);
tess.addVertexWithUV((double) (f11 - x * f10 - tx * f10), (double) (f12 - y * f10), (double) (f13 - z * f10 - tz * f10), (double) 0, (double) 0);
tess.addVertexWithUV((double) (f11 - x * f10 + tx * f10), (double) (f12 + y * f10), (double) (f13 - z * f10 + tz * f10), (double) 0, (double) 1);
tess.addVertexWithUV((double) (f11 + x * f10 + tx * f10), (double) (f12 + y * f10), (double) (f13 + z * f10 + tz * f10), (double) 1, (double) 1);
tess.addVertexWithUV((double)(f11 + x * f10 - tx * f10), (double)(f12 - y * f10), (double)(f13 + z * f10 - tz * f10), (double)1, (double)0);
}
}

View File

@ -84,7 +84,7 @@ public class ParticleRadiationFog extends EntityFX {
float alpha = 0; float alpha = 0;
alpha = (float) Math.sin(particleAge * Math.PI / (400F)) * 0.25F; alpha = (float) Math.sin(particleAge * Math.PI / (400F)) * 0.125F;
GL11.glColor4f(0.85F, 0.9F, 0.5F, alpha); GL11.glColor4f(0.85F, 0.9F, 0.5F, alpha);
GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_LIGHTING);

View File

@ -0,0 +1,52 @@
package com.hbm.render.entity.projectile;
import org.lwjgl.opengl.GL11;
import com.hbm.entity.projectile.EntityZirnoxDebris;
import com.hbm.entity.projectile.EntityZirnoxDebris.DebrisType;
import com.hbm.lib.RefStrings;
import com.hbm.main.ResourceManager;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
public class RenderZirnoxDebris extends Render {
//for fallback only
private static final ResourceLocation tex_base = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_side.png");
private static final ResourceLocation tex_element = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_element.png");
private static final ResourceLocation tex_blank = new ResourceLocation(RefStrings.MODID + ":textures/blocks/rbmk/rbmk_blank.png");
private static final ResourceLocation tex_graphite = new ResourceLocation(RefStrings.MODID + ":textures/blocks/block_graphite.png");
@Override
public void doRender(Entity entity, double x, double y, double z, float f0, float f1) {
GL11.glPushMatrix();
GL11.glTranslated(x, y + 0.125D, z);
EntityZirnoxDebris debris = (EntityZirnoxDebris) entity;
GL11.glRotatef(debris.getEntityId() % 360, 0, 1, 0); //rotate based on entity ID to add unique randomness
GL11.glRotatef(debris.lastRot + (debris.rot - debris.lastRot) * f1, 1, 1, 1);
DebrisType type = debris.getType();
switch(type) {
case BLANK: bindTexture(tex_blank); ResourceManager.deb_blank.renderAll(); break;
case ELEMENT: bindTexture(tex_element); ResourceManager.deb_element.renderAll(); break;
case SHRAPNEL: bindTexture(tex_blank); ResourceManager.deb_blank.renderAll(); break;
case GRAPHITE: bindTexture(tex_graphite); ResourceManager.deb_graphite.renderAll(); break;
case CONCRETE: bindTexture(tex_blank); ResourceManager.deb_lid.renderAll(); break;
case EXCHANGER: bindTexture(tex_blank); ResourceManager.deb_lid.renderAll(); break;
default: break;
}
GL11.glPopMatrix();
}
@Override
protected ResourceLocation getEntityTexture(Entity entity) {
return tex_base;
}
}

View File

@ -1157,6 +1157,17 @@ public class ItemRenderLibrary {
GL11.glShadeModel(GL11.GL_FLAT); GL11.glShadeModel(GL11.GL_FLAT);
} }
}); });
renderers.put(Item.getItemFromBlock(ModBlocks.reactor_zirnox), new ItemRenderBase( ) {
public void renderInventory() {
GL11.glScaled(2.8, 2.8, 2.8);
}
public void renderCommon() {
GL11.glScaled(0.75, 0.75, 0.75);
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.zirnox_tex); ResourceManager.zirnox.renderAll();
GL11.glShadeModel(GL11.GL_FLAT);
}});
} }
private static void bindTexture(ResourceLocation res) { private static void bindTexture(ResourceLocation res) {

View File

@ -0,0 +1,39 @@
package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
public class RenderZirnox extends TileEntitySpecialRenderer {
@Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE);
switch(tileEntity.getBlockMetadata() - 10) {
case 2:
GL11.glRotatef(270, 0F, 1F, 0F); break;
case 3:
GL11.glRotatef(90, 0F, 1F, 0F); break;
case 4:
GL11.glRotatef(180, 0F, 1F, 0F); break;
case 5:
GL11.glRotatef(0, 0F, 1F, 0F); break;
}
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.zirnox_tex);
ResourceManager.zirnox.renderAll();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
}

View File

@ -0,0 +1,38 @@
package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.main.ResourceManager;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
public class RenderZirnoxDestroyed extends TileEntitySpecialRenderer {
@Override
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) {
GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE);
switch(tileEntity.getBlockMetadata() - 10) {
case 2:
GL11.glRotatef(270, 0F, 1F, 0F); break;
case 3:
GL11.glRotatef(90, 0F, 1F, 0F); break;
case 4:
GL11.glRotatef(180, 0F, 1F, 0F); break;
case 5:
GL11.glRotatef(0, 0F, 1F, 0F); break;
}
GL11.glShadeModel(GL11.GL_SMOOTH);
bindTexture(ResourceManager.zirnox_destroyed_tex);
ResourceManager.zirnox_destroyed.renderAll();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glPopMatrix();
}
}

View File

@ -245,6 +245,9 @@ public class TileMappings {
map.put(TileEntityMachineFrackingTower.class, "tileentity_fracking_tower"); map.put(TileEntityMachineFrackingTower.class, "tileentity_fracking_tower");
map.put(TileEntityMachineGasFlare.class, "tileentity_gasflare"); map.put(TileEntityMachineGasFlare.class, "tileentity_gasflare");
map.put(TileEntityMachineRefinery.class, "tileentity_refinery"); map.put(TileEntityMachineRefinery.class, "tileentity_refinery");
map.put(TileEntityReactorZirnox.class, "tileentity_zirnox");
map.put(TileEntityZirnoxDestroyed.class, "tileentity_zirnox_destroyed");
} }
private static void putPile() { private static void putPile() {

View File

@ -77,9 +77,9 @@ public class TileEntityDeuteriumTower extends TileEntityDeuteriumExtractor imple
if(bb == null) { if(bb == null) {
bb = AxisAlignedBB.getBoundingBox( bb = AxisAlignedBB.getBoundingBox(
xCoord, xCoord - 1,
yCoord, yCoord,
zCoord, zCoord - 1,
xCoord + 2, xCoord + 2,
yCoord + 10, yCoord + 10,
zCoord + 2 zCoord + 2

View File

@ -0,0 +1,467 @@
package com.hbm.tileentity.machine;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ModBlocks;
import com.hbm.config.MobConfig;
import com.hbm.entity.projectile.EntityZirnoxDebris;
import com.hbm.entity.projectile.EntityZirnoxDebris.DebrisType;
import com.hbm.explosion.ExplosionNukeGeneric;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.handler.MultiblockHandlerXR;
import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidContainer;
import com.hbm.interfaces.IFluidSource;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemZirnoxBreedingRod;
import com.hbm.items.machine.ItemZirnoxRod;
import com.hbm.lib.Library;
import com.hbm.tileentity.TileEntityMachineBase;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection;
public class TileEntityReactorZirnox extends TileEntityMachineBase implements IFluidContainer, IFluidAcceptor, IFluidSource {
public int heat;
public static final int maxHeat = 100000;
public int pressure;
public static final int maxPressure = 100000;
public boolean isOn = false;
public List<IFluidAcceptor> list = new ArrayList<IFluidAcceptor>();
public byte age;
public FluidTank steam;
public FluidTank carbonDioxide;
public FluidTank water;
private static final HashMap<ComparableStack, ItemStack> fuelMap = new HashMap<ComparableStack, ItemStack>();
static {
fuelMap.put(new ComparableStack(ModItems.rod_zirnox_natural_uranium_fuel), new ItemStack(ModItems.rod_zirnox_natural_uranium_fuel_depleted));
fuelMap.put(new ComparableStack(ModItems.rod_zirnox_uranium_fuel), new ItemStack(ModItems.rod_zirnox_uranium_fuel_depleted));
fuelMap.put(new ComparableStack(ModItems.rod_zirnox_th232), new ItemStack(ModItems.rod_zirnox_thorium_fuel));
fuelMap.put(new ComparableStack(ModItems.rod_zirnox_thorium_fuel), new ItemStack(ModItems.rod_zirnox_thorium_fuel_depleted));
fuelMap.put(new ComparableStack(ModItems.rod_zirnox_mox_fuel), new ItemStack(ModItems.rod_zirnox_mox_fuel_depleted));
fuelMap.put(new ComparableStack(ModItems.rod_zirnox_plutonium_fuel), new ItemStack(ModItems.rod_zirnox_plutonium_fuel_depleted));
fuelMap.put(new ComparableStack(ModItems.rod_zirnox_u233_fuel), new ItemStack(ModItems.rod_zirnox_u233_fuel_depleted));
fuelMap.put(new ComparableStack(ModItems.rod_zirnox_u235_fuel), new ItemStack(ModItems.rod_zirnox_u235_fuel_depleted));
fuelMap.put(new ComparableStack(ModItems.rod_zirnox_les_fuel), new ItemStack(ModItems.rod_zirnox_les_fuel_depleted));
fuelMap.put(new ComparableStack(ModItems.rod_zirnox_lithium), new ItemStack(ModItems.rod_zirnox_tritium));
}
public TileEntityReactorZirnox() {
super(28);
steam = new FluidTank(FluidType.HOTSTEAM, 8000, 0);
carbonDioxide = new FluidTank(FluidType.CARBONDIOXIDE, 16000, 1);
water = new FluidTank(FluidType.WATER, 32000, 2);
}
@Override
public String getName() {
return "container.zirnox";
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
heat = nbt.getInteger("heat");
pressure = nbt.getInteger("pressure");
isOn = nbt.getBoolean("isOn");
steam.readFromNBT(nbt, "steam");
carbonDioxide.readFromNBT(nbt, "carbondioxide");
water.readFromNBT(nbt, "water");
}
@Override
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setInteger("heat", heat);
nbt.setInteger("pressure", pressure);
nbt.setBoolean("isOn", isOn);
steam.writeToNBT(nbt, "steam");
carbonDioxide.writeToNBT(nbt, "carbondioxide");
water.writeToNBT(nbt, "water");
}
public void networkUnpack(NBTTagCompound data) {
this.heat = data.getInteger("heat");
this.pressure = data.getInteger("pressure");
this.isOn = data.getBoolean("isOn");
}
public int getGaugeScaled(int i, int type) {
switch (type) {
case 0: return (steam.getFill() * i) / steam.getMaxFill();
case 1: return (carbonDioxide.getFill() * i) / carbonDioxide.getMaxFill();
case 2: return (water.getFill() * i) / water.getMaxFill();
case 3: return (this.heat * i) / maxHeat;
case 4: return (this.pressure * i) / maxPressure;
default: return 1;
}
}
private int[] getNeighbouringSlots(int id) {
switch(id) {
case 0:
return new int[] { 1, 7 };
case 1:
return new int[] { 0, 2, 8 };
case 2:
return new int[] { 1, 9 };
case 3:
return new int[] { 4, 10 };
case 4:
return new int[] { 3, 5, 11 };
case 5:
return new int[] { 4, 6, 12 };
case 6:
return new int[] { 1, 5, 13 };
case 7:
return new int[] { 0, 8, 14 };
case 8:
return new int[] { 1, 7, 9, 15 };
case 9:
return new int[] { 4, 8, 16};
case 10:
return new int[] { 11, 17 };
case 11:
return new int[] { 10, 12, 18 };
case 12:
return new int[] { 11, 13, 19 };
case 13:
return new int[] { 12, 20 };
case 14:
return new int[] { 7, 15, 21 };
case 15:
return new int[] { 8, 14, 16, 22 };
case 16:
return new int[] { 9, 15, 23 };
case 17:
return new int[] { 10, 18 };
case 18:
return new int[] { 11, 17, 19 };
case 19:
return new int[] { 12, 18, 20 };
case 20:
return new int[] { 13, 19 };
case 21:
return new int[] { 14, 22 };
case 22:
return new int[] { 15, 21, 23 };
case 23:
return new int[] { 16, 22 };
}
return null;
}
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
age++;
if (age >= 20) {
age = 0;
}
if(age == 9 || age == 19) {
fillFluidInit(steam.getTankType());
}
carbonDioxide.loadTank(24, 26, slots);
water.loadTank(25, 27, slots);
if(isOn) {
for(int i = 0; i < 24; i++) {
if(slots[i] != null) {
if(slots[i].getItem() instanceof ItemZirnoxRod)
decay(i);
else if(slots[i].getItem() == ModItems.meteorite_sword_bred)
slots[i] = new ItemStack(ModItems.meteorite_sword_irradiated);
}
}
}
this.pressure = (int) ((float)this.heat * (1.5 * this.carbonDioxide.getFill() / 16000));
if(this.heat > 0 && this.heat < maxHeat && this.water.getFill() > 0 && this.carbonDioxide.getFill() > 0) {
generateSteam();
this.heat -= (int) ((float)this.heat * (Math.sqrt(this.carbonDioxide.getFill()) / 1800));
}
checkIfMeltdown();
NBTTagCompound data = new NBTTagCompound();
data.setInteger("heat", heat);
data.setInteger("pressure", pressure);
data.setBoolean("isOn", isOn);
this.networkPack(data, 150);
steam.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
carbonDioxide.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
water.updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId);
}
}
private void generateSteam() {
// function of SHS produced per tick
// maxes out at heat% * tank capacity / 20
double Steam = (((double) heat / (double) maxHeat) * ((double) water.getMaxFill() / 50D));
double Water = Steam /= 10;
water.setFill(water.getFill() - (int) Math.ceil(Water));
steam.setFill(steam.getFill() + (int) Math.floor(Steam));
if(water.getFill() < 0)
water.setFill(0);
if(steam.getFill() > steam.getMaxFill())
steam.setFill(steam.getMaxFill());
}
private boolean hasFuelRod(int id) {
if(id > 23)
return false;
if(slots[id] != null) {
if(!(slots[id].getItem() instanceof ItemZirnoxBreedingRod)) {
return slots[id].getItem() instanceof ItemZirnoxRod;
}
}
return false;
}
private int getNeighbourCount(int id) {
int[] neighbours = this.getNeighbouringSlots(id);
if(neighbours == null)
return 0;
int count = 0;
for(int i = 0; i < neighbours.length; i++)
if(hasFuelRod(neighbours[i]))
count++;
return count;
}
// itemstack in slots[id] has to contain ItemZirnoxRod
private void decay(int id) {
if(id > 23)
return;
int decay = getNeighbourCount(id);
if(!(slots[id].getItem() instanceof ItemZirnoxBreedingRod)) {
decay = getNeighbourCount(id) + 1;
}
for(int i = 0; i < decay; i++) {
ItemZirnoxRod rod = ((ItemZirnoxRod) slots[id].getItem());
this.heat += rod.heat;
ItemZirnoxRod.setLifeTime(slots[id], ItemZirnoxRod.getLifeTime(slots[id]) + 1);
if(ItemZirnoxRod.getLifeTime(slots[id]) > ((ItemZirnoxRod) slots[id].getItem()).lifeTime) {
slots[id] = fuelMap.get(new ComparableStack(getStackInSlot(id)));
break;
}
}
}
private void checkIfMeltdown() {
if (this.pressure > maxPressure || this.heat > maxHeat) {
meltdown();
}
}
private void spawnDebris(DebrisType type) {
EntityZirnoxDebris debris = new EntityZirnoxDebris(worldObj, xCoord + 0.5D, yCoord + 4D, zCoord + 0.5D, type);
debris.motionX = worldObj.rand.nextGaussian() * 1.25D;
debris.motionZ = worldObj.rand.nextGaussian() * 1.25D;
debris.motionY = 0.01D + worldObj.rand.nextDouble() * 1.25D;
if(type == DebrisType.CONCRETE) {
debris.motionX *= 0.5D;
debris.motionY += 0.5D;
debris.motionZ *= 0.5D;
}
if(type == DebrisType.EXCHANGER) {
debris.motionX += 0.5D;
debris.motionY *= 0.1D;
debris.motionZ += 0.5D;
}
worldObj.spawnEntityInWorld(debris);
}
private void zirnoxDebris() {
for (int i = 0; i < 2; i++) {
spawnDebris(DebrisType.CONCRETE);
spawnDebris(DebrisType.EXCHANGER);
}
for (int i = 0; i < 20; i++) {
spawnDebris(DebrisType.BLANK);
spawnDebris(DebrisType.ELEMENT);
spawnDebris(DebrisType.SHRAPNEL);
spawnDebris(DebrisType.GRAPHITE);
}
}
private void meltdown() {
for(int i = 0; i < slots.length; i++) {
this.slots[i] = null;
}
int[] dimensions = {1, 0, 2, 2, 2, 2,};
worldObj.setBlock(this.xCoord, this.yCoord, this.zCoord, ModBlocks.zirnox_destroyed, this.getBlockMetadata(), 3);
MultiblockHandlerXR.fillSpace(worldObj, this.xCoord, this.yCoord, this.zCoord, dimensions, ModBlocks.zirnox_destroyed, ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset));
worldObj.playSoundEffect(xCoord, yCoord + 2, zCoord, "hbm:block.rbmk_explosion", 10.0F, 1.0F);
worldObj.createExplosion(null, this.xCoord, this.yCoord + 3, this.zCoord, 12.0F, true);
zirnoxDebris();
ExplosionNukeGeneric.waste(worldObj, this.xCoord, this.yCoord, this.zCoord, 35);
if(MobConfig.enableElementals) {
@SuppressWarnings("unchecked")
List<EntityPlayer> players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5).expand(100, 100, 100));
for(EntityPlayer player : players) {
player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).setBoolean("radMark", true);
}
}
}
@Override
public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) {
Library.transmitFluid(x, y, z, newTact, this, worldObj, type);
}
@Override
public void fillFluidInit(FluidType type) {
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
fillFluid(this.xCoord + rot.offsetX * 3, this.yCoord + 1, this.zCoord + rot.offsetZ * 3, getTact(), type);
fillFluid(this.xCoord + rot.offsetX * 3, this.yCoord + 3, this.zCoord + rot.offsetZ * 3, getTact(), type);
fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 1, this.zCoord + rot.offsetZ * -3, getTact(), type);
fillFluid(this.xCoord + rot.offsetX * -3, this.yCoord + 3, this.zCoord + rot.offsetZ * -3, getTact(), type);
}
public boolean getTact() {
if(age >= 0 && age < 10) {
return true;
}
return false;
}
public int getMaxFluidFill(FluidType type) {
switch (type) {
case HOTSTEAM: return steam.getMaxFill();
case CARBONDIOXIDE: return carbonDioxide.getMaxFill();
case WATER: return water.getMaxFill();
default: return 0;
}
}
public void setFluidFill(int i, FluidType type) {
switch (type) {
case HOTSTEAM: steam.setFill(i);
break;
case CARBONDIOXIDE: carbonDioxide.setFill(i);
break;
case WATER: water.setFill(i);
break;
default: break;
}
}
public int getFluidFill(FluidType type) {
switch (type) {
case HOTSTEAM: return steam.getFill();
case CARBONDIOXIDE: return carbonDioxide.getFill();
case WATER: return water.getFill();
default: return 0;
}
}
public void setFillstate(int fill, int index) {
switch (index) {
case 0: steam.setFill(fill);
break;
case 1: carbonDioxide.setFill(fill);
break;
case 2: water.setFill(fill);
break;
default: break;
}
}
public void setType(FluidType type, int index) {
switch (index) {
case 0: steam.setTankType(type);
break;
case 1: carbonDioxide.setTankType(type);
break;
case 2: water.setTankType(type);
break;
default: break;
}
}
public List<FluidTank> getTanks() {
List<FluidTank> list = new ArrayList<FluidTank>();
list.add(steam);
list.add(carbonDioxide);
list.add(water);
return list;
}
public List<IFluidAcceptor> getFluidList(FluidType type) {
return list;
}
public void clearFluidList(FluidType type) {
list.clear();
}
public AxisAlignedBB getRenderBoundingBox() {
return AxisAlignedBB.getBoundingBox(xCoord - 2, yCoord, zCoord - 2, xCoord + 3, yCoord + 5, zCoord + 3);
}
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
}

View File

@ -1,5 +1,7 @@
package com.hbm.tileentity.machine; package com.hbm.tileentity.machine;
import java.util.HashMap;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemRBMKRod; import com.hbm.items.machine.ItemRBMKRod;
@ -20,6 +22,18 @@ public class TileEntityWasteDrum extends TileEntity implements ISidedInventory {
private String customName; private String customName;
private static final HashMap<ItemStack, ItemStack> wasteMap = new HashMap<ItemStack, ItemStack>();
static {
wasteMap.put(new ItemStack(ModItems.waste_natural_uranium_hot), new ItemStack(ModItems.waste_natural_uranium));
wasteMap.put(new ItemStack(ModItems.waste_uranium_hot), new ItemStack(ModItems.waste_uranium));
wasteMap.put(new ItemStack(ModItems.waste_thorium_hot), new ItemStack(ModItems.waste_thorium));
wasteMap.put(new ItemStack(ModItems.waste_mox_hot), new ItemStack(ModItems.waste_mox));
wasteMap.put(new ItemStack(ModItems.waste_plutonium_hot), new ItemStack(ModItems.waste_plutonium));
wasteMap.put(new ItemStack(ModItems.waste_u233_hot), new ItemStack(ModItems.waste_u233));
wasteMap.put(new ItemStack(ModItems.waste_u235_hot), new ItemStack(ModItems.waste_u235));
wasteMap.put(new ItemStack(ModItems.waste_schrabidium_hot), new ItemStack(ModItems.waste_schrabidium));
}
public TileEntityWasteDrum() { public TileEntityWasteDrum() {
slots = new ItemStack[12]; slots = new ItemStack[12];
} }
@ -94,18 +108,7 @@ public class TileEntityWasteDrum extends TileEntity implements ISidedInventory {
public boolean isItemValidForSlot(int i, ItemStack itemStack) { public boolean isItemValidForSlot(int i, ItemStack itemStack) {
Item item = itemStack.getItem(); Item item = itemStack.getItem();
return wasteMap.keySet().contains(item) || item instanceof ItemRBMKRod;
if(item == ModItems.waste_mox_hot ||
item == ModItems.waste_plutonium_hot ||
item == ModItems.waste_schrabidium_hot ||
item == ModItems.waste_thorium_hot ||
item == ModItems.waste_uranium_hot)
return true;
if(item instanceof ItemRBMKRod)
return true;
return false;
} }
@Override @Override
@ -183,18 +186,11 @@ public class TileEntityWasteDrum extends TileEntity implements ISidedInventory {
Item item = itemStack.getItem(); Item item = itemStack.getItem();
if(item == ModItems.waste_mox ||
item == ModItems.waste_plutonium ||
item == ModItems.waste_schrabidium ||
item == ModItems.waste_thorium ||
item == ModItems.waste_uranium)
return true;
if(item instanceof ItemRBMKRod) { if(item instanceof ItemRBMKRod) {
return ItemRBMKRod.getCoreHeat(itemStack) < 50 && ItemRBMKRod.getHullHeat(itemStack) < 50; return ItemRBMKRod.getCoreHeat(itemStack) < 50 && ItemRBMKRod.getHullHeat(itemStack) < 50;
} else {
return wasteMap.containsValue(item);
} }
return false;
} }
@Override @Override
@ -233,16 +229,9 @@ public class TileEntityWasteDrum extends TileEntity implements ISidedInventory {
} else if(worldObj.rand.nextInt(r) == 0) { } else if(worldObj.rand.nextInt(r) == 0) {
if(slots[i].getItem() == ModItems.waste_uranium_hot) if(wasteMap.keySet().contains(slots[i].getItem())) {
slots[i] = new ItemStack(ModItems.waste_uranium); slots[i] = wasteMap.get(new ItemStack(slots[i].getItem()));
else if(slots[i].getItem() == ModItems.waste_plutonium_hot) }
slots[i] = new ItemStack(ModItems.waste_plutonium);
else if(slots[i].getItem() == ModItems.waste_thorium_hot)
slots[i] = new ItemStack(ModItems.waste_thorium);
else if(slots[i].getItem() == ModItems.waste_mox_hot)
slots[i] = new ItemStack(ModItems.waste_mox);
else if(slots[i].getItem() == ModItems.waste_schrabidium_hot)
slots[i] = new ItemStack(ModItems.waste_schrabidium);
} }
} }
} }

View File

@ -0,0 +1,76 @@
package com.hbm.tileentity.machine;
import java.util.List;
import com.hbm.main.MainRegistry;
import com.hbm.util.ContaminationUtil;
import com.hbm.util.ContaminationUtil.ContaminationType;
import com.hbm.util.ContaminationUtil.HazardType;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.DamageSource;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class TileEntityZirnoxDestroyed extends TileEntity {
@Override
public void updateEntity() {
if(!worldObj.isRemote) {
radiate(worldObj, this.xCoord, this.yCoord, this.zCoord);
}
}
private void radiate(World world, int x, int y, int z) {
float rads = 500000F;
double range = 100D;
List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x + 0.5, y + 0.5, z + 0.5, x + 0.5, y + 0.5, z + 0.5).expand(range, range, range));
for(EntityLivingBase e : entities) {
Vec3 vec = Vec3.createVectorHelper(e.posX - (x + 0.5), (e.posY + e.getEyeHeight()) - (y + 0.5), e.posZ - (z + 0.5));
double len = vec.lengthVector();
vec = vec.normalize();
float res = 0;
for(int i = 1; i < len; i++) {
int ix = (int)Math.floor(x + 0.5 + vec.xCoord * i);
int iy = (int)Math.floor(y + 0.5 + vec.yCoord * i);
int iz = (int)Math.floor(z + 0.5 + vec.zCoord * i);
res += world.getBlock(ix, iy, iz).getExplosionResistance(null);
}
if(res < 1)
res = 1;
float eRads = rads;
eRads /= (float)res;
eRads /= (float)(len * len);
ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, eRads);
if(len < 5) {
e.attackEntityFrom(DamageSource.onFire, 2);
}
}
}
public AxisAlignedBB getRenderBoundingBox() {
return AxisAlignedBB.getBoundingBox(xCoord - 2, yCoord, zCoord - 2, xCoord + 3, yCoord + 1, zCoord + 3);
}
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared() {
return 65536.0D;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 481 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 B

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 342 B

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 B

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 357 B

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 384 B

After

Width:  |  Height:  |  Size: 516 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 357 B

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 B

After

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B