diff --git a/src/main/java/assets/hbm/textures/blocks/block_plating_tier2.png b/src/main/java/assets/hbm/textures/blocks/block_plating_tier2.png deleted file mode 100644 index 4a68fde13..000000000 Binary files a/src/main/java/assets/hbm/textures/blocks/block_plating_tier2.png and /dev/null differ diff --git a/src/main/java/assets/hbm/textures/blocks/block_plating_tier5.png b/src/main/java/assets/hbm/textures/blocks/block_plating_tier5.png deleted file mode 100644 index ba73ebb25..000000000 Binary files a/src/main/java/assets/hbm/textures/blocks/block_plating_tier5.png and /dev/null differ diff --git a/src/main/java/assets/hbm/textures/blocks/hadron_access.png b/src/main/java/assets/hbm/textures/blocks/hadron_access.png new file mode 100644 index 000000000..8fda7ca98 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/hadron_access.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/coil_alloy.png b/src/main/java/assets/hbm/textures/blocks/hadron_coil_alloy.png similarity index 100% rename from src/main/java/assets/hbm/textures/blocks/coil_alloy.png rename to src/main/java/assets/hbm/textures/blocks/hadron_coil_alloy.png diff --git a/src/main/java/assets/hbm/textures/blocks/coil_base.png b/src/main/java/assets/hbm/textures/blocks/hadron_coil_base.png similarity index 100% rename from src/main/java/assets/hbm/textures/blocks/coil_base.png rename to src/main/java/assets/hbm/textures/blocks/hadron_coil_base.png diff --git a/src/main/java/assets/hbm/textures/blocks/coil_schrabidium.png b/src/main/java/assets/hbm/textures/blocks/hadron_coil_schrabidium.png similarity index 100% rename from src/main/java/assets/hbm/textures/blocks/coil_schrabidium.png rename to src/main/java/assets/hbm/textures/blocks/hadron_coil_schrabidium.png diff --git a/src/main/java/assets/hbm/textures/blocks/coil_starmetal.png b/src/main/java/assets/hbm/textures/blocks/hadron_coil_starmetal.png similarity index 100% rename from src/main/java/assets/hbm/textures/blocks/coil_starmetal.png rename to src/main/java/assets/hbm/textures/blocks/hadron_coil_starmetal.png diff --git a/src/main/java/assets/hbm/textures/blocks/hadron_core.png b/src/main/java/assets/hbm/textures/blocks/hadron_core.png new file mode 100644 index 000000000..4d58fc689 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/hadron_core.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/hadron_core_in.png b/src/main/java/assets/hbm/textures/blocks/hadron_core_in.png new file mode 100644 index 000000000..477cfb6fd Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/hadron_core_in.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/hadron_core_out.png b/src/main/java/assets/hbm/textures/blocks/hadron_core_out.png new file mode 100644 index 000000000..4f9cabbe7 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/hadron_core_out.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/hadron_diode.png b/src/main/java/assets/hbm/textures/blocks/hadron_diode.png new file mode 100644 index 000000000..a8355baf9 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/hadron_diode.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/particle_diode_in.png b/src/main/java/assets/hbm/textures/blocks/hadron_diode_in.png similarity index 100% rename from src/main/java/assets/hbm/textures/blocks/particle_diode_in.png rename to src/main/java/assets/hbm/textures/blocks/hadron_diode_in.png diff --git a/src/main/java/assets/hbm/textures/blocks/particle_diode_out.png b/src/main/java/assets/hbm/textures/blocks/hadron_diode_out.png similarity index 100% rename from src/main/java/assets/hbm/textures/blocks/particle_diode_out.png rename to src/main/java/assets/hbm/textures/blocks/hadron_diode_out.png diff --git a/src/main/java/assets/hbm/textures/blocks/block_plating_tier4.png b/src/main/java/assets/hbm/textures/blocks/hadron_plating.png similarity index 100% rename from src/main/java/assets/hbm/textures/blocks/block_plating_tier4.png rename to src/main/java/assets/hbm/textures/blocks/hadron_plating.png diff --git a/src/main/java/assets/hbm/textures/blocks/hadron_plating_black.png b/src/main/java/assets/hbm/textures/blocks/hadron_plating_black.png new file mode 100644 index 000000000..ea7718225 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/hadron_plating_black.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/block_plating_tier1.png b/src/main/java/assets/hbm/textures/blocks/hadron_plating_blue.png similarity index 100% rename from src/main/java/assets/hbm/textures/blocks/block_plating_tier1.png rename to src/main/java/assets/hbm/textures/blocks/hadron_plating_blue.png diff --git a/src/main/java/assets/hbm/textures/blocks/hadron_plating_glass.png b/src/main/java/assets/hbm/textures/blocks/hadron_plating_glass.png new file mode 100644 index 000000000..a87e07642 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/hadron_plating_glass.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/hadron_plating_striped.png b/src/main/java/assets/hbm/textures/blocks/hadron_plating_striped.png new file mode 100644 index 000000000..f514ed96f Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/hadron_plating_striped.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/hadron_plating_voltz.png b/src/main/java/assets/hbm/textures/blocks/hadron_plating_voltz.png new file mode 100644 index 000000000..19de970c1 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/hadron_plating_voltz.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/block_plating_tier3.png b/src/main/java/assets/hbm/textures/blocks/hadron_plating_yellow.png similarity index 100% rename from src/main/java/assets/hbm/textures/blocks/block_plating_tier3.png rename to src/main/java/assets/hbm/textures/blocks/hadron_plating_yellow.png diff --git a/src/main/java/assets/hbm/textures/blocks/hadron_power.png b/src/main/java/assets/hbm/textures/blocks/hadron_power.png new file mode 100644 index 000000000..357c38e03 Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/hadron_power.png differ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7ca4ce996..1c4d97454 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -18,7 +18,6 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockFalling; import net.minecraft.block.material.*; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; @@ -444,6 +443,21 @@ public class ModBlocks { public static Block machine_cyclotron; public static final int guiID_machine_cyclotron = 41; + + public static Block hadron_plating; + public static Block hadron_plating_blue; + public static Block hadron_plating_black; + public static Block hadron_plating_yellow; + public static Block hadron_plating_striped; + public static Block hadron_plating_voltz; + public static Block hadron_plating_glass; + public static Block hadron_coil_alloy; + public static Block hadron_coil_schrabidium; + public static Block hadron_coil_starmetal; + public static Block hadron_power; + public static Block hadron_diode; + public static Block hadron_access; + public static Block hadron_core; public static Block machine_electric_furnace_off; public static Block machine_electric_furnace_on; @@ -1175,6 +1189,32 @@ public class ModBlocks { machine_cyclotron = new MachineCyclotron(Material.iron).setBlockName("machine_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cyclotron"); machine_radgen = new MachineRadGen(Material.iron).setBlockName("machine_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_radgen"); + hadron_plating = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating"); + hadron_plating_blue = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_blue").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_blue"); + hadron_plating_black = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_black").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_black"); + hadron_plating_yellow = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_yellow").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_yellow"); + hadron_plating_striped = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_striped").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_striped"); + hadron_plating_voltz = new BlockHadronPlating(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_voltz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_voltz"); + hadron_plating_glass = new BlockNTMGlass(RefStrings.MODID + ":hadron_plating_glass", Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_plating_glass").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_plating_glass"); + hadron_coil_alloy = new BlockHadronCoil(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_alloy").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_alloy"); + hadron_coil_schrabidium = new BlockHadronCoil(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_schrabidium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_schrabidium"); + hadron_coil_starmetal = new BlockHadronCoil(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_coil_starmetal").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":hadron_coil_starmetal"); + hadron_diode = new BlockHadronDiode(Material.iron).setStepSound(Block.soundTypeMetal).setBlockName("hadron_diode").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + + /*public static Block hadron_plating; + public static Block hadron_plating_blue; + public static Block hadron_plating_black; + public static Block hadron_plating_yellow; + public static Block hadron_plating_striped; + public static Block hadron_plating_glass; + public static Block hadron_plating_voltz; + public static Block hadron_coil_alloy; + public static Block hadron_coil_schrabidium; + public static Block hadron_coil_starmetal; + public static Block hadron_power; + public static Block hadron_access; + public static Block hadron_core;*/ + machine_electric_furnace_off = new MachineElectricFurnace(false).setBlockName("machine_electric_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_electric_furnace_on = new MachineElectricFurnace(true).setBlockName("machine_electric_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); machine_arc_furnace_off = new MachineArcFurnace(false).setBlockName("machine_arc_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -1935,6 +1975,32 @@ public class ModBlocks { GameRegistry.registerBlock(machine_powerrtg, machine_powerrtg.getUnlocalizedName()); GameRegistry.registerBlock(machine_spp_bottom, machine_spp_bottom.getUnlocalizedName()); GameRegistry.registerBlock(machine_spp_top, machine_spp_top.getUnlocalizedName()); + + GameRegistry.registerBlock(hadron_plating, hadron_plating.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_blue, hadron_plating_blue.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_black, hadron_plating_black.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_yellow, hadron_plating_yellow.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_striped, hadron_plating_striped.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_glass, hadron_plating_glass.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_plating_voltz, hadron_plating_voltz.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_alloy, hadron_coil_alloy.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_schrabidium, hadron_coil_schrabidium.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_coil_starmetal, hadron_coil_starmetal.getUnlocalizedName()); + GameRegistry.registerBlock(hadron_diode, hadron_diode.getUnlocalizedName()); + + /*public static Block hadron_plating; + public static Block hadron_plating_blue; + public static Block hadron_plating_black; + public static Block hadron_plating_yellow; + public static Block hadron_plating_striped; + public static Block hadron_plating_glass; + public static Block hadron_plating_voltz; + public static Block hadron_coil_alloy; + public static Block hadron_coil_schrabidium; + public static Block hadron_coil_starmetal; + public static Block hadron_power; + public static Block hadron_access; + public static Block hadron_core;*/ GameRegistry.registerBlock(red_cable, red_cable.getUnlocalizedName()); GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java new file mode 100644 index 000000000..f33da6674 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronCoil.java @@ -0,0 +1,11 @@ +package com.hbm.blocks.machine; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class BlockHadronCoil extends Block { + + public BlockHadronCoil(Material mat) { + super(mat); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronDiode.java b/src/main/java/com/hbm/blocks/machine/BlockHadronDiode.java new file mode 100644 index 000000000..3e6c47bc4 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronDiode.java @@ -0,0 +1,81 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityHadronDiode; +import com.hbm.tileentity.machine.TileEntityHadronDiode.DiodeConfig; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockHadronDiode extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconIn; + @SideOnly(Side.CLIENT) + private IIcon iconOut; + + public BlockHadronDiode(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityHadronDiode(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconIn = iconRegister.registerIcon(RefStrings.MODID + ":hadron_diode_in"); + this.iconOut = iconRegister.registerIcon(RefStrings.MODID + ":hadron_diode_out"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":hadron_diode"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { + + TileEntityHadronDiode diode = (TileEntityHadronDiode) world.getTileEntity(x, y, z); + + DiodeConfig conf = diode.getConfig(side); + + switch(conf) { + case NONE: + return blockIcon; + case IN: + return iconIn; + case OUT: + default: + return iconOut; + } + } + + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float fx, float fy, float fz) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.screwdriver) { + + if(!world.isRemote) { + TileEntityHadronDiode diode = (TileEntityHadronDiode) world.getTileEntity(x, y, z); + int config = diode.getConfig(side).ordinal(); + config += 1; + config %= DiodeConfig.values().length; + diode.setConfig(side, config); + } + + world.markBlockForUpdate(x, y, z); + + return true; + } else { + return false; + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/BlockHadronPlating.java b/src/main/java/com/hbm/blocks/machine/BlockHadronPlating.java new file mode 100644 index 000000000..11298909e --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/BlockHadronPlating.java @@ -0,0 +1,12 @@ +package com.hbm.blocks.machine; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; + +public class BlockHadronPlating extends Block { + + public BlockHadronPlating(Material mat) { + super(mat); + } + +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 2633af301..7ab2521a7 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -3633,7 +3633,7 @@ public class ModItems { starmetal_legs = new ArmorFSB(MainRegistry.aMatStarmetal, 7, 2, RefStrings.MODID + ":textures/armor/starmetal_2.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_legs").setTextureName(RefStrings.MODID + ":starmetal_legs"); starmetal_boots = new ArmorFSB(MainRegistry.aMatStarmetal, 7, 3, RefStrings.MODID + ":textures/armor/starmetal_1.png").cloneStats((ArmorFSB) starmetal_helmet).setUnlocalizedName("starmetal_boots").setTextureName(RefStrings.MODID + ":starmetal_boots"); - bj_helmet = new ArmorBJ(MainRegistry.aMatStarmetal, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000).setMod(0.25F).setCap(7.5F) + bj_helmet = new ArmorBJ(MainRegistry.aMatStarmetal, 7, 0, RefStrings.MODID + ":textures/armor/starmetal_1.png", 10000000, 10000, 1000).setMod(0.25F).setCap(4.0F) .setFireproof(true) .enableThermalSight(true) .addEffect(new PotionEffect(Potion.jump.id, 20, 0)) diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 330ba8d28..957fba9b3 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -421,6 +421,7 @@ public class MainRegistry { GameRegistry.registerTileEntity(TileEntityTrappedBrick.class, "tileentity_trapped_brick"); GameRegistry.registerTileEntity(TileEntityPlasmaStruct.class, "tileentity_plasma_struct"); GameRegistry.registerTileEntity(TileEntityMachineLargeTurbine.class, "tileentity_industrial_turbine"); + GameRegistry.registerTileEntity(TileEntityHadronDiode.class, "tileentity_hadron_diode"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 8add90710..ef7d115bd 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -1,5 +1,6 @@ package com.hbm.main; +import java.lang.reflect.Field; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; @@ -42,6 +43,7 @@ import cpw.mods.fml.common.gameevent.PlayerEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; +import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.monster.EntityCreeper; @@ -60,6 +62,7 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntitySign; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.FoodStats; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -330,17 +333,17 @@ public class ModEventHandler entity.getEntityData().setFloat("hfr_radiation", 2500); if(eRad >= 1000) { - if(entity.attackEntityFrom(ModDamageSource.radiation, entity.getMaxHealth() * 100)) { - entity.getEntityData().setFloat("hfr_radiation", 0); - if(entity instanceof EntityPlayer) - ((EntityPlayer)entity).triggerAchievement(MainRegistry.achRadDeath); - } + entity.attackEntityFrom(ModDamageSource.radiation, 1000F); + entity.getEntityData().setFloat("hfr_radiation", 0); - //.attackEntityFrom ensures the recentlyHit var is set to enable drops. - //if the attack is canceled, then nothing will drop. - //that's what you get for trying to cheat death - entity.setHealth(0); + if(entity.getHealth() > 0) { + entity.setHealth(0); + entity.onDeath(ModDamageSource.radiation); + } + + if(entity instanceof EntityPlayer) + ((EntityPlayer)entity).triggerAchievement(MainRegistry.achRadDeath); } else if(eRad >= 800) { if(event.world.rand.nextInt(300) == 0) @@ -463,13 +466,18 @@ public class ModEventHandler /// BETA HEALTH START /// if(player.getUniqueID().toString().equals(Library.Dr_Nostalgia)) { - if(player.getFoodStats().getFoodLevel() < 10) { - player.getFoodStats().setFoodLevel(10); - } if(player.getFoodStats().getFoodLevel() > 10) { player.heal(player.getFoodStats().getFoodLevel() - 10); - player.getFoodStats().setFoodLevel(10); + } + + if(player.getFoodStats().getFoodLevel() != 10) { + + // Why can't you be normal?? + try { + Field food = ReflectionHelper.findField(FoodStats.class, "field_149334_b", "foodLevel"); + food.setInt(player.getFoodStats(), 10); + } catch(Exception e) { } } } /// BETA HEALTH END /// diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadronDiode.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronDiode.java new file mode 100644 index 000000000..d77c5339a --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadronDiode.java @@ -0,0 +1,107 @@ +package com.hbm.tileentity.machine; + +import com.hbm.tileentity.TileEntityTickingBase; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityHadronDiode extends TileEntityTickingBase { + + int age = 0; + boolean fatherIAskOfYouToUpdateMe = false; + + public DiodeConfig[] sides = new DiodeConfig[6]; + + @Override + public String getInventoryName() { + return ""; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + age++; + + if(age >= 20) { + age = 0; + sendSides(); + } + } else { + + if(fatherIAskOfYouToUpdateMe) { + fatherIAskOfYouToUpdateMe = false; + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + } + } + + public void sendSides() { + + NBTTagCompound data = new NBTTagCompound(); + + for(int i = 0; i < 6; i++) { + + if(sides[i] != null) + data.setInteger("" + i, sides[i].ordinal()); + } + + this.networkPack(data, 250); + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + + for(int i = 0; i < 6; i++) { + sides[i] = DiodeConfig.values()[nbt.getInteger("" + i)]; + } + + worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + } + + public DiodeConfig getConfig(int side) { + + if(ForgeDirection.getOrientation(side) == ForgeDirection.UNKNOWN) + return DiodeConfig.NONE; + + DiodeConfig conf = sides[side]; + + if(conf == null) + return DiodeConfig.NONE; + + return conf; + } + + public void setConfig(int side, int config) { + sides[side] = DiodeConfig.values()[config]; + this.markDirty(); + sendSides(); + } + + public static enum DiodeConfig { + NONE, + IN, + OUT + } + + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + for(int i = 0; i < 6; i++) { + sides[i] = DiodeConfig.values()[nbt.getInteger("side_" + i)]; + } + + fatherIAskOfYouToUpdateMe = true; + } + + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + for(int i = 0; i < 6; i++) { + + if(sides[i] != null) { + nbt.setInteger("side_" + i, sides[i].ordinal()); + } + } + } +} diff --git a/src/main/java/com/hbm/util/ContaminationUtil.java b/src/main/java/com/hbm/util/ContaminationUtil.java index 1d972769f..ebde485dc 100644 --- a/src/main/java/com/hbm/util/ContaminationUtil.java +++ b/src/main/java/com/hbm/util/ContaminationUtil.java @@ -42,6 +42,9 @@ public class ContaminationUtil { if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode) return; + if(e instanceof EntityPlayer && e.ticksExisted < 200) + return; + EntityLivingBase entity = (EntityLivingBase)e; f *= calculateRadiationMod(entity);