diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 08cc45eb9..607c203f1 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1153,7 +1153,6 @@ public class ModBlocks { public static Block dummy_block_igenerator; public static Block dummy_port_igenerator; - public static Block dummy_block_centrifuge; public static Block dummy_block_cyclotron; public static Block dummy_port_cyclotron; public static Block dummy_block_well; @@ -1700,7 +1699,7 @@ public class ModBlocks { machine_difurnace_rtg_off = new MachineDiFurnaceRTG(false).setBlockName("machine_difurnace_rtg_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_difurnace_rtg_on = new MachineDiFurnaceRTG(true).setBlockName("machine_difurnace_rtg_on").setHardness(5.0F).setResistance(10.0F).setLightLevel(2.0F).setCreativeTab(null); - machine_centrifuge = new MachineCentrifuge(Material.iron).setBlockName("machine_centrifuge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_centrifuge = new MachineCentrifuge(Material.iron).setBlockName("machine_centrifuge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_gascent = new MachineGasCent(Material.iron).setBlockName("machine_gascent").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_fel = new MachineFEL(Material.iron).setBlockName("machine_fel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_silex = new MachineSILEX(Material.iron).setBlockName("machine_silex").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2155,7 +2154,6 @@ public class ModBlocks { dummy_block_igenerator = new DummyBlockIGenerator(Material.iron, false).setBlockName("dummy_block_igenerator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_port_igenerator = new DummyBlockIGenerator(Material.iron, true).setBlockName("dummy_port_igenerator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); - dummy_block_centrifuge = new DummyBlockCentrifuge(Material.iron).setBlockName("dummy_block_centrifuge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); dummy_block_cyclotron = new DummyBlockCyclotron(Material.iron, false).setBlockName("dummy_block_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); dummy_port_cyclotron = new DummyBlockCyclotron(Material.iron, true).setBlockName("dummy_port_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_titanium"); dummy_block_well = new BlockGeneric(Material.iron).setBlockName("dummy_block_well").setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -3118,7 +3116,6 @@ public class ModBlocks { //Multiblock Dummy Blocks GameRegistry.registerBlock(dummy_block_igenerator, dummy_block_igenerator.getUnlocalizedName()); GameRegistry.registerBlock(dummy_port_igenerator, dummy_port_igenerator.getUnlocalizedName()); - GameRegistry.registerBlock(dummy_block_centrifuge, dummy_block_centrifuge.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_cyclotron, dummy_block_cyclotron.getUnlocalizedName()); GameRegistry.registerBlock(dummy_port_cyclotron, dummy_port_cyclotron.getUnlocalizedName()); GameRegistry.registerBlock(dummy_block_well, dummy_block_well.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasMeltdown.java b/src/main/java/com/hbm/blocks/gas/BlockGasMeltdown.java index 1525d379a..83088aa31 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasMeltdown.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasMeltdown.java @@ -83,7 +83,7 @@ public class BlockGasMeltdown extends BlockGasBase { ChunkRadiationManager.proxy.incrementRad(world, x, y, z, 5); } - if(rand.nextInt(400) == 0) { + if(rand.nextInt(350) == 0) { world.setBlockToAir(x, y, z); return; } diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockCentrifuge.java b/src/main/java/com/hbm/blocks/machine/DummyBlockCentrifuge.java deleted file mode 100644 index 6501acf0c..000000000 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockCentrifuge.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.hbm.blocks.machine; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; -import com.hbm.interfaces.IDummy; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; - -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -public class DummyBlockCentrifuge extends BlockContainer implements IDummy { - - public static boolean safeBreak = false; - - public DummyBlockCentrifuge(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityDummy(); - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int i) - { - if(!safeBreak) { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - //world.getBlock(a, b, c).breakBlock(world, a, b, c, block, i); - if(!world.isRemote) - world.func_147480_a(a, b, c, true); - } - } - world.removeTileEntity(x, y, z); - } - - @Override - public int getRenderType() { - return -1; - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return null; - } - - @Override - @SideOnly(Side.CLIENT) - public Item getItem(World world, int x, int y, int z) - { - return Item.getItemFromBlock(ModBlocks.machine_centrifuge); - } - - @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()) - { - TileEntity te = world.getTileEntity(x, y, z); - if(te != null && te instanceof TileEntityDummy) { - int a = ((TileEntityDummy)te).targetX; - int b = ((TileEntityDummy)te).targetY; - int c = ((TileEntityDummy)te).targetZ; - - TileEntityMachineCentrifuge entity = (TileEntityMachineCentrifuge) world.getTileEntity(a, b, c); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_centrifuge, world, a, b, c); - } - } - return true; - } else { - return false; - } - } - -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java b/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java index 62c3bd676..eb1964ab5 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java +++ b/src/main/java/com/hbm/blocks/machine/MachineCentrifuge.java @@ -2,12 +2,15 @@ package com.hbm.blocks.machine; import java.util.Random; +import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandler; import com.hbm.interfaces.IMultiblock; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; +import com.hbm.tileentity.machine.TileEntityMachineGasCent; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; @@ -25,143 +28,53 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class MachineCentrifuge extends BlockContainer implements IMultiblock { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; +public class MachineCentrifuge extends BlockDummyable implements IMultiblock { - public MachineCentrifuge(Material p_i45386_1_) { - super(p_i45386_1_); + public MachineCentrifuge(Material mat) { + super(mat); } @Override - public int getRenderType(){ - return -1; + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) + return new TileEntityMachineCentrifuge(); + if(meta >= 6) + return new TileEntityProxyCombo(false, true, true); + + return null; } - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconregister) { - this.blockIcon = iconregister.registerIcon(RefStrings.MODID + ":machine_centrifuge"); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineCentrifuge(); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_centrifuge); - } - - @Override - public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - - if(i == 0) - { - world.setBlockMetadataWithNotify(x, y, z, 2, 2); - } - if(i == 1) - { - world.setBlockMetadataWithNotify(x, y, z, 5, 2); - } - if(i == 2) - { - world.setBlockMetadataWithNotify(x, y, z, 3, 2); - } - if(i == 3) - { - world.setBlockMetadataWithNotify(x, y, z, 4, 2); - } - - if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.centDimension)) { - MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.centDimension, ModBlocks.dummy_block_centrifuge); - - } else - world.func_147480_a(x, y, z, true); - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineCentrifuge tileentityfurnace = (TileEntityMachineCentrifuge)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } - @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) - { + if(world.isRemote) { return true; - } else if(!player.isSneaking()) - { - TileEntityMachineCentrifuge entity = (TileEntityMachineCentrifuge) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_centrifuge, world, x, y, z); - } + } else if(!player.isSneaking()) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_centrifuge, world, pos[0], pos[1], pos[2]); return true; } else { return false; } } + + @Override + public int[] getDimensions() { + return new int[] {2, 0, 0, 0, 0, 0,}; + } + + @Override + public int getOffset() { + return 0; + } + + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + } } diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 2fa962c2b..d9931f20c 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -183,6 +183,7 @@ public class MineralRecipes { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_balefire_gold, 1), new Object[] { ModItems.billet_au198, ModItems.cell_antimatter, ModItems.pellet_charged }); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg), new Object[] { ModItems.billet_pu238, ModItems.billet_pu238, ModItems.billet_pu238, "plateIron" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_radium), new Object[] { ModItems.billet_ra226, ModItems.billet_ra226, ModItems.billet_ra226, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_weak), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_pu238, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_polonium), new Object[] { ModItems.billet_polonium, ModItems.billet_polonium, ModItems.billet_polonium, "plateIron" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.pellet_rtg_gold), new Object[] { ModItems.billet_au198, ModItems.billet_au198, ModItems.billet_au198, "plateIron" })); diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java index 9e6b97432..496ab0c32 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK3.java @@ -15,6 +15,7 @@ import com.hbm.interfaces.Spaghetti; import com.hbm.main.MainRegistry; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -115,6 +116,9 @@ public class EntityNukeExplosionMK3 extends Entity { if(!this.did) { + for(Object player : this.worldObj.playerEntities) + ((EntityPlayer)player).triggerAchievement(MainRegistry.achManhattan); + if(GeneralConfig.enableExtendedLogging && !worldObj.isRemote) MainRegistry.logger.log(Level.INFO, "[NUKE] Initialized mk3 explosion at " + posX + " / " + posY + " / " + posZ + " with strength " + destructionRange + "!"); diff --git a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java index ac3bc9816..3ccfd3eda 100644 --- a/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java +++ b/src/main/java/com/hbm/entity/logic/EntityNukeExplosionMK4.java @@ -11,6 +11,7 @@ import com.hbm.handler.radiation.ChunkRadiationManager; import com.hbm.main.MainRegistry; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -51,6 +52,9 @@ public class EntityNukeExplosionMK4 extends Entity { return; } + for(Object player : this.worldObj.playerEntities) + ((EntityPlayer)player).triggerAchievement(MainRegistry.achManhattan); + if(!worldObj.isRemote && fallout && explosion != null) { //float radMax = (float) (length / 2F * Math.pow(length, 2) / 35F); diff --git a/src/main/java/com/hbm/entity/mob/EntityFBI.java b/src/main/java/com/hbm/entity/mob/EntityFBI.java index f38bb9a14..d7ea8273d 100644 --- a/src/main/java/com/hbm/entity/mob/EntityFBI.java +++ b/src/main/java/com/hbm/entity/mob/EntityFBI.java @@ -159,7 +159,6 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob { canDestroy.add(ModBlocks.machine_epress); canDestroy.add(ModBlocks.dummy_block_assembler); canDestroy.add(ModBlocks.dummy_block_chemplant); - canDestroy.add(ModBlocks.dummy_block_centrifuge); canDestroy.add(ModBlocks.machine_crystallizer); canDestroy.add(ModBlocks.dummy_block_reactor_small); canDestroy.add(ModBlocks.dummy_port_reactor_small); diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 3e611edac..25453ca75 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -281,7 +281,14 @@ public class HazardRegistry { HazardSystem.register(billet_po210be, makeData(RADIATION, pobe * billet)); HazardSystem.register(billet_ra226be, makeData(RADIATION, rabe * billet)); HazardSystem.register(billet_pu238be, makeData(RADIATION, pube * billet)); - + + HazardSystem.register(pellet_rtg, new HazardData().addEntry(RADIATION, pu238 * billet * 3).addEntry(HOT, 5F)); + HazardSystem.register(pellet_rtg_radium, makeData(RADIATION, ra226 * billet * 3)); + HazardSystem.register(pellet_rtg_weak, makeData(RADIATION, (pu238 + (u238 * 2)) * billet)); + HazardSystem.register(pellet_rtg_polonium, new HazardData().addEntry(RADIATION, po210 * billet * 3).addEntry(HOT, 5F)); + HazardSystem.register(pellet_rtg_gold, new HazardData().addEntry(RADIATION, au198 * billet * 3).addEntry(HOT, 5F)); + HazardSystem.register(pellet_rtg_americium, makeData(RADIATION, am241 * billet * 3)); + registerRodRadiation(rod_th232, rod_dual_th232, rod_quad_th232, th232); registerRodRadiation(rod_uranium, rod_dual_uranium, rod_quad_uranium, u); registerRodRadiation(rod_u233, rod_dual_u233, rod_quad_u233, u233); diff --git a/src/main/java/com/hbm/inventory/SlotMachineOutput.java b/src/main/java/com/hbm/inventory/SlotMachineOutput.java index 06f19f093..4fb4a9423 100644 --- a/src/main/java/com/hbm/inventory/SlotMachineOutput.java +++ b/src/main/java/com/hbm/inventory/SlotMachineOutput.java @@ -1,7 +1,13 @@ package com.hbm.inventory; +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; public class SlotMachineOutput extends Slot { @@ -11,7 +17,52 @@ public class SlotMachineOutput extends Slot { } @Override - public boolean isItemValid(ItemStack p_75214_1_) { + public boolean isItemValid(ItemStack stack) { return false; } + + //ugly but nothing to be done + public static void checkAchievements(EntityPlayer player, ItemStack stack) { + Item item = stack.getItem(); + + if(item == Item.getItemFromBlock(ModBlocks.machine_chemplant)) + player.triggerAchievement(MainRegistry.achChemplant); + if(item == Item.getItemFromBlock(ModBlocks.concrete) || item == Item.getItemFromBlock(ModBlocks.concrete_asbestos)) + player.triggerAchievement(MainRegistry.achConcrete); + if(item == ModItems.ingot_polymer) + player.triggerAchievement(MainRegistry.achPolymer); + if(item == ModItems.ingot_desh) + player.triggerAchievement(MainRegistry.achDesh); + if(item == ModItems.gem_tantalium) + player.triggerAchievement(MainRegistry.achTantalum); + if(item == Item.getItemFromBlock(ModBlocks.machine_gascent)) + player.triggerAchievement(MainRegistry.achGasCent); + if(item == Item.getItemFromBlock(ModBlocks.machine_centrifuge)) + player.triggerAchievement(MainRegistry.achCentrifuge); + if(item == ModItems.ingot_schrabidium || item == ModItems.nugget_schrabidium) + player.triggerAchievement(MainRegistry.achSchrab); + if(item == Item.getItemFromBlock(ModBlocks.machine_crystallizer)) + player.triggerAchievement(MainRegistry.achAcidizer); + if(item == Item.getItemFromBlock(ModBlocks.machine_silex)) + player.triggerAchievement(MainRegistry.achSILEX); + if(item == ModItems.nugget_technetium) + player.triggerAchievement(MainRegistry.achTechnetium); + if(item == Item.getItemFromBlock(ModBlocks.watz_core)) + player.triggerAchievement(MainRegistry.achWatz); + if(item == ModItems.nugget_bismuth) + player.triggerAchievement(MainRegistry.achBismuth); + if(item == ModItems.nugget_am241 || item == ModItems.nugget_am242) + player.triggerAchievement(MainRegistry.achBreeding); + if(item == ModItems.missile_nuclear || item == ModItems.missile_nuclear_cluster || item == ModItems.missile_doomsday || item == ModItems.mp_warhead_10_nuclear || item == ModItems.mp_warhead_10_nuclear_large || item == ModItems.mp_warhead_15_nuclear || item == ModItems.mp_warhead_15_nuclear_shark || item == ModItems.mp_warhead_15_boxcar) + player.triggerAchievement(MainRegistry.achRedBalloons); + if(item == Item.getItemFromBlock(ModBlocks.struct_iter_core)) + player.triggerAchievement(MainRegistry.achFusion); + } + + @Override + public void onPickupFromSlot(EntityPlayer player, ItemStack stack) { + checkAchievements(player, stack); + + this.onSlotChanged(); + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java b/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java index 6c2006573..181422854 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCentrifuge.java @@ -48,6 +48,7 @@ public class ContainerCentrifuge extends Container { { ItemStack var5 = var4.getStack(); var3 = var5.copy(); + SlotMachineOutput.checkAchievements(p_82846_1_, var5); if (par2 <= 5) { if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java index 374d5aad2..35ca3c64b 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrystallizer.java @@ -44,6 +44,7 @@ public class ContainerCrystallizer extends Container { if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); + SlotMachineOutput.checkAchievements(p_82846_1_, var5); if(par2 <= diFurnace.getSizeInventory() - 1) { if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) { diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java index c087d0f5e..307b41fc0 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineAssembler.java @@ -65,6 +65,7 @@ private TileEntityMachineAssembler assembler; { ItemStack var5 = var4.getStack(); var3 = var5.copy(); + SlotMachineOutput.checkAchievements(p_82846_1_, var5); if (par2 <= 17) { if (!this.mergeItemStack(var5, 18, this.inventorySlots.size(), true)) diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java index 20941ea9f..62ea17d07 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineChemplant.java @@ -76,6 +76,7 @@ private TileEntityMachineChemplant nukeBoy; { ItemStack var5 = var4.getStack(); var3 = var5.copy(); + SlotMachineOutput.checkAchievements(p_82846_1_, var5); if (par2 <= 20) { if (!this.mergeItemStack(var5, 21, this.inventorySlots.size(), true)) diff --git a/src/main/java/com/hbm/inventory/container/ContainerSILEX.java b/src/main/java/com/hbm/inventory/container/ContainerSILEX.java index b8fdcbea8..c632230e1 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerSILEX.java +++ b/src/main/java/com/hbm/inventory/container/ContainerSILEX.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotMachineOutput; import com.hbm.items.ModItems; import com.hbm.tileentity.machine.TileEntitySILEX; @@ -26,12 +27,12 @@ public class ContainerSILEX extends Container { //Output this.addSlotToContainer(new Slot(te, 4, 116, 90)); //Output Queue - this.addSlotToContainer(new Slot(te, 5, 134, 72)); - this.addSlotToContainer(new Slot(te, 6, 152, 72)); - this.addSlotToContainer(new Slot(te, 7, 134, 90)); - this.addSlotToContainer(new Slot(te, 8, 152, 90)); - this.addSlotToContainer(new Slot(te, 9, 134, 108)); - this.addSlotToContainer(new Slot(te, 10, 152, 108)); + this.addSlotToContainer(new SlotMachineOutput(te, 5, 134, 72)); + this.addSlotToContainer(new SlotMachineOutput(te, 6, 152, 72)); + this.addSlotToContainer(new SlotMachineOutput(te, 7, 134, 90)); + this.addSlotToContainer(new SlotMachineOutput(te, 8, 152, 90)); + this.addSlotToContainer(new SlotMachineOutput(te, 9, 134, 108)); + this.addSlotToContainer(new SlotMachineOutput(te, 10, 152, 108)); for(int i = 0; i < 3; i++) { @@ -55,6 +56,7 @@ public class ContainerSILEX extends Container { if(var4 != null && var4.getHasStack()) { ItemStack var5 = var4.getStack(); var3 = var5.copy(); + SlotMachineOutput.checkAchievements(p_82846_1_, var5); if(par2 <= silex.getSizeInventory() - 1) { if(!this.mergeItemStack(var5, silex.getSizeInventory(), this.inventorySlots.size(), true)) { diff --git a/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java b/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java index 460207b92..05fe1f7a4 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java +++ b/src/main/java/com/hbm/inventory/gui/GUIReactorZirnox.java @@ -121,7 +121,7 @@ public class GUIReactorZirnox extends GuiInfoContainer { if(zirnox.water.getFill() <= 0) this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - if(zirnox.carbonDioxide.getFill() <= 8000) + if(zirnox.carbonDioxide.getFill() <= 4000) this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32 + 16, 16, 16, 7); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java b/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java index cdf37acbe..a96b12b6a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenBobmazon.java @@ -283,11 +283,11 @@ public class GUIScreenBobmazon extends GuiScreen { public enum Requirement { - STEEL(MainRegistry.bobMetalworks), - ASSEMBLY(MainRegistry.bobAssembly), - CHEMICS(MainRegistry.bobChemistry), - OIL(MainRegistry.bobOil), - NUCLEAR(MainRegistry.bobNuclear), + STEEL(MainRegistry.achBlastFurnace), + ASSEMBLY(MainRegistry.achAssembly), + CHEMICS(MainRegistry.achChemplant), + OIL(MainRegistry.achDesh), + NUCLEAR(MainRegistry.achTechnetium), HIDDEN(MainRegistry.bobHidden); private Requirement(Achievement achievement) { diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index b4402db62..415d7670c 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -1793,10 +1793,10 @@ public class MachineRecipes { output[1] = new ItemStack(ModItems.chocolate, 2); break; case DUCRETE: - output[0] = new ItemStack(ModBlocks.ducrete_smooth, 4); - output[1] = new ItemStack(ModBlocks.ducrete_smooth, 4); - output[2] = new ItemStack(ModBlocks.ducrete_smooth, 4); - output[3] = new ItemStack(ModBlocks.ducrete_smooth, 4); + output[0] = new ItemStack(ModBlocks.ducrete_smooth, 2); + output[1] = new ItemStack(ModBlocks.ducrete_smooth, 2); + output[2] = new ItemStack(ModBlocks.ducrete_smooth, 2); + output[3] = new ItemStack(ModBlocks.ducrete_smooth, 2); default: break; } diff --git a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java index ea72ee4a5..e435993b0 100644 --- a/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/ShredderRecipes.java @@ -311,6 +311,15 @@ public class ShredderRecipes { ShredderRecipes.setRecipe(new ItemStack(ModBlocks.bobblehead, 1, i), new ItemStack(ModItems.scrap_plastic, 1, type.scrap.ordinal())); } + /* + * Debris shredding + */ + ShredderRecipes.setRecipe(ModItems.debris_concrete, new ItemStack(ModItems.scrap_nuclear, 2)); + ShredderRecipes.setRecipe(ModItems.debris_shrapnel, new ItemStack(ModItems.powder_steel_tiny, 5)); + ShredderRecipes.setRecipe(ModItems.debris_exchanger, new ItemStack(ModItems.powder_steel, 3)); + ShredderRecipes.setRecipe(ModItems.debris_element, new ItemStack(ModItems.scrap_nuclear, 4)); + ShredderRecipes.setRecipe(ModItems.debris_metal, new ItemStack(ModItems.powder_steel_tiny, 3)); + /* * GC COMPAT */ diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index b63bcb4b0..ea9dd5937 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -697,6 +697,7 @@ public class ModItems { public static Item limiter; public static Item pellet_rtg; + public static Item pellet_rtg_radium; public static Item pellet_rtg_weak; public static Item pellet_rtg_polonium; public static Item pellet_rtg_actinium; @@ -3124,10 +3125,11 @@ public class ModItems { wiring_red_copper = new ItemWiring().setUnlocalizedName("wiring_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wiring_red_copper"); - pellet_rtg = new ItemRTGPellet(5).setUnlocalizedName("pellet_rtg").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg"); - pellet_rtg_weak = new ItemRTGPellet(2).setUnlocalizedName("pellet_rtg_weak").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_weak"); + pellet_rtg = new ItemRTGPellet(10).setUnlocalizedName("pellet_rtg").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg"); + pellet_rtg_radium = new ItemRTGPellet(3).setUnlocalizedName("pellet_rtg_radium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_radium"); + pellet_rtg_weak = new ItemRTGPellet(5).setUnlocalizedName("pellet_rtg_weak").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_weak"); pellet_rtg_polonium = new ItemRTGPellet(25).setUnlocalizedName("pellet_rtg_polonium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_polonium"); - pellet_rtg_actinium = new ItemRTGPellet(15).setUnlocalizedName("pellet_rtg_actinium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_actinium"); + pellet_rtg_actinium = new ItemRTGPellet(20).setUnlocalizedName("pellet_rtg_actinium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_actinium"); pellet_rtg_strontium = new ItemRTGPellet(15).setUnlocalizedName("pellet_rtg_strontium").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":pellet_rtg_strontium"); pellet_rtg_gold = new ItemRTGPellet(150).setUnlocalizedName("pellet_rtg_gold").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_gold"); pellet_rtg_americium = new ItemRTGPellet(15).setUnlocalizedName("pellet_rtg_americium").setCreativeTab(MainRegistry.controlTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pellet_rtg_americium"); @@ -6226,6 +6228,7 @@ public class ModItems { //Pellets GameRegistry.registerItem(pellet_rtg, pellet_rtg.getUnlocalizedName()); + GameRegistry.registerItem(pellet_rtg_radium, pellet_rtg_radium.getUnlocalizedName()); GameRegistry.registerItem(pellet_rtg_weak, pellet_rtg_weak.getUnlocalizedName()); GameRegistry.registerItem(pellet_rtg_polonium, pellet_rtg_polonium.getUnlocalizedName()); GameRegistry.registerItem(pellet_rtg_strontium, pellet_rtg_strontium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java index 24f1cb8ec..895fa3267 100644 --- a/src/main/java/com/hbm/items/machine/ItemRTGPellet.java +++ b/src/main/java/com/hbm/items/machine/ItemRTGPellet.java @@ -96,6 +96,7 @@ public class ItemRTGPellet extends Item implements IRadioisotopeFuel { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { super.addInformation(stack, player, list, bool); + list.add(I18nUtil.resolveKey(this.getUnlocalizedName() + ".desc")); IRadioisotopeFuel.addTooltip(list, stack, bool); } diff --git a/src/main/java/com/hbm/items/special/ItemCustomLore.java b/src/main/java/com/hbm/items/special/ItemCustomLore.java index 4124dcf9d..70274f8e5 100644 --- a/src/main/java/com/hbm/items/special/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/special/ItemCustomLore.java @@ -62,38 +62,6 @@ public class ItemCustomLore extends Item { list.add("That one's my favourite!"); } - if(this == ModItems.pellet_rtg) - { - if(MainRegistry.polaroidID == 11) - list.add("Contains ~100% Pu238 oxide."); - else - list.add("RTG fuel pellet for infinite energy! (almost)"); - } - - if(this == ModItems.pellet_rtg_weak) - { - if(MainRegistry.polaroidID == 11) - list.add("Meh."); - else - list.add("Cheaper and weaker pellet, now with more U238!"); - } - - if(this == ModItems.pellet_rtg_polonium) - { - if(MainRegistry.polaroidID == 11) - list.add("Polonium 4 U and me."); - else - list.add("More powderful RTG pellet, made from finest polonium!"); - } - - if(this == ModItems.pellet_rtg_gold) - { - if(MainRegistry.polaroidID == 11) - list.add("it's that spicy gold"); - else - list.add("Made from a rare, highly unstable gold isotope."); - } - if(this == ModItems.pellet_cluster) { list.add("Used in multi purpose bombs:"); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 46eef85f5..d689d5378 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -173,27 +173,16 @@ public class MainRegistry { public static Achievement achImpossible; public static Achievement achTOB; public static Achievement achFreytag; - public static Achievement achSelenium; public static Achievement achPotato; public static Achievement achC44; public static Achievement achC20_5; - public static Achievement achSpace; - public static Achievement achFOEQ; public static Achievement achFiend; public static Achievement achFiend2; - public static Achievement achSoyuz; public static Achievement achRadPoison; public static Achievement achRadDeath; public static Achievement achStratum; - public static Achievement achMeltdown; public static Achievement achOmega12; - public static Achievement achRadium; public static Achievement achSomeWounds; - public static Achievement bobMetalworks; - public static Achievement bobAssembly; - public static Achievement bobChemistry; - public static Achievement bobOil; - public static Achievement bobNuclear; public static Achievement bobHidden; public static Achievement horizonsStart; public static Achievement horizonsEnd; @@ -208,7 +197,39 @@ public class MainRegistry { public static Achievement digammaKnow; public static Achievement digammaKauaiMoho; public static Achievement digammaUpOnTop; - + + public static Achievement achBurnerPress; + public static Achievement achBlastFurnace; + public static Achievement achAssembly; + public static Achievement achSelenium; + public static Achievement achChemplant; + public static Achievement achConcrete; + public static Achievement achPolymer; + public static Achievement achDesh; + public static Achievement achTantalum; + public static Achievement achRedBalloons; + public static Achievement achManhattan; + public static Achievement achGasCent; + public static Achievement achCentrifuge; + public static Achievement achFOEQ; + public static Achievement achSoyuz; + public static Achievement achSpace; + public static Achievement achSchrab; + public static Achievement achAcidizer; + public static Achievement achRadium; + public static Achievement achTechnetium; + public static Achievement achZIRNOXBoom; + public static Achievement achChicagoPile; + public static Achievement achSILEX; + public static Achievement achWatz; + public static Achievement achWatzBoom; + public static Achievement achRBMK; + public static Achievement achRBMKBoom; + public static Achievement achBismuth; + public static Achievement achBreeding; + public static Achievement achFusion; + public static Achievement achMeltdown; + public static int generalOverride = 0; public static int polaroidID = 1; @@ -762,75 +783,86 @@ public class MainRegistry { @EventHandler public static void load(FMLInitializationEvent event) { - achSacrifice = new Achievement("achievement.sacrifice", "sacrifice", 0, -2, ModItems.burnt_bark, null).initIndependentStat().setSpecial().registerStat(); - achImpossible = new Achievement("achievement.impossible", "impossible", 2, -2, ModItems.nothing, null).initIndependentStat().setSpecial().registerStat(); - achTOB = new Achievement("achievement.tasteofblood", "tasteofblood", 0, 0, new ItemStack(ModItems.fluid_icon, 1, FluidType.ASCHRAB.getID()), null).initIndependentStat().setSpecial().registerStat(); + achSacrifice = new Achievement("achievement.sacrifice", "sacrifice", -3, 1, ModItems.burnt_bark, null).initIndependentStat().setSpecial().registerStat(); + achImpossible = new Achievement("achievement.impossible", "impossible", 18, 10, ModItems.nothing, null).initIndependentStat().setSpecial().registerStat(); + achTOB = new Achievement("achievement.tasteofblood", "tasteofblood", 3, 10, new ItemStack(ModItems.fluid_icon, 1, FluidType.ASCHRAB.getID()), null).initIndependentStat().setSpecial().registerStat(); achFreytag = new Achievement("achievement.freytag", "freytag", 0, -4, ModItems.gun_mp40, null).initIndependentStat().setSpecial().registerStat(); - achSelenium = new Achievement("achievement.selenium", "selenium", -2, -4, ModItems.ingot_starmetal, null).initIndependentStat().setSpecial().registerStat(); achPotato = new Achievement("achievement.potato", "potato", -2, -2, ModItems.battery_potatos, null).initIndependentStat().setSpecial().registerStat(); achC44 = new Achievement("achievement.c44", "c44", 2, -4, ModItems.gun_revolver_pip, null).initIndependentStat().setSpecial().registerStat(); - achC20_5 = new Achievement("achievement.c20_5", "c20_5", 4, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().setSpecial().registerStat(); - achSpace = new Achievement("achievement.space", "space", 4, -2, ModItems.missile_carrier, null).initIndependentStat().setSpecial().registerStat(); - achFOEQ = new Achievement("achievement.FOEQ", "FOEQ", 4, 0, ModItems.sat_foeq, null).initIndependentStat().setSpecial().registerStat(); - achFiend = new Achievement("achievement.fiend", "fiend", 6, -2, ModItems.shimmer_sledge, null).initIndependentStat().setSpecial().registerStat(); - achFiend2 = new Achievement("achievement.fiend2", "fiend2", 6, 0, ModItems.shimmer_axe, null).initIndependentStat().setSpecial().registerStat(); - achSoyuz = new Achievement("achievement.soyuz", "soyuz", -2, 0, Items.baked_potato, null).initIndependentStat().setSpecial().registerStat(); + achC20_5 = new Achievement("achievement.c20_5", "c20_5", 3, 6, ModItems.gun_dampfmaschine, null).initIndependentStat().setSpecial().registerStat(); + achFiend = new Achievement("achievement.fiend", "fiend", -6, 8, ModItems.shimmer_sledge, null).initIndependentStat().setSpecial().registerStat(); + achFiend2 = new Achievement("achievement.fiend2", "fiend2", -4, 9, ModItems.shimmer_axe, null).initIndependentStat().setSpecial().registerStat(); achStratum = new Achievement("achievement.stratum", "stratum", -4, -2, new ItemStack(ModBlocks.stone_gneiss), null).initIndependentStat().setSpecial().registerStat(); - achMeltdown = new Achievement("achievement.meltdown", "meltdown", -4, 0, new ItemStack(ModBlocks.iter), null).initIndependentStat().setSpecial().registerStat(); - achOmega12 = new Achievement("achievement.omega12", "omega12", -4, 2, ModItems.particle_digamma, null).initIndependentStat().setSpecial().registerStat(); - achRadium = new Achievement("achievement.radium", "radium", -4, 4, ModItems.coffee_radium, null).initIndependentStat().setSpecial().registerStat(); + achOmega12 = new Achievement("achievement.omega12", "omega12", 17, -1, ModItems.particle_digamma, null).initIndependentStat().setSpecial().registerStat(); - bobMetalworks = new Achievement("achievement.metalworks", "metalworks", -2, 2, ModItems.bob_metalworks, null).initIndependentStat().registerStat(); - bobAssembly = new Achievement("achievement.assembly", "assembly", 0, 2, ModItems.bob_assembly, bobMetalworks).initIndependentStat().registerStat(); - bobChemistry = new Achievement("achievement.chemistry", "chemistry", 2, 2, ModItems.bob_chemistry, bobAssembly).initIndependentStat().registerStat(); - bobOil = new Achievement("achievement.oil", "oil", 4, 2, ModItems.bob_oil, bobChemistry).initIndependentStat().registerStat(); - bobNuclear = new Achievement("achievement.nuclear", "nuclear", 6, 2, ModItems.bob_nuclear, bobOil).initIndependentStat().registerStat(); - bobHidden = new Achievement("achievement.hidden", "hidden", 8, 2, ModItems.gun_dampfmaschine, bobNuclear).initIndependentStat().registerStat(); + bobHidden = new Achievement("achievement.hidden", "hidden", 15, -4, ModItems.gun_dampfmaschine, null).initIndependentStat().registerStat(); - horizonsStart = new Achievement("achievement.horizonsStart", "horizonsStart", -2, 4, ModItems.sat_gerald, null).initIndependentStat().registerStat(); - horizonsEnd = new Achievement("achievement.horizonsEnd", "horizonsEnd", 0, 4, ModItems.sat_gerald, horizonsStart).initIndependentStat().registerStat(); - horizonsBonus = new Achievement("achievement.horizonsBonus", "horizonsBonus", 2, 4, ModItems.sat_gerald, horizonsEnd).initIndependentStat().registerStat().setSpecial(); + horizonsStart = new Achievement("achievement.horizonsStart", "horizonsStart", -5, 4, ModItems.sat_gerald, null).initIndependentStat().registerStat(); + horizonsEnd = new Achievement("achievement.horizonsEnd", "horizonsEnd", -3, 4, ModItems.sat_gerald, horizonsStart).initIndependentStat().registerStat(); + horizonsBonus = new Achievement("achievement.horizonsBonus", "horizonsBonus", -1, 4, ModItems.sat_gerald, horizonsEnd).initIndependentStat().registerStat().setSpecial(); - bossCreeper = new Achievement("achievement.bossCreeper", "bossCreeper", 8, 0, ModItems.coin_creeper, null).initIndependentStat().registerStat(); - bossMeltdown = new Achievement("achievement.bossMeltdown", "bossMeltdown", 9, -1, ModItems.coin_radiation, bossCreeper).initIndependentStat().registerStat(); - bossMaskman = new Achievement("achievement.bossMaskman", "bossMaskman", 9, 1, ModItems.coin_maskman, bossCreeper).initIndependentStat().registerStat(); - bossWorm = new Achievement("achievement.bossWorm", "bossWorm", 11, 1, ModItems.coin_worm, bossMaskman).initIndependentStat().registerStat().setSpecial(); - bossUFO = new Achievement("achievement.bossUFO", "bossUFO", 13, 1, ModItems.coin_ufo, bossWorm).initIndependentStat().registerStat().setSpecial(); + bossCreeper = new Achievement("achievement.bossCreeper", "bossCreeper", -7, 1, ModItems.coin_creeper, null).initIndependentStat().registerStat(); + bossMeltdown = new Achievement("achievement.bossMeltdown", "bossMeltdown", -8, 3, ModItems.coin_radiation, bossCreeper).initIndependentStat().registerStat(); + bossMaskman = new Achievement("achievement.bossMaskman", "bossMaskman", -8, -1, ModItems.coin_maskman, bossCreeper).initIndependentStat().registerStat(); + bossWorm = new Achievement("achievement.bossWorm", "bossWorm", -8, -3, ModItems.coin_worm, bossMaskman).initIndependentStat().registerStat().setSpecial(); + bossUFO = new Achievement("achievement.bossUFO", "bossUFO", -6, -3, ModItems.coin_ufo, bossWorm).initIndependentStat().registerStat().setSpecial(); achRadPoison = new Achievement("achievement.radPoison", "radPoison", -2, 6, ModItems.geiger_counter, null).initIndependentStat().registerStat(); achRadDeath = new Achievement("achievement.radDeath", "radDeath", 0, 6, Items.skull, achRadPoison).initIndependentStat().registerStat().setSpecial(); achSomeWounds = new Achievement("achievement.someWounds", "someWounds", -2, 10, ModItems.injector_knife, null).initIndependentStat().registerStat(); - digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -2, 8, ModItems.digamma_see, null).initIndependentStat().registerStat(); - digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 0, 8, ModItems.digamma_feel, digammaSee).initIndependentStat().registerStat(); - digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 2, 8, ModItems.digamma_know, digammaFeel).initIndependentStat().registerStat().setSpecial(); - digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 4, 8, ModItems.digamma_kauai_moho, digammaKnow).initIndependentStat().registerStat().setSpecial(); - digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 6, 8, ModItems.digamma_up_on_top, digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); - + digammaSee = new Achievement("achievement.digammaSee", "digammaSee", -1, 8, ModItems.digamma_see, null).initIndependentStat().registerStat(); + digammaFeel = new Achievement("achievement.digammaFeel", "digammaFeel", 1, 8, ModItems.digamma_feel, digammaSee).initIndependentStat().registerStat(); + digammaKnow = new Achievement("achievement.digammaKnow", "digammaKnow", 3, 8, ModItems.digamma_know, digammaFeel).initIndependentStat().registerStat().setSpecial(); + digammaKauaiMoho = new Achievement("achievement.digammaKauaiMoho", "digammaKauaiMoho", 5, 8, ModItems.digamma_kauai_moho, digammaKnow).initIndependentStat().registerStat().setSpecial(); + digammaUpOnTop = new Achievement("achievement.digammaUpOnTop", "digammaUpOnTop", 7, 8, ModItems.digamma_up_on_top, digammaKauaiMoho).initIndependentStat().registerStat().setSpecial(); + + //progression achieves + achBurnerPress = new Achievement("achievement.burnerPress", "burnerPress", 0, 0, new ItemStack(ModBlocks.machine_press), null).initIndependentStat().registerStat(); + achBlastFurnace = new Achievement("achievement.blastFurnace", "blastFurnace", 1, 3, new ItemStack(ModBlocks.machine_difurnace_off), achBurnerPress).initIndependentStat().registerStat(); + achAssembly = new Achievement("achievement.assembly", "assembly", 3, -1, new ItemStack(ModBlocks.machine_assembler), achBurnerPress).initIndependentStat().registerStat(); + achSelenium = new Achievement("achievement.selenium", "selenium", 3, 2, ModItems.ingot_starmetal, achBurnerPress).initIndependentStat().setSpecial().registerStat(); + achChemplant = new Achievement("achievement.chemplant", "chemplant", 6, -1, new ItemStack(ModBlocks.machine_chemplant), achAssembly).initIndependentStat().registerStat(); + achConcrete = new Achievement("achievement.concrete", "concrete", 6, -4, new ItemStack(ModBlocks.concrete), achChemplant).initIndependentStat().registerStat(); + achPolymer = new Achievement("achievement.polymer", "polymer", 9, -1, ModItems.ingot_polymer, achChemplant).initIndependentStat().registerStat(); + achDesh = new Achievement("achievement.desh", "desh", 9, 2, ModItems.ingot_desh, achChemplant).initIndependentStat().registerStat(); + achTantalum = new Achievement("achievement.tantalum", "tantalum", 7, 3, ModItems.gem_tantalium, achChemplant).initIndependentStat().setSpecial().registerStat(); + achGasCent = new Achievement("achievement.gasCent", "gasCent", 13, 2, ModItems.ingot_uranium_fuel, achDesh).initIndependentStat().registerStat(); + achCentrifuge = new Achievement("achievement.centrifuge", "centrifuge", 12, -2, new ItemStack(ModBlocks.machine_centrifuge), achPolymer).initIndependentStat().registerStat(); + achFOEQ = new Achievement("achievement.FOEQ", "FOEQ", 5, 5, ModItems.sat_foeq, achDesh).initIndependentStat().setSpecial().registerStat(); + achSoyuz = new Achievement("achievement.soyuz", "soyuz", 7, 6, Items.baked_potato, achDesh).initIndependentStat().setSpecial().registerStat(); + achSpace = new Achievement("achievement.space", "space", 9, 7, ModItems.missile_carrier, achDesh).initIndependentStat().setSpecial().registerStat(); + achSchrab = new Achievement("achievement.schrab", "schrab", 11, 3, ModItems.ingot_schrabidium, achDesh).initIndependentStat().registerStat(); + achAcidizer = new Achievement("achievement.acidizer", "acidizer", 11, 5, new ItemStack(ModBlocks.machine_crystallizer), achDesh).initIndependentStat().registerStat(); + achRadium = new Achievement("achievement.radium", "radium", 13, -4, ModItems.coffee_radium, achCentrifuge).initIndependentStat().setSpecial().registerStat(); + achTechnetium = new Achievement("achievement.technetium", "technetium", 15, -2, ModItems.ingot_tcalloy, achCentrifuge).initIndependentStat().registerStat(); + achZIRNOXBoom = new Achievement("achievement.ZIRNOXBoom", "ZIRNOXBoom", 14, -1, ModItems.debris_element, achCentrifuge).initIndependentStat().setSpecial().registerStat(); + achChicagoPile = new Achievement("achievement.chicagoPile", "chicagoPile", 13, 0, ModItems.pile_rod_plutonium, achCentrifuge).initIndependentStat().registerStat(); + achSILEX = new Achievement("achievement.SILEX", "SILEX", 12, 7, new ItemStack(ModBlocks.machine_silex), achAcidizer).initIndependentStat().registerStat(); + achWatz = new Achievement("achievement.watz", "watz", 14, 3, ModItems.pellet_schrabidium, achSchrab).initIndependentStat().registerStat(); + achWatzBoom = new Achievement("achievement.watzBoom", "watzBoom", 14, 5, ModItems.bucket_mud, achWatz).initIndependentStat().setSpecial().registerStat(); + achRBMK = new Achievement("achievement.RBMK", "RBMK", 9, -5, ModItems.rbmk_fuel_ueu, achConcrete).initIndependentStat().registerStat(); + achRBMKBoom = new Achievement("achievement.RBMKBoom", "RBMKBoom", 9, -7, ModItems.debris_fuel, achRBMK).initIndependentStat().setSpecial().registerStat(); + achBismuth = new Achievement("achievement.bismuth", "bismuth", 11, -6, ModItems.ingot_bismuth, achRBMK).initIndependentStat().registerStat(); + achBreeding = new Achievement("achievement.breeding", "breeding", 7, -6, ModItems.ingot_am_mix, achRBMK).initIndependentStat().setSpecial().registerStat(); + achFusion = new Achievement("achievement.fusion", "fusion", 13, -7, new ItemStack(ModBlocks.iter), achBismuth).initIndependentStat().setSpecial().registerStat(); + achMeltdown = new Achievement("achievement.meltdown", "meltdown", 15, -7, ModItems.crystal_energy, achFusion).initIndependentStat().setSpecial().registerStat(); + achRedBalloons = new Achievement("achievement.redBalloons", "redBalloons", 11, 0, ModItems.missile_nuclear, achPolymer).initIndependentStat().setSpecial().registerStat(); + achManhattan = new Achievement("achievement.manhattan", "manhattan", 11, -4, new ItemStack(ModBlocks.nuke_boy), achPolymer).initIndependentStat().setSpecial().registerStat(); + AchievementPage.registerAchievementPage(new AchievementPage("Nuclear Tech", new Achievement[] { achSacrifice, achImpossible, achTOB, achFreytag, - achSelenium, achPotato, achC44, achC20_5, - achSpace, - achFOEQ, achFiend, achFiend2, - achSoyuz, achStratum, - achMeltdown, achOmega12, - achRadium, - bobMetalworks, - bobAssembly, - bobChemistry, - bobOil, - bobNuclear, bobHidden, horizonsStart, horizonsEnd, @@ -847,7 +879,39 @@ public class MainRegistry { digammaFeel, digammaKnow, digammaKauaiMoho, - digammaUpOnTop + digammaUpOnTop, + + achBurnerPress, + achBlastFurnace, + achAssembly, + achSelenium, + achChemplant, + achConcrete, + achPolymer, + achDesh, + achTantalum, + achGasCent, + achCentrifuge, + achFOEQ, + achSoyuz, + achSpace, + achSchrab, + achAcidizer, + achRadium, + achTechnetium, + achZIRNOXBoom, + achChicagoPile, + achSILEX, + achWatz, + achWatzBoom, + achRBMK, + achRBMKBoom, + achBismuth, + achBreeding, + achFusion, + achMeltdown, + achRedBalloons, + achManhattan })); // MUST be initialized AFTER achievements!! diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 6658debb7..3a39bff72 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -1210,20 +1210,11 @@ public class ModEventHandler { if(item == ModItems.gun_revolver_pip) { e.player.addStat(MainRegistry.achC44, 1); } - if(item == Item.getItemFromBlock(ModBlocks.machine_difurnace_off)) { - e.player.addStat(MainRegistry.bobMetalworks, 1); + if(item == Item.getItemFromBlock(ModBlocks.machine_press)) { + e.player.triggerAchievement(MainRegistry.achBurnerPress); } - if(item == Item.getItemFromBlock(ModBlocks.machine_assembler)) { - e.player.addStat(MainRegistry.bobAssembly, 1); - } - if(item == Item.getItemFromBlock(ModBlocks.brick_concrete)) { - e.player.addStat(MainRegistry.bobChemistry, 1); - } - if(item == Item.getItemFromBlock(ModBlocks.machine_boiler_electric_off)) { - e.player.addStat(MainRegistry.bobOil, 1); - } - if(item == ModItems.ingot_uranium_fuel) { - e.player.addStat(MainRegistry.bobNuclear, 1); + if(item == ModItems.rbmk_fuel_empty) { + e.player.triggerAchievement(MainRegistry.achRBMK); } } @@ -1246,7 +1237,13 @@ public class ModEventHandler { e.player.inventoryContainer.detectAndSendChanges(); } } - + + @SubscribeEvent + public void onItemPickup(PlayerEvent.ItemPickupEvent event) { + if(event.pickedUp.getEntityItem().getItem() == ModItems.canned_jizz) + event.player.triggerAchievement(MainRegistry.achC20_5); + } + @SubscribeEvent public void onBlockBreak(BreakEvent event) { @@ -1270,6 +1267,11 @@ public class ModEventHandler { event.world.setBlock(x, y, z, ModBlocks.gas_coal); } } + + if(event.block == ModBlocks.pink_log && !((EntityPlayerMP) event.getPlayer()).func_147099_x().hasAchievementUnlocked(MainRegistry.achImpossible)) { + event.getPlayer().triggerAchievement(MainRegistry.achImpossible); + event.setExpToDrop(3000); + } } private static final String hash = "41eb77f138ce350932e33b6b26b233df9aad0c0c80c6a49cb9a54ddd8fae3f83"; diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index 6aff0fb91..582e748df 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -80,7 +80,6 @@ public class NEIConfig implements IConfigureNEI { API.hideItem(new ItemStack(ModItems.ams_core_thingy)); } API.hideItem(new ItemStack(ModBlocks.dummy_block_assembler)); - API.hideItem(new ItemStack(ModBlocks.dummy_block_centrifuge)); API.hideItem(new ItemStack(ModBlocks.dummy_block_chemplant)); API.hideItem(new ItemStack(ModBlocks.dummy_block_cyclotron)); API.hideItem(new ItemStack(ModBlocks.dummy_block_drill)); diff --git a/src/main/java/com/hbm/packet/AnvilCraftPacket.java b/src/main/java/com/hbm/packet/AnvilCraftPacket.java index fc322a148..d7f998fd1 100644 --- a/src/main/java/com/hbm/packet/AnvilCraftPacket.java +++ b/src/main/java/com/hbm/packet/AnvilCraftPacket.java @@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerAnvil; import com.hbm.inventory.recipes.anvil.AnvilRecipes; import com.hbm.inventory.recipes.anvil.AnvilRecipes.AnvilConstructionRecipe; +import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.util.InventoryUtil; @@ -65,9 +66,11 @@ public class AnvilCraftPacket implements IMessage { InventoryUtil.giveChanceStacksToPlayer(p, recipe.output); if(recipe.output.get(0).stack.getItem() == Item.getItemFromBlock(ModBlocks.machine_difurnace_off)) - p.triggerAchievement(MainRegistry.bobMetalworks); + p.triggerAchievement(MainRegistry.achBlastFurnace); if(recipe.output.get(0).stack.getItem() == Item.getItemFromBlock(ModBlocks.machine_assembler)) - p.triggerAchievement(MainRegistry.bobAssembly); + p.triggerAchievement(MainRegistry.achAssembly); + if(recipe.output.get(0).stack.getItem() == ModItems.billet_pu_mix) + p.triggerAchievement(MainRegistry.achChicagoPile); } else { break; diff --git a/src/main/java/com/hbm/packet/AuxGaugePacket.java b/src/main/java/com/hbm/packet/AuxGaugePacket.java index 4c1889175..78f2a3a88 100644 --- a/src/main/java/com/hbm/packet/AuxGaugePacket.java +++ b/src/main/java/com/hbm/packet/AuxGaugePacket.java @@ -165,14 +165,6 @@ public class AuxGaugePacket implements IMessage { if(m.id == 1) radio.freq = ((double)m.value) / 10D; } - if (te instanceof TileEntityMachineCentrifuge) { - TileEntityMachineCentrifuge cent = (TileEntityMachineCentrifuge)te; - - if(m.id == 0) - cent.dualCookTime = m.value; - if(m.id == 1) - cent.isProgressing = m.value == 1; - } if (te instanceof TileEntityMachineBoiler) { TileEntityMachineBoiler boiler = (TileEntityMachineBoiler)te; diff --git a/src/main/java/com/hbm/render/tileentity/RenderCentrifuge.java b/src/main/java/com/hbm/render/tileentity/RenderCentrifuge.java index 24848110c..107d64cb6 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCentrifuge.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCentrifuge.java @@ -17,7 +17,7 @@ public class RenderCentrifuge extends TileEntitySpecialRenderer { GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); - switch(tileEntity.getBlockMetadata() - 10) { //unless vær updated the regular centrifuge too, this is now broken + switch(tileEntity.getBlockMetadata() - 10) { // (: case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index a7688e90a..02f0cf872 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -1,11 +1,13 @@ package com.hbm.tileentity.machine; import com.hbm.inventory.recipes.CentrifugeRecipes; +import com.hbm.inventory.recipes.GasCentrifugeRecipes.PseudoFluidType; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; @@ -23,11 +25,9 @@ import net.minecraft.util.AxisAlignedBB; //TODO: move this trash to TileEntityMachineBase //no seriously, this is dreadful -public class TileEntityMachineCentrifuge extends TileEntity implements ISidedInventory, IEnergyUser { - - private ItemStack slots[]; - - public int dualCookTime; +public class TileEntityMachineCentrifuge extends TileEntityMachineBase implements ISidedInventory, IEnergyUser { + + public int progress; public long power; public boolean isProgressing; public static final int maxPower = 100000; @@ -37,77 +37,14 @@ public class TileEntityMachineCentrifuge extends TileEntity implements ISidedInv private static final int[] slots_bottom = new int[] { 2, 3, 4, 5 }; private static final int[] slots_side = new int[] { 0, 1 }; - private String customName; - public TileEntityMachineCentrifuge() { - slots = new ItemStack[6]; + super(6); } - - @Override - public int getSizeInventory() { - return slots.length; - } - - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.centrifuge"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { - return false; - } else { - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; - } - } - - // You scrubs aren't needed for anything (right now) - @Override - public void openInventory() { - } - - @Override - public void closeInventory() { + + public String getName() { + return "container.centrifuge"; } + @Override public boolean isItemValidForSlot(int i, ItemStack itemStack) { @@ -122,78 +59,27 @@ public class TileEntityMachineCentrifuge extends TileEntity implements ISidedInv return !(itemStack.getItem() instanceof IBatteryItem); } - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) { - if(slots[i].stackSize <= j) { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if(slots[i].stackSize == 0) { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - power = nbt.getLong("powerTime"); - dualCookTime = nbt.getShort("CookTime"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } + power = nbt.getLong("power"); + progress = nbt.getShort("progress"); } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setLong("powerTime", power); - nbt.setShort("cookTime", (short) dualCookTime); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) { - if(slots[i] != null) { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte) i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } - - @Override - public boolean canInsertItem(int i, ItemStack itemStack, int j) { - return this.isItemValidForSlot(i, itemStack); + nbt.setLong("power", power); + nbt.setShort("progress", (short) progress); } @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { - return j != 0 || i != 1 || itemStack.getItem() == Items.bucket; + return j != 0 || i != 1; } public int getCentrifugeProgressScaled(int i) { - return (dualCookTime * i) / processingSpeed; + return (progress * i) / processingSpeed; } public long getPowerRemainingScaled(int i) { @@ -253,9 +139,15 @@ public class TileEntityMachineCentrifuge extends TileEntity implements ISidedInv } public boolean isProcessing() { - return this.dualCookTime > 0; + return this.progress > 0; } - + + public void networkUnpack(NBTTagCompound data) { + this.power = data.getLong("power"); + this.progress = data.getInteger("progress"); + this.isProgressing = data.getBoolean("isProgressing"); + } + @Override public void updateEntity() { @@ -279,26 +171,27 @@ public class TileEntityMachineCentrifuge extends TileEntity implements ISidedInv isProgressing = false; } + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setInteger("progress", progress); + data.setBoolean("isProgressing", isProgressing); + this.networkPack(data, 50); + PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround(new AuxGaugePacket(xCoord, yCoord, zCoord, dualCookTime, 0), - new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); - PacketDispatcher.wrapper.sendToAllAround( - new AuxGaugePacket(xCoord, yCoord, zCoord, isProgressing ? 1 : 0, 1), - new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); PacketDispatcher.wrapper.sendToAllAround(new LoopedSoundPacket(xCoord, yCoord, zCoord), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); } if(hasPower() && canProcess()) { - dualCookTime++; + progress++; - if(this.dualCookTime >= TileEntityMachineCentrifuge.processingSpeed) { - this.dualCookTime = 0; + if(this.progress >= TileEntityMachineCentrifuge.processingSpeed) { + this.progress = 0; this.processItem(); } } else { - dualCookTime = 0; + progress = 0; } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index 595f067f6..75ce85173 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -208,6 +208,7 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I public void networkUnpack(NBTTagCompound data) { this.power = data.getLong("power"); this.progress = data.getInteger("progress"); + this.isProgressing = data.getBoolean("isProgressing"); this.inputTank.setTankType(PseudoFluidType.valueOf(data.getString("inputType"))); this.outputTank.setTankType(PseudoFluidType.valueOf(data.getString("outputType"))); this.inputTank.setFill(data.getInteger("inputFill")); @@ -276,6 +277,7 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I NBTTagCompound data = new NBTTagCompound(); data.setLong("power", power); data.setInteger("progress", progress); + data.setBoolean("isProgressing", isProgressing); data.setInteger("inputFill", inputTank.getFill()); data.setInteger("outputFill", outputTank.getFill()); data.setString("inputType", inputTank.getTankType().toString()); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index 563937cc9..f56f8e63c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -22,6 +22,7 @@ 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.main.MainRegistry; import com.hbm.tileentity.TileEntityMachineBase; import cpw.mods.fml.relauncher.Side; @@ -357,12 +358,19 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF worldObj.createExplosion(null, this.xCoord, this.yCoord + 3, this.zCoord, 12.0F, true); zirnoxDebris(); ExplosionNukeGeneric.waste(worldObj, this.xCoord, this.yCoord, this.zCoord, 35); - + + List 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(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.achZIRNOXBoom); + } + if(MobConfig.enableElementals) { @SuppressWarnings("unchecked") - List 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)); + List players2 = 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) { + for(EntityPlayer player : players2) { player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).setBoolean("radMark", true); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java index 8a68adb01..dd4489c66 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatzCore.java @@ -30,6 +30,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -649,6 +650,13 @@ public class TileEntityWatzCore extends TileEntity implements ISidedInventory, I this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); } else { + List 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(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.achWatzBoom); + } + if (rand.nextInt(10) != 0) { for (int i = -3; i <= 3; i++) for (int j = -5; j <= 5; j++) diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java index 63d693b33..d19ae6d75 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileBase.java @@ -1,12 +1,18 @@ package com.hbm.tileentity.machine.pile; +import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import api.hbm.block.IPileNeutronReceiver; import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; public abstract class TileEntityPileBase extends TileEntity { @@ -40,6 +46,9 @@ public abstract class TileEntityPileBase extends TileEntity { Block b = worldObj.getBlock(x, y, z); + if(b == ModBlocks.concrete || b == ModBlocks.concrete_smooth || b == ModBlocks.concrete_asbestos || b == ModBlocks.concrete_colored || b == ModBlocks.brick_concrete) + flux *= 0.25; + if(b == ModBlocks.block_boron) return; @@ -60,6 +69,14 @@ public abstract class TileEntityPileBase extends TileEntity { rec.receiveNeutrons(n); return; } + + List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x + 0.5, y + 0.5, z + 0.5, x + 0.5, y + 0.5, z + 0.5)); + + if(entities != null) + for(EntityLivingBase e : entities) { + + ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, flux / 2); + } } } } diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java index 027ad9699..c3249d10b 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileFuel.java @@ -24,8 +24,8 @@ public class TileEntityPileFuel extends TileEntityPileBase implements IPileNeutr react(); if(this.heat >= this.maxHeat) { - worldObj.setBlock(xCoord, yCoord, zCoord, Blocks.air); - worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 5, true, true); + worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 4, true, true); + worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.gas_radon_dense); } if(this.progress >= this.maxProgress) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java index 152cb65cc..aae6cb8c3 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -29,6 +29,7 @@ import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -47,15 +48,6 @@ import net.minecraftforge.common.util.ForgeDirection; */ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacketReceiver { - /* - * ██████╗ ██████╗ ███╗ ███╗██╗ ██╗ - * ██╔══██╗██╔══██╗████╗ ████║██║ ██╔╝ - * ██████╔╝██████╔╝██╔████╔██║█████╔╝ - * ██╔══██╗██╔══██╗██║╚██╔╝██║██╔═██╗ - * ██║ ██║██████╔╝██║ ╚═╝ ██║██║ ██╗ - * ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ - */ - public double heat; public int water; @@ -469,6 +461,13 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke worldObj.playSoundEffect(avgX + 0.5, yCoord + 1, avgZ + 0.5, "hbm:block.rbmk_explosion", 50.0F, 1.0F); + List 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(50, 50, 50)); + + for(EntityPlayer player : players) { + player.triggerAchievement(MainRegistry.achRBMKBoom); + } + if(RBMKBase.digamma) { EntitySpear spear = new EntitySpear(worldObj); spear.posX = avgX + 0.5; diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f1880aa62..b740ad405 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1,7 +1,15 @@ +achievement.acidizer.desc=oof ow my skin +achievement.acidizer=Acidic +achievement.assembly.desc=Wait, it's already 1 am? +achievement.assembly=The Factory Grows achievement.FOEQ.desc=Send a relay into martian...I mean dunaian orbit. achievement.FOEQ=Pegasi and Missile Silos -achievement.assembly.desc=Bobmazon Level 2 (Assembly Machine) -achievement.assembly=Fabrication +achievement.breeding.desc=Thank you, god bless you, and god bless the United States of America. +achievement.breeding=Ironic +achievement.bismuth.desc=Remember when people complained about this for a month? I do. +achievement.bismuth=Bismuth +achievement.blastFurnace.desc=They salvaged a sunken dreadnought for Explorer 1. +achievement.blastFurnace=Coal and Iron achievement.bossCreeper.desc='There is nuclear creepers? Those are a thing?!' achievement.bossCreeper=Bomb On Four Legs achievement.bossMaskman.desc=Bonk the big boy. @@ -12,12 +20,22 @@ achievement.bossWorm.desc=The Fabstaff. My ass. You do the math. achievement.bossWorm=Disassembling Balls-O-Tron achievement.bossUFO.desc=Yo, what do we have here? A huge spacecraft pulling up to the bloockship? achievement.bossUFO=Ayy Lmao +achievement.burnerPress.desc=Pressure pushing down on me, on you +achievement.burnerPress=Under Pressure achievement.c20_5.desc=??? achievement.c20_5=Chapter [TWENTY POINT FIVE] achievement.c44.desc=Galvanized! I mean, zinc! achievement.c44=Chapter 44 -achievement.chemistry.desc=Bobmazon Level 3 (Concrete Bricks) -achievement.chemistry=Chemistry +achievement.centrifuge.desc=centrifugal force is fake don't @ me +achievement.centrifuge=Centripetal Force +achievement.chemplant.desc=Now you're thinking with chemicals! +achievement.chemplant=The Factory Grows Pt. 2 +achievement.chicagoPile.desc="How were the natives?" / "Very friendly." +achievement.chicagoPile=The navigator landed in the New World +achievement.concrete.desc=A Bolshevik's favorite. +achievement.concrete=Old Reliable +achievement.desh.desc="Come on then, you lot. Places to go!" +achievement.desh=Le Verrier achievement.digammaFeel.desc=the hollow within. achievement.digammaFeel=The Terror of Feeling achievement.digammaKauaiMoho.desc=Everything is awful, here's some hot choccy. @@ -34,6 +52,10 @@ achievement.fiend2=Delinquent 2: Delinquent Harder achievement.fiend=Delinquent achievement.freytag.desc=Herold's life guards achievement.freytag=Freytag +achievement.fusion.desc=A dance of deuterons, tritons, and energy. +achievement.fusion=Fusion +achievement.gasCent.desc=Unenriched Uranium hates him! +achievement.gasCent=The Zippe Style achievement.hidden.desc=Kill a tainted creeper with a falling boxcar. achievement.hidden=Hidden Catalog achievement.horizonsBonus.desc=honest to god what the hell is wrong with you @@ -44,16 +66,14 @@ achievement.horizonsStart.desc=Send a lad to the moon. achievement.horizonsStart=Apogee achievement.impossible.desc=You can't get this achievement. achievement.impossible=Literally impossible +achievement.manhattan.desc=8:15; August 6th, 1945 +achievement.manhattan=The Manhattan Project achievement.meltdown.desc=You got this far, how could you mess this up? achievement.meltdown=Rapid Unscheduled Disassembly -achievement.metalworks.desc=Bobmazon Level 1 (Blast Furnace) -achievement.metalworks=Metalworks -achievement.nuclear.desc=Bobmazon Level 5 (Uranium Fuel) -achievement.nuclear=Atomic Science -achievement.oil.desc=Bobmazon Level 4 (Electric Boiler) -achievement.oil=Petroleum achievement.omega12.desc=Solve the problem of continued life on this wretched planet. achievement.omega12=Omega-12 Particle Accelerator +achievement.polymer.desc=Delicious, delicious microplastics. +achievement.polymer=Teflon achievement.potato.desc=You stabbed me! What is WRONG with yo-WOOOAAH achievement.potato=Rogue AI achievement.radDeath.desc=Marie Curie invented the theory of radioactivity, the treatment of radioactivity, and dying of radioactivity. @@ -62,10 +82,20 @@ achievement.radium.desc=YOU'RE FIRED FOR POURING RADIUM IN MY COFFEE! achievement.radium=MISTER INCREDIBLE achievement.radPoison.desc=Suffer the effects of radiation poisoning. achievement.radPoison=Yay, Radiation! +achievement.RBMKBoom.desc=What is the cost of lies? +achievement.RBMKBoom=It is 15,000. +achievement.RBMK.desc=He's delusional, get him to the infirmary. +achievement.RBMK=3.6 Roentegen? +achievement.redBalloons.desc="This is what we've waited for. This is it, boys, this is war." +achievement.redBalloons=99 Red Balloons achievement.sacrifice.desc=Face the fire and live. achievement.sacrifice=Sororicide +achievement.schrab.desc=Regardless, I wouldn't look at it for too long. +achievement.schrab=Island of Stability achievement.selenium.desc=Yeah. achievement.selenium=XVIII The Moon +achievement.SILEX.desc=It's cooler then it sounds, I promise. +achievement.SILEX=Separation of Isotopes by Laser Exitation achievement.stratum.desc=Hit the brakes, Mitts. achievement.stratum=Stratum achievement.someWounds.desc=Get ready @@ -74,8 +104,18 @@ achievement.soyuz.desc=Become crunchy. achievement.soyuz=Baked Potato achievement.space.desc=Fail in every way possible and waste funds worth 90 million dollars. achievement.space=The Final Front-ah forget it +achievement.tantalum.desc=An elusive, yet ever-needed element. +achievement.tantalum="Tantalium" achievement.tasteofblood.desc=is not part of any testing protocol. achievement.tasteofblood=The Taste of Blood +achievement.technetium.desc=It's medicinal, it's medicinal! +achievement.technetium=Big Man, Pig Man +achievement.watzBoom.desc=Drain your septic tank next time. +achievement.watzBoom=Disgusting +achievement.watz.desc=Fólkvangr fields possibly included. +achievement.watz=The Power of Element-126 +achievement.ZIRNOXBoom.desc=cope, seethe, mald +achievement.ZIRNOXBoom=CIRNOX armor.blastProtection=Damage modifier of %s against explosions armor.cap=Hard damage cap of %s @@ -2100,13 +2140,23 @@ item.pellet_mes.name=MES Watz Pellet item.pellet_meteorite.name=Meteorite Rounds item.pellet_neptunium.name=Neptunium Watz Pellet item.pellet_rtg.name=Plutonium-238 Fuel Pellet +item.pellet_rtg.desc=RTG fuel pellet for infinite energy! (almost) item.pellet_rtg_actinium.name=Actinium Fuel Pellet +item.pellet_rtg_actinium.desc= item.pellet_rtg_americium.name=Americium-241 Fuel Pellet +item.pellet_rtg_americium.desc=Rare and reliable, good old Americium! item.pellet_rtg_berkelium.name=Berkelium Fuel Pellet +item.pellet_rtg_berkelium.desc= item.pellet_rtg_gold.name=Gold-198 Fuel Pellet +item.pellet_rtg_gold.desc=Made from a rare, highly unstable gold isotope. item.pellet_rtg_polonium.name=Polonium-210 Fuel Pellet +item.pellet_rtg_polonium.desc=More powderful RTG pellet, made from finest polonium! item.pellet_rtg_strontium.name=Strontium-90 Fuel Pellet -item.pellet_rtg_weak.name=Weak Uranium RTG Pellet +item.pellet_rtg_strontium.desc= +item.pellet_rtg_radium.name=Radium-226 Fuel Pellet +item.pellet_rtg_radium.desc=Great starter pellet, sourced from all-natural radium! +item.pellet_rtg_weak.name=Weak Uranium Fuel Pellet +item.pellet_rtg_weak.desc=Cheaper and weaker pellet, now with more U238! item.pellet_schrabidium.name=Pure Schrabidium Watz Pellet item.photo_panel.name=Photovoltaic Panel item.pile_rod_boron.name=Chicago Pile Control Rod diff --git a/src/main/resources/assets/hbm/textures/items/pellet_rtg_radium.png b/src/main/resources/assets/hbm/textures/items/pellet_rtg_radium.png new file mode 100644 index 000000000..cfc788ada Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/pellet_rtg_radium.png differ