From 8cc1856a23a4ecb6978cfb05955a5d285280adb4 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 2 May 2021 21:12:21 +0200 Subject: [PATCH] RBMK debris items, more gamerules, explosion effects, steel grates --- src/main/java/com/hbm/blocks/ModBlocks.java | 43 +- .../java/com/hbm/blocks/ModSoundType.java | 19 + .../com/hbm/blocks/generic/BlockGrate.java | 85 ++++ .../com/hbm/blocks/machine/rbmk/RBMKBase.java | 18 +- .../hbm/blocks/machine/rbmk/RBMKBoiler.java | 3 +- .../machine/rbmk/RBMKDebrisBurning.java | 1 + .../machine/rbmk/RBMKDebrisRadiating.java | 106 +++++ .../com/hbm/blocks/machine/rbmk/RBMKRod.java | 3 +- .../entity/projectile/EntityRBMKDebris.java | 289 +++++++++++- .../java/com/hbm/explosion/ExplosionNT.java | 429 +++++++++--------- .../com/hbm/inventory/ShredderRecipes.java | 1 + src/main/java/com/hbm/items/ModItems.java | 12 + .../java/com/hbm/items/armor/ItemModMilk.java | 3 +- .../com/hbm/items/machine/ItemRBMKRod.java | 11 + src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 1 + .../com/hbm/particle/ParticleRBMKFlame.java | 1 + src/main/java/com/hbm/potion/HbmPotion.java | 24 +- .../com/hbm/render/block/RenderGrate.java | 39 ++ .../tileentity/RenderRBMKControlRod.java | 18 +- .../tileentity/machine/rbmk/RBMKDials.java | 20 + .../machine/rbmk/TileEntityRBMKBase.java | 40 +- .../machine/rbmk/TileEntityRBMKRod.java | 12 +- src/main/resources/assets/hbm/lang/de_DE.lang | 6 + src/main/resources/assets/hbm/lang/en_US.lang | 6 + src/main/resources/assets/hbm/sounds.json | 4 +- .../hbm/sounds/block/rbmk_explosion.ogg | Bin 0 -> 121886 bytes .../hbm/sounds/footsteps/metalStep1.ogg | Bin 0 -> 5764 bytes .../hbm/sounds/footsteps/metalStep2.ogg | Bin 0 -> 5402 bytes .../hbm/sounds/footsteps/metalStep3.ogg | Bin 0 -> 5266 bytes .../hbm/sounds/footsteps/metalStep4.ogg | Bin 0 -> 5400 bytes .../assets/hbm/textures/blocks/grate_side.png | Bin 0 -> 180 bytes .../assets/hbm/textures/blocks/grate_top.png | Bin 0 -> 451 bytes .../blocks/rbmk/rbmk_debris_radiating.png | Bin 0 -> 681 bytes .../assets/hbm/textures/items/debris_fuel.png | Bin 0 -> 471 bytes .../hbm/textures/items/debris_fuel_alt.png | Bin 0 -> 357 bytes .../hbm/textures/items/debris_fuel_base.png | Bin 0 -> 503 bytes .../hbm/textures/items/debris_metal.png | Bin 0 -> 260 bytes 38 files changed, 931 insertions(+), 264 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/ModSoundType.java create mode 100644 src/main/java/com/hbm/blocks/generic/BlockGrate.java create mode 100644 src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java create mode 100644 src/main/java/com/hbm/render/block/RenderGrate.java create mode 100644 src/main/resources/assets/hbm/sounds/block/rbmk_explosion.ogg create mode 100644 src/main/resources/assets/hbm/sounds/footsteps/metalStep1.ogg create mode 100644 src/main/resources/assets/hbm/sounds/footsteps/metalStep2.ogg create mode 100644 src/main/resources/assets/hbm/sounds/footsteps/metalStep3.ogg create mode 100644 src/main/resources/assets/hbm/sounds/footsteps/metalStep4.ogg create mode 100644 src/main/resources/assets/hbm/textures/blocks/grate_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/grate_top.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_debris_radiating.png create mode 100644 src/main/resources/assets/hbm/textures/items/debris_fuel.png create mode 100644 src/main/resources/assets/hbm/textures/items/debris_fuel_alt.png create mode 100644 src/main/resources/assets/hbm/textures/items/debris_fuel_base.png create mode 100644 src/main/resources/assets/hbm/textures/items/debris_metal.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 8889f2b7f..fc67ae3d3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -287,6 +287,7 @@ public class ModBlocks { public static Block steel_roof; public static Block steel_beam; public static Block steel_scaffold; + public static Block steel_grate; public static Block broadcaster_pc; public static Block geiger; @@ -869,6 +870,7 @@ public class ModBlocks { public static final int guiID_rbmk_console = 17; public static Block pribris; public static Block pribris_burning; + public static Block pribris_radiating; public static Block book_guide; @@ -983,6 +985,19 @@ public class ModBlocks { public static Material materialGas = new MaterialGas(); + public static Block.SoundType soundTypeGrate = new ModSoundType("metalBlock", 0.5F, 1.0F) { + + @Override + public String func_150496_b() { + return Block.soundTypeMetal.func_150496_b(); + } + + @Override + public String getBreakSound() { + return "dig.stone"; + } + }; + private static void initializeBlock() { test_render = new TestRender(Material.rock).setBlockName("test_render").setCreativeTab(null); @@ -1229,20 +1244,21 @@ public class ModBlocks { brick_dungeon_tile = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_tile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_tile"); brick_dungeon_circle = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_circle"); - tape_recorder = new DecoTapeRecorder(Material.rock).setBlockName("tape_recorder").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_tape_recorder"); - steel_poles = new DecoSteelPoles(Material.rock).setBlockName("steel_poles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); - pole_top = new DecoPoleTop(Material.rock).setBlockName("pole_top").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_pole_top"); - pole_satellite_receiver = new DecoPoleSatelliteReceiver(Material.rock).setBlockName("pole_satellite_receiver").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_satellite_receiver"); - steel_wall = new DecoBlock(Material.rock).setBlockName("steel_wall").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_wall"); - steel_corner = new DecoBlock(Material.rock).setBlockName("steel_corner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_corner"); - steel_roof = new DecoBlock(Material.rock).setBlockName("steel_roof").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_roof"); - steel_beam = new DecoBlock(Material.rock).setBlockName("steel_beam").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); - steel_scaffold = new DecoBlock(Material.rock).setBlockName("steel_scaffold").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_steel"); + tape_recorder = new DecoTapeRecorder(Material.iron).setBlockName("tape_recorder").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_tape_recorder"); + steel_poles = new DecoSteelPoles(Material.iron).setBlockName("steel_poles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); + pole_top = new DecoPoleTop(Material.iron).setBlockName("pole_top").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_pole_top"); + pole_satellite_receiver = new DecoPoleSatelliteReceiver(Material.iron).setBlockName("pole_satellite_receiver").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_satellite_receiver"); + steel_wall = new DecoBlock(Material.iron).setBlockName("steel_wall").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_wall"); + steel_corner = new DecoBlock(Material.iron).setBlockName("steel_corner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_corner"); + steel_roof = new DecoBlock(Material.iron).setBlockName("steel_roof").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_roof"); + steel_beam = new DecoBlock(Material.iron).setBlockName("steel_beam").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); + steel_scaffold = new DecoBlock(Material.iron).setBlockName("steel_scaffold").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_steel"); + steel_grate = new BlockGrate(Material.iron).setBlockName("steel_grate").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F); - broadcaster_pc = new PinkCloudBroadcaster(Material.rock).setBlockName("broadcaster_pc").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":broadcaster_pc"); - geiger = new GeigerCounter(Material.rock).setBlockName("geiger").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":geiger"); + broadcaster_pc = new PinkCloudBroadcaster(Material.iron).setBlockName("broadcaster_pc").setCreativeTab(MainRegistry.machineTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":broadcaster_pc"); + geiger = new GeigerCounter(Material.iron).setBlockName("geiger").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":geiger"); - fence_metal = new BlockMetalFence(Material.rock).setBlockName("fence_metal").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":fence_metal"); + fence_metal = new BlockMetalFence(Material.iron).setBlockName("fence_metal").setCreativeTab(MainRegistry.machineTab).setHardness(15.0F).setResistance(0.25F).setBlockTextureName(RefStrings.MODID + ":fence_metal"); sand_uranium = new BlockFalling(Material.sand).setBlockName("sand_uranium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_uranium"); sand_polonium = new BlockFalling(Material.sand).setBlockName("sand_polonium").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_polonium"); @@ -1600,6 +1616,7 @@ public class ModBlocks { rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console"); pribris = new RBMKDebris().setBlockName("pribris").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris"); pribris_burning = new RBMKDebrisBurning().setBlockName("pribris_burning").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_burning"); + pribris_radiating = new RBMKDebrisRadiating().setBlockName("pribris_radiating").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_debris_radiating"); book_guide = new Guide(Material.iron).setBlockName("book_guide").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.nukeTab); @@ -2056,6 +2073,7 @@ public class ModBlocks { GameRegistry.registerBlock(steel_roof, steel_roof.getUnlocalizedName()); GameRegistry.registerBlock(steel_beam, steel_beam.getUnlocalizedName()); GameRegistry.registerBlock(steel_scaffold, steel_scaffold.getUnlocalizedName()); + GameRegistry.registerBlock(steel_grate, steel_grate.getUnlocalizedName()); GameRegistry.registerBlock(mush, mush.getUnlocalizedName()); GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); @@ -2273,6 +2291,7 @@ public class ModBlocks { GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName()); GameRegistry.registerBlock(pribris, pribris.getUnlocalizedName()); GameRegistry.registerBlock(pribris_burning, pribris_burning.getUnlocalizedName()); + GameRegistry.registerBlock(pribris_radiating, pribris_radiating.getUnlocalizedName()); 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/ModSoundType.java b/src/main/java/com/hbm/blocks/ModSoundType.java new file mode 100644 index 000000000..331a7e27a --- /dev/null +++ b/src/main/java/com/hbm/blocks/ModSoundType.java @@ -0,0 +1,19 @@ +package com.hbm.blocks; + +import net.minecraft.block.Block; + +public class ModSoundType extends Block.SoundType { + + public ModSoundType(String name, float volume, float pitch) { + super(name, volume, pitch); + } + + public String getBreakSound() { + return "hbm:" + super.getBreakSound(); + } + + public String getStepResourcePath() { + return "hbm:" + super.getStepResourcePath(); + } + +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockGrate.java b/src/main/java/com/hbm/blocks/generic/BlockGrate.java new file mode 100644 index 000000000..304a0899f --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockGrate.java @@ -0,0 +1,85 @@ +package com.hbm.blocks.generic; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockGrate extends Block { + + @SideOnly(Side.CLIENT) + private IIcon sideIcon; + + public BlockGrate(Material material) { + super(material); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":grate_top"); + this.sideIcon = iconRegister.registerIcon(RefStrings.MODID + ":grate_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.blockIcon : (side == 0 ? this.blockIcon : this.sideIcon); + } + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + + @Override + public int getRenderType() { + return renderID; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + this.setBlockBounds(0F, meta * 0.125F, 0F, 1F, meta * 0.125F + 0.125F, 1F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + int meta = world.getBlockMetadata(x, y, z); + this.setBlockBounds(0F, meta * 0.125F, 0F, 1F, meta * 0.125F + 0.125F, 1F); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) { + return side == ForgeDirection.UP; + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float hX, float hY, float hZ, int meta) { + + if(side == 0) + return 7; + + if(side == 1) + return 0; + + return (int)Math.floor(hY * 8D); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java index cf47054af..86a8cf119 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBase.java @@ -1,7 +1,9 @@ package com.hbm.blocks.machine.rbmk; import com.hbm.blocks.BlockDummyable; +import com.hbm.handler.MultiblockHandlerXR; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBase; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -10,8 +12,8 @@ import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; public abstract class RBMKBase extends BlockDummyable { @@ -70,6 +72,20 @@ public abstract class RBMKBase extends BlockDummyable { return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY + height, z + this.maxZ); } + @Override + protected boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) { + return MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(world), x, y, z, dir); + } + + @Override + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(world), this, dir); + } + + public int[] getDimensions(World world) { + return new int[] {RBMKDials.getColumnHeight(world), 0, 0, 0, 0, 0}; + } + public static int renderIDRods = RenderingRegistry.getNextAvailableRenderId(); public static int renderIDPassive = RenderingRegistry.getNextAvailableRenderId(); public static int renderIDControl = RenderingRegistry.getNextAvailableRenderId(); diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBoiler.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBoiler.java index b53519bc4..788c35b32 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBoiler.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKBoiler.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine.rbmk; import com.hbm.blocks.ModBlocks; import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKBoiler; import net.minecraft.entity.player.EntityPlayer; @@ -36,6 +37,6 @@ public class RBMKBoiler extends RBMKBase { @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - this.makeExtra(world, x, y + 3, z); + this.makeExtra(world, x, y + RBMKDials.getColumnHeight(world), z); } } diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java index f68c53732..ebb53e4c0 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisBurning.java @@ -30,6 +30,7 @@ public class RBMKDebrisBurning extends RBMKDebris { data.setInteger("maxAge", 300); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + 0.25 + rand.nextDouble() * 0.5, y + 1.75, z + 0.25 + rand.nextDouble() * 0.5), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 1.75, z + 0.5, 75)); MainRegistry.proxy.effectNT(data); + world.playSoundEffect(x + 0.5F, y + 0.5, z + 0.5, "fire.fire", 1.0F + rand.nextFloat(), rand.nextFloat() * 0.7F + 0.3F); } if(rand.nextInt(100) == 0) { diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java new file mode 100644 index 000000000..cab085852 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKDebrisRadiating.java @@ -0,0 +1,106 @@ +package com.hbm.blocks.machine.rbmk; + +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.DamageSource; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class RBMKDebrisRadiating extends RBMKDebrisBurning { + + @Override + public int tickRate(World world) { + + return 20 + world.rand.nextInt(20); + } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + + if(!world.isRemote) { + + radiate(world, x, y, z); + + if(rand.nextInt(5) == 0) { + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "rbmkflame"); + data.setInteger("maxAge", 300); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x + rand.nextDouble(), y + 1.75, z + rand.nextDouble()), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 1.75, z + 0.5, 75)); + MainRegistry.proxy.effectNT(data); + world.playSoundEffect(x + 0.5F, y + 0.5, z + 0.5, "fire.fire", 1.0F + rand.nextFloat(), rand.nextFloat() * 0.7F + 0.3F); + + } + + if(rand.nextInt(1000) == 0) { + + int meta = world.getBlockMetadata(x, y, z); + + if(meta < 15) { + world.setBlockMetadataWithNotify(x, y, z, meta + 1, 2); + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } else { + world.setBlock(x, y, z, ModBlocks.pribris_burning); + } + + } else { + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + } + } + + private void radiate(World world, int x, int y, int z) { + + float rads = 1000000F; + double range = 100D; + + List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(x + 0.5, y + 0.5, z + 0.5, x + 0.5, y + 0.5, z + 0.5).expand(range, range, range)); + + for(EntityLivingBase e : entities) { + + Vec3 vec = Vec3.createVectorHelper(e.posX - (x + 0.5), (e.posY + e.getEyeHeight()) - (y + 0.5), e.posZ - (z + 0.5)); + double len = vec.lengthVector(); + vec = vec.normalize(); + + float res = 0; + + for(int i = 1; i < len; i++) { + + int ix = (int)Math.floor(x + 0.5 + vec.xCoord * i); + int iy = (int)Math.floor(y + 0.5 + vec.yCoord * i); + int iz = (int)Math.floor(z + 0.5 + vec.zCoord * i); + + res += world.getBlock(ix, iy, iz).getExplosionResistance(null); + } + + if(res < 1) + res = 1; + + float eRads = rads; + eRads /= (float)res; + eRads /= (float)(len * len); + + ContaminationUtil.contaminate(e, HazardType.RADIATION, ContaminationType.CREATIVE, eRads); + + if(len < 5) { + e.attackEntityFrom(DamageSource.inFire, 100); + } + + /*if(e instanceof EntityPlayer) { + ((EntityPlayer) e).addChatComponentMessage(new ChatComponentText("RAD/s: " + (int)eRads).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); + }*/ + } + } +} diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java index aa46d7357..7cb340799 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java @@ -2,6 +2,7 @@ package com.hbm.blocks.machine.rbmk; import com.hbm.blocks.ModBlocks; import com.hbm.tileentity.TileEntityProxyInventory; +import com.hbm.tileentity.machine.rbmk.RBMKDials; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod; import net.minecraft.entity.player.EntityPlayer; @@ -36,6 +37,6 @@ public class RBMKRod extends RBMKBase { @Override public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { super.fillSpace(world, x, y, z, dir, o); - this.makeExtra(world, x, y + 3, z); + this.makeExtra(world, x, y + RBMKDials.getColumnHeight(world), z); } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java b/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java index f1da894b5..81f4cf3e3 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java +++ b/src/main/java/com/hbm/entity/projectile/EntityRBMKDebris.java @@ -1,13 +1,32 @@ package com.hbm.entity.projectile; +import java.util.List; + +import com.hbm.items.ModItems; +import com.hbm.potion.HbmPotion; +import com.hbm.tileentity.machine.rbmk.RBMKDials; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.crash.CrashReport; +import net.minecraft.crash.CrashReportCategory; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.ReportedException; +import net.minecraft.util.Vec3; import net.minecraft.world.World; public class EntityRBMKDebris extends Entity { public float rot; public float lastRot; + private boolean hasSizeSet = false; public EntityRBMKDebris(World world) { super(world); @@ -25,9 +44,48 @@ public class EntityRBMKDebris extends Entity { this.rot = this.lastRot = this.rand.nextFloat() * 360; } + @Override + public boolean canBeCollidedWith() { + return true; + } + + @Override + public boolean interactFirst(EntityPlayer player) { + + if(!worldObj.isRemote) { + + switch(this.getType()) { + case BLANK: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.debris_metal))) this.setDead(); break; + case ELEMENT: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.debris_metal))) this.setDead(); break; + case FUEL: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.debris_fuel))) this.setDead(); break; + case GRAPHITE: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.debris_graphite))) this.setDead(); break; + case LID: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.rbmk_lid))) this.setDead(); break; + case ROD: if(player.inventory.addItemStackToInventory(new ItemStack(ModItems.debris_metal))) this.setDead(); break; + } + + player.inventoryContainer.detectAndSendChanges(); + } + + return false; + } + @Override public void onUpdate() { + if(!hasSizeSet) { + + switch(this.getType()) { + case BLANK: this.setSize(0.5F, 0.5F); break; + case ELEMENT: this.setSize(1F, 1F); break; + case FUEL: this.setSize(0.25F, 0.25F); break; + case GRAPHITE: this.setSize(0.25F, 0.25F); break; + case LID: this.setSize(1F, 0.5F); break; + case ROD: this.setSize(0.75F, 0.5F); break; + } + + hasSizeSet = true; + } + this.prevPosX = this.posX; this.prevPosY = this.posY; this.prevPosZ = this.posZ; @@ -52,8 +110,59 @@ public class EntityRBMKDebris extends Entity { } } - if(this.ticksExisted > 1000) - this.setDead(); + if(!worldObj.isRemote) { + if(this.getType() == DebrisType.LID && motionY > 0) { + + Vec3 pos = Vec3.createVectorHelper(posX, posY, posZ); + Vec3 next = Vec3.createVectorHelper(posX + motionX * 2, posY + motionY * 2, posZ + motionZ * 2); + MovingObjectPosition mop = worldObj.func_147447_a(pos, next, false, false, false); + + if(mop != null && mop.typeOfHit == mop.typeOfHit.BLOCK) { + + int x = mop.blockX; + int y = mop.blockY; + int z = mop.blockZ; + + for(int i = -1; i <= 1; i++) { + for(int j = -1; j <= 1; j++) { + for(int k = -1; k <= 1; k++) { + + int rn = Math.abs(i) + Math.abs(j) + Math.abs(k); + + if(rn <= 1 || rand.nextInt(rn) == 0) + worldObj.setBlockToAir(x + i, y + j, z + k); + } + } + } + + this.setDead(); + } + } + + if(this.getType() == DebrisType.FUEL) { + List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, this.boundingBox.expand(10, 10, 10)); + + for(EntityLivingBase e : entities) { + e.addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 60 * 20, 9)); + } + } + + if(!RBMKDials.getPermaScrap(worldObj) && this.ticksExisted > getLifetime() + this.getEntityId() % 50) + this.setDead(); + } + } + + private int getLifetime() { + + switch(this.getType()) { + case BLANK: return 3 * 60 * 20; + case ELEMENT: return 3 * 60 * 20; + case FUEL: return 10 * 60 * 20; + case GRAPHITE: return 15 * 60 * 20; + case LID: return 30 * 20; + case ROD: return 60 * 20; + default: return 0; + } } public void setType(DebrisType type) { @@ -73,6 +182,182 @@ public class EntityRBMKDebris extends Entity { protected void writeEntityToNBT(NBTTagCompound nbt) { nbt.setInteger("debtype", this.dataWatcher.getWatchableObjectInt(20)); } + + @Override + public void moveEntity(double moX, double moY, double moZ) { + + this.worldObj.theProfiler.startSection("move"); + this.ySize *= 0.4F; + + if(this.isInWeb) { + this.isInWeb = false; + } + + double initMoX = moX; + double initMoY = moY; + double initMoZ = moZ; + AxisAlignedBB axisalignedbb = this.boundingBox.copy(); + + List list = this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox.addCoord(moX, moY, moZ)); + + for(int i = 0; i < list.size(); ++i) { + moY = ((AxisAlignedBB) list.get(i)).calculateYOffset(this.boundingBox, moY); + } + + this.boundingBox.offset(0.0D, moY, 0.0D); + + if(!this.field_70135_K && initMoY != moY) { + moZ = 0.0D; + moY = 0.0D; + moX = 0.0D; + } + + boolean isGoingDown = this.onGround || initMoY != moY && initMoY < 0.0D; + int j; + + for(j = 0; j < list.size(); ++j) { + moX = ((AxisAlignedBB) list.get(j)).calculateXOffset(this.boundingBox, moX); + } + + this.boundingBox.offset(moX, 0.0D, 0.0D); + + if(!this.field_70135_K && initMoX != moX) { + moZ = 0.0D; + moY = 0.0D; + moX = 0.0D; + } + + for(j = 0; j < list.size(); ++j) { + moZ = ((AxisAlignedBB) list.get(j)).calculateZOffset(this.boundingBox, moZ); + } + + this.boundingBox.offset(0.0D, 0.0D, moZ); + + if(!this.field_70135_K && initMoZ != moZ) { + moZ = 0.0D; + moY = 0.0D; + moX = 0.0D; + } + + double d10; + double d11; + int k; + double d12; + + if(this.stepHeight > 0.0F && isGoingDown && this.ySize < 0.05F && (initMoX != moX || initMoZ != moZ)) { + d12 = moX; + d10 = moY; + d11 = moZ; + moX = initMoX; + moY = (double) this.stepHeight; + moZ = initMoZ; + AxisAlignedBB axisalignedbb1 = this.boundingBox.copy(); + this.boundingBox.setBB(axisalignedbb); + list = this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox.addCoord(initMoX, moY, initMoZ)); + + for(k = 0; k < list.size(); ++k) { + moY = ((AxisAlignedBB) list.get(k)).calculateYOffset(this.boundingBox, moY); + } + + this.boundingBox.offset(0.0D, moY, 0.0D); + + if(!this.field_70135_K && initMoY != moY) { + moZ = 0.0D; + moY = 0.0D; + moX = 0.0D; + } + + for(k = 0; k < list.size(); ++k) { + moX = ((AxisAlignedBB) list.get(k)).calculateXOffset(this.boundingBox, moX); + } + + this.boundingBox.offset(moX, 0.0D, 0.0D); + + if(!this.field_70135_K && initMoX != moX) { + moZ = 0.0D; + moY = 0.0D; + moX = 0.0D; + } + + for(k = 0; k < list.size(); ++k) { + moZ = ((AxisAlignedBB) list.get(k)).calculateZOffset(this.boundingBox, moZ); + } + + this.boundingBox.offset(0.0D, 0.0D, moZ); + + if(!this.field_70135_K && initMoZ != moZ) { + moZ = 0.0D; + moY = 0.0D; + moX = 0.0D; + } + + if(!this.field_70135_K && initMoY != moY) { + moZ = 0.0D; + moY = 0.0D; + moX = 0.0D; + } else { + moY = (double) (-this.stepHeight); + + for(k = 0; k < list.size(); ++k) { + moY = ((AxisAlignedBB) list.get(k)).calculateYOffset(this.boundingBox, moY); + } + + this.boundingBox.offset(0.0D, moY, 0.0D); + } + + if(d12 * d12 + d11 * d11 >= moX * moX + moZ * moZ) { + moX = d12; + moY = d10; + moZ = d11; + this.boundingBox.setBB(axisalignedbb1); + } + } + + this.worldObj.theProfiler.endSection(); + this.worldObj.theProfiler.startSection("rest"); + this.posX = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; + this.posY = this.boundingBox.minY + (double) this.yOffset - (double) this.ySize; + this.posZ = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; + this.isCollidedHorizontally = initMoX != moX || initMoZ != moZ; + this.isCollidedVertically = initMoY != moY; + this.onGround = initMoY != moY && initMoY < 0.0D; + this.isCollided = this.isCollidedHorizontally || this.isCollidedVertically; + this.updateFallState(moY, this.onGround); + + if(initMoX != moX) { + //this.motionX = 0.0D; + this.motionX *= -0.75D; + + } + + if(initMoY != moY) { + this.motionY = 0.0D; + } + + if(initMoZ != moZ) { + //this.motionZ = 0.0D; + this.motionZ *= -0.75D; + } + + try { + this.func_145775_I(); + } catch(Throwable throwable) { + CrashReport crashreport = CrashReport.makeCrashReport(throwable, "Checking entity block collision"); + CrashReportCategory crashreportcategory = crashreport.makeCategory("Entity being checked for collision"); + this.addEntityCrashInfo(crashreportcategory); + throw new ReportedException(crashreport); + } + + this.worldObj.theProfiler.endSection(); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double dist) { + + int range = 128; + return dist < range * range; + } public static enum DebrisType { BLANK, //just a metal beam diff --git a/src/main/java/com/hbm/explosion/ExplosionNT.java b/src/main/java/com/hbm/explosion/ExplosionNT.java index 625b150dd..8b02b8e07 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNT.java +++ b/src/main/java/com/hbm/explosion/ExplosionNT.java @@ -30,267 +30,242 @@ import net.minecraft.world.World; public class ExplosionNT extends Explosion { public Set atttributes = new HashSet(); - - private Random explosionRNG = new Random(); - private World worldObj; - protected int field_77289_h = 16; - protected Map affectedEntities = new HashMap(); - - public static final List nukeAttribs = Arrays.asList(new ExAttrib[] {ExAttrib.FIRE, ExAttrib.NOPARTICLE, ExAttrib.NOSOUND, ExAttrib.NODROP, ExAttrib.NOHURT}); + + private Random explosionRNG = new Random(); + private World worldObj; + protected int field_77289_h = 16; + protected Map affectedEntities = new HashMap(); + + public static final List nukeAttribs = Arrays.asList(new ExAttrib[] { ExAttrib.FIRE, ExAttrib.NOPARTICLE, ExAttrib.NOSOUND, ExAttrib.NODROP, ExAttrib.NOHURT }); public ExplosionNT(World world, Entity exploder, double x, double y, double z, float strength) { super(world, exploder, x, y, z, strength); this.worldObj = world; } - + public ExplosionNT addAttrib(ExAttrib attrib) { atttributes.add(attrib); return this; } - + public ExplosionNT addAllAttrib(List attrib) { atttributes.addAll(attrib); return this; } - + public ExplosionNT overrideResolution(int res) { field_77289_h = res; return this; } - - public void explode() { - doExplosionA(); - doExplosionB(false); - } - - public void doExplosionA() - { - float f = this.explosionSize; - HashSet hashset = new HashSet(); - int i; - int j; - int k; - double d5; - double d6; - double d7; - for (i = 0; i < this.field_77289_h; ++i) - { - for (j = 0; j < this.field_77289_h; ++j) - { - for (k = 0; k < this.field_77289_h; ++k) - { - if (i == 0 || i == this.field_77289_h - 1 || j == 0 || j == this.field_77289_h - 1 || k == 0 || k == this.field_77289_h - 1) - { - double d0 = (double)((float)i / ((float)this.field_77289_h - 1.0F) * 2.0F - 1.0F); - double d1 = (double)((float)j / ((float)this.field_77289_h - 1.0F) * 2.0F - 1.0F); - double d2 = (double)((float)k / ((float)this.field_77289_h - 1.0F) * 2.0F - 1.0F); - double d3 = Math.sqrt(d0 * d0 + d1 * d1 + d2 * d2); - d0 /= d3; - d1 /= d3; - d2 /= d3; - float f1 = this.explosionSize * (0.7F + this.worldObj.rand.nextFloat() * 0.6F); - d5 = this.explosionX; - d6 = this.explosionY; - d7 = this.explosionZ; + public void explode() { + doExplosionA(); + doExplosionB(false); + } - for (float f2 = 0.3F; f1 > 0.0F; f1 -= f2 * 0.75F) - { - int j1 = MathHelper.floor_double(d5); - int k1 = MathHelper.floor_double(d6); - int l1 = MathHelper.floor_double(d7); - Block block = this.worldObj.getBlock(j1, k1, l1); + public void doExplosionA() { + float f = this.explosionSize; + HashSet hashset = new HashSet(); + int i; + int j; + int k; + double d5; + double d6; + double d7; - if (block.getMaterial() != Material.air) - { - float f3 = this.exploder != null ? this.exploder.func_145772_a(this, this.worldObj, j1, k1, l1, block) : block.getExplosionResistance(this.exploder, worldObj, j1, k1, l1, explosionX, explosionY, explosionZ); - f1 -= (f3 + 0.3F) * f2; - } + for(i = 0; i < this.field_77289_h; ++i) { + for(j = 0; j < this.field_77289_h; ++j) { + for(k = 0; k < this.field_77289_h; ++k) { + if(i == 0 || i == this.field_77289_h - 1 || j == 0 || j == this.field_77289_h - 1 || k == 0 || k == this.field_77289_h - 1) { + double d0 = (double) ((float) i / ((float) this.field_77289_h - 1.0F) * 2.0F - 1.0F); + double d1 = (double) ((float) j / ((float) this.field_77289_h - 1.0F) * 2.0F - 1.0F); + double d2 = (double) ((float) k / ((float) this.field_77289_h - 1.0F) * 2.0F - 1.0F); + double d3 = Math.sqrt(d0 * d0 + d1 * d1 + d2 * d2); + d0 /= d3; + d1 /= d3; + d2 /= d3; + float f1 = this.explosionSize * (0.7F + this.worldObj.rand.nextFloat() * 0.6F); + d5 = this.explosionX; + d6 = this.explosionY; + d7 = this.explosionZ; - if (f1 > 0.0F && (this.exploder == null || this.exploder.func_145774_a(this, this.worldObj, j1, k1, l1, block, f1))) - { - hashset.add(new ChunkPosition(j1, k1, l1)); - } + for(float f2 = 0.3F; f1 > 0.0F; f1 -= f2 * 0.75F) { + int j1 = MathHelper.floor_double(d5); + int k1 = MathHelper.floor_double(d6); + int l1 = MathHelper.floor_double(d7); + Block block = this.worldObj.getBlock(j1, k1, l1); - d5 += d0 * (double)f2; - d6 += d1 * (double)f2; - d7 += d2 * (double)f2; - } - } - } - } - } + if(block.getMaterial() != Material.air) { + float f3 = this.exploder != null ? this.exploder.func_145772_a(this, this.worldObj, j1, k1, l1, block) : block.getExplosionResistance(this.exploder, worldObj, j1, k1, l1, explosionX, explosionY, explosionZ); + f1 -= (f3 + 0.3F) * f2; + } - this.affectedBlockPositions.addAll(hashset); - - if(!has(ExAttrib.NOHURT)) { - - this.explosionSize *= 2.0F; - i = MathHelper.floor_double(this.explosionX - (double)this.explosionSize - 1.0D); - j = MathHelper.floor_double(this.explosionX + (double)this.explosionSize + 1.0D); - k = MathHelper.floor_double(this.explosionY - (double)this.explosionSize - 1.0D); - int i2 = MathHelper.floor_double(this.explosionY + (double)this.explosionSize + 1.0D); - int l = MathHelper.floor_double(this.explosionZ - (double)this.explosionSize - 1.0D); - int j2 = MathHelper.floor_double(this.explosionZ + (double)this.explosionSize + 1.0D); - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this.exploder, AxisAlignedBB.getBoundingBox((double)i, (double)k, (double)l, (double)j, (double)i2, (double)j2)); - net.minecraftforge.event.ForgeEventFactory.onExplosionDetonate(this.worldObj, this, list, this.explosionSize); - Vec3 vec3 = Vec3.createVectorHelper(this.explosionX, this.explosionY, this.explosionZ); - - for (int i1 = 0; i1 < list.size(); ++i1) - { - Entity entity = (Entity)list.get(i1); - double d4 = entity.getDistance(this.explosionX, this.explosionY, this.explosionZ) / (double)this.explosionSize; - - if (d4 <= 1.0D) - { - d5 = entity.posX - this.explosionX; - d6 = entity.posY + (double)entity.getEyeHeight() - this.explosionY; - d7 = entity.posZ - this.explosionZ; - double d9 = (double)MathHelper.sqrt_double(d5 * d5 + d6 * d6 + d7 * d7); - - if (d9 != 0.0D) - { - d5 /= d9; - d6 /= d9; - d7 /= d9; - double d10 = (double)this.worldObj.getBlockDensity(vec3, entity.boundingBox); - double d11 = (1.0D - d4) * d10; - entity.attackEntityFrom(DamageSource.setExplosionSource(this), (float)((int)((d11 * d11 + d11) / 2.0D * 8.0D * (double)this.explosionSize + 1.0D))); - double d8 = EnchantmentProtection.func_92092_a(entity, d11); - entity.motionX += d5 * d8; - entity.motionY += d6 * d8; - entity.motionZ += d7 * d8; - - if (entity instanceof EntityPlayer) - { - this.affectedEntities.put((EntityPlayer)entity, Vec3.createVectorHelper(d5 * d11, d6 * d11, d7 * d11)); - } - } - } - } - - this.explosionSize = f; - } - } - - public void doExplosionB(boolean p_77279_1_) { - - if(!has(ExAttrib.NOSOUND)) - this.worldObj.playSoundEffect(this.explosionX, this.explosionY, this.explosionZ, "random.explode", 4.0F, (1.0F + (this.worldObj.rand.nextFloat() - this.worldObj.rand.nextFloat()) * 0.2F) * 0.7F); + if(f1 > 0.0F && (this.exploder == null || this.exploder.func_145774_a(this, this.worldObj, j1, k1, l1, block, f1))) { + hashset.add(new ChunkPosition(j1, k1, l1)); + } - if (!has(ExAttrib.NOPARTICLE)) { - if (this.explosionSize >= 2.0F && this.isSmoking) - { - this.worldObj.spawnParticle("hugeexplosion", this.explosionX, this.explosionY, this.explosionZ, 1.0D, 0.0D, 0.0D); - } - else - { - this.worldObj.spawnParticle("largeexplode", this.explosionX, this.explosionY, this.explosionZ, 1.0D, 0.0D, 0.0D); - } - } + d5 += d0 * (double) f2; + d6 += d1 * (double) f2; + d7 += d2 * (double) f2; + } + } + } + } + } - Iterator iterator; - ChunkPosition chunkposition; - int i; - int j; - int k; - Block block; + this.affectedBlockPositions.addAll(hashset); - if (this.isSmoking) - { - iterator = this.affectedBlockPositions.iterator(); + if(!has(ExAttrib.NOHURT)) { - while (iterator.hasNext()) - { - chunkposition = (ChunkPosition)iterator.next(); - i = chunkposition.chunkPosX; - j = chunkposition.chunkPosY; - k = chunkposition.chunkPosZ; - block = this.worldObj.getBlock(i, j, k); + this.explosionSize *= 2.0F; + i = MathHelper.floor_double(this.explosionX - (double) this.explosionSize - 1.0D); + j = MathHelper.floor_double(this.explosionX + (double) this.explosionSize + 1.0D); + k = MathHelper.floor_double(this.explosionY - (double) this.explosionSize - 1.0D); + int i2 = MathHelper.floor_double(this.explosionY + (double) this.explosionSize + 1.0D); + int l = MathHelper.floor_double(this.explosionZ - (double) this.explosionSize - 1.0D); + int j2 = MathHelper.floor_double(this.explosionZ + (double) this.explosionSize + 1.0D); + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this.exploder, AxisAlignedBB.getBoundingBox((double) i, (double) k, (double) l, (double) j, (double) i2, (double) j2)); + net.minecraftforge.event.ForgeEventFactory.onExplosionDetonate(this.worldObj, this, list, this.explosionSize); + Vec3 vec3 = Vec3.createVectorHelper(this.explosionX, this.explosionY, this.explosionZ); - if (!has(ExAttrib.NOPARTICLE)) - { - double d0 = (double)((float)i + this.worldObj.rand.nextFloat()); - double d1 = (double)((float)j + this.worldObj.rand.nextFloat()); - double d2 = (double)((float)k + this.worldObj.rand.nextFloat()); - double d3 = d0 - this.explosionX; - double d4 = d1 - this.explosionY; - double d5 = d2 - this.explosionZ; - double d6 = (double)MathHelper.sqrt_double(d3 * d3 + d4 * d4 + d5 * d5); - d3 /= d6; - d4 /= d6; - d5 /= d6; - double d7 = 0.5D / (d6 / (double)this.explosionSize + 0.1D); - d7 *= (double)(this.worldObj.rand.nextFloat() * this.worldObj.rand.nextFloat() + 0.3F); - d3 *= d7; - d4 *= d7; - d5 *= d7; - this.worldObj.spawnParticle("explode", (d0 + this.explosionX * 1.0D) / 2.0D, (d1 + this.explosionY * 1.0D) / 2.0D, (d2 + this.explosionZ * 1.0D) / 2.0D, d3, d4, d5); - this.worldObj.spawnParticle("smoke", d0, d1, d2, d3, d4, d5); - } + for(int i1 = 0; i1 < list.size(); ++i1) { + Entity entity = (Entity) list.get(i1); + double d4 = entity.getDistance(this.explosionX, this.explosionY, this.explosionZ) / (double) this.explosionSize; - if (block.getMaterial() != Material.air) - { - if (block.canDropFromExplosion(this) && !has(ExAttrib.NODROP)) - { - float chance = 1.0F; - - if(!has(ExAttrib.ALLDROP)) - chance = 1.0F / this.explosionSize; - - block.dropBlockAsItemWithChance(this.worldObj, i, j, k, this.worldObj.getBlockMetadata(i, j, k), chance, 0); - } + if(d4 <= 1.0D) { + d5 = entity.posX - this.explosionX; + d6 = entity.posY + (double) entity.getEyeHeight() - this.explosionY; + d7 = entity.posZ - this.explosionZ; + double d9 = (double) MathHelper.sqrt_double(d5 * d5 + d6 * d6 + d7 * d7); - block.onBlockExploded(this.worldObj, i, j, k, this); - } - } - } + if(d9 != 0.0D) { + d5 /= d9; + d6 /= d9; + d7 /= d9; + double d10 = (double) this.worldObj.getBlockDensity(vec3, entity.boundingBox); + double d11 = (1.0D - d4) * d10; + entity.attackEntityFrom(DamageSource.setExplosionSource(this), (float) ((int) ((d11 * d11 + d11) / 2.0D * 8.0D * (double) this.explosionSize + 1.0D))); + double d8 = EnchantmentProtection.func_92092_a(entity, d11); + entity.motionX += d5 * d8; + entity.motionY += d6 * d8; + entity.motionZ += d7 * d8; - if(has(ExAttrib.FIRE) || has(ExAttrib.BALEFIRE) || has(ExAttrib.LAVA)) - { - iterator = this.affectedBlockPositions.iterator(); + if(entity instanceof EntityPlayer) { + this.affectedEntities.put((EntityPlayer) entity, Vec3.createVectorHelper(d5 * d11, d6 * d11, d7 * d11)); + } + } + } + } - while (iterator.hasNext()) - { - chunkposition = (ChunkPosition)iterator.next(); - i = chunkposition.chunkPosX; - j = chunkposition.chunkPosY; - k = chunkposition.chunkPosZ; - block = this.worldObj.getBlock(i, j, k); - Block block1 = this.worldObj.getBlock(i, j - 1, k); + this.explosionSize = f; + } + } - boolean shouldReplace = true; - - if(!has(ExAttrib.ALLMOD)) - shouldReplace = this.explosionRNG.nextInt(3) == 0; - - if (block.getMaterial() == Material.air && block1.func_149730_j() && shouldReplace) - { - if(has(ExAttrib.FIRE)) - this.worldObj.setBlock(i, j, k, Blocks.fire); - else if(has(ExAttrib.BALEFIRE)) - this.worldObj.setBlock(i, j, k, ModBlocks.balefire); - else if(has(ExAttrib.LAVA)) - this.worldObj.setBlock(i, j, k, Blocks.flowing_lava); - } - } - } - } + public void doExplosionB(boolean p_77279_1_) { - public Map func_77277_b() - { - return this.affectedEntities; - } - - public EntityLivingBase getExplosivePlacedBy() - { - return this.exploder == null ? null : (this.exploder instanceof EntityTNTPrimed ? ((EntityTNTPrimed)this.exploder).getTntPlacedBy() : (this.exploder instanceof EntityLivingBase ? (EntityLivingBase)this.exploder : null)); - } - - //unconventional name, sure, but it's short - public boolean has(ExAttrib attrib) { - return this.atttributes.contains(attrib); - } + if(!has(ExAttrib.NOSOUND)) + this.worldObj.playSoundEffect(this.explosionX, this.explosionY, this.explosionZ, "random.explode", 4.0F, (1.0F + (this.worldObj.rand.nextFloat() - this.worldObj.rand.nextFloat()) * 0.2F) * 0.7F); + + if(!has(ExAttrib.NOPARTICLE)) { + if(this.explosionSize >= 2.0F && this.isSmoking) { + this.worldObj.spawnParticle("hugeexplosion", this.explosionX, this.explosionY, this.explosionZ, 1.0D, 0.0D, 0.0D); + } else { + this.worldObj.spawnParticle("largeexplode", this.explosionX, this.explosionY, this.explosionZ, 1.0D, 0.0D, 0.0D); + } + } + + Iterator iterator; + ChunkPosition chunkposition; + int i; + int j; + int k; + Block block; + + if(this.isSmoking) { + iterator = this.affectedBlockPositions.iterator(); + + while(iterator.hasNext()) { + chunkposition = (ChunkPosition) iterator.next(); + i = chunkposition.chunkPosX; + j = chunkposition.chunkPosY; + k = chunkposition.chunkPosZ; + block = this.worldObj.getBlock(i, j, k); + + if(!has(ExAttrib.NOPARTICLE)) { + double d0 = (double) ((float) i + this.worldObj.rand.nextFloat()); + double d1 = (double) ((float) j + this.worldObj.rand.nextFloat()); + double d2 = (double) ((float) k + this.worldObj.rand.nextFloat()); + double d3 = d0 - this.explosionX; + double d4 = d1 - this.explosionY; + double d5 = d2 - this.explosionZ; + double d6 = (double) MathHelper.sqrt_double(d3 * d3 + d4 * d4 + d5 * d5); + d3 /= d6; + d4 /= d6; + d5 /= d6; + double d7 = 0.5D / (d6 / (double) this.explosionSize + 0.1D); + d7 *= (double) (this.worldObj.rand.nextFloat() * this.worldObj.rand.nextFloat() + 0.3F); + d3 *= d7; + d4 *= d7; + d5 *= d7; + this.worldObj.spawnParticle("explode", (d0 + this.explosionX * 1.0D) / 2.0D, (d1 + this.explosionY * 1.0D) / 2.0D, (d2 + this.explosionZ * 1.0D) / 2.0D, d3, d4, d5); + this.worldObj.spawnParticle("smoke", d0, d1, d2, d3, d4, d5); + } + + if(block.getMaterial() != Material.air) { + if(block.canDropFromExplosion(this) && !has(ExAttrib.NODROP)) { + float chance = 1.0F; + + if(!has(ExAttrib.ALLDROP)) + chance = 1.0F / this.explosionSize; + + block.dropBlockAsItemWithChance(this.worldObj, i, j, k, this.worldObj.getBlockMetadata(i, j, k), chance, 0); + } + + block.onBlockExploded(this.worldObj, i, j, k, this); + } + } + } + + if(has(ExAttrib.FIRE) || has(ExAttrib.BALEFIRE) || has(ExAttrib.LAVA)) { + iterator = this.affectedBlockPositions.iterator(); + + while(iterator.hasNext()) { + chunkposition = (ChunkPosition) iterator.next(); + i = chunkposition.chunkPosX; + j = chunkposition.chunkPosY; + k = chunkposition.chunkPosZ; + block = this.worldObj.getBlock(i, j, k); + Block block1 = this.worldObj.getBlock(i, j - 1, k); + + boolean shouldReplace = true; + + if(!has(ExAttrib.ALLMOD)) + shouldReplace = this.explosionRNG.nextInt(3) == 0; + + if(block.getMaterial() == Material.air && block1.func_149730_j() && shouldReplace) { + if(has(ExAttrib.FIRE)) + this.worldObj.setBlock(i, j, k, Blocks.fire); + else if(has(ExAttrib.BALEFIRE)) + this.worldObj.setBlock(i, j, k, ModBlocks.balefire); + else if(has(ExAttrib.LAVA)) + this.worldObj.setBlock(i, j, k, Blocks.flowing_lava); + } + } + } + } + + public Map func_77277_b() { + return this.affectedEntities; + } + + public EntityLivingBase getExplosivePlacedBy() { + return this.exploder == null ? null : (this.exploder instanceof EntityTNTPrimed ? ((EntityTNTPrimed) this.exploder).getTntPlacedBy() : (this.exploder instanceof EntityLivingBase ? (EntityLivingBase) this.exploder : null)); + } + + // unconventional name, sure, but it's short + public boolean has(ExAttrib attrib) { + return this.atttributes.contains(attrib); + } //this solution is a bit hacky but in the end easier to work with public static enum ExAttrib { diff --git a/src/main/java/com/hbm/inventory/ShredderRecipes.java b/src/main/java/com/hbm/inventory/ShredderRecipes.java index 5f787fac5..9df6b02cf 100644 --- a/src/main/java/com/hbm/inventory/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/ShredderRecipes.java @@ -200,6 +200,7 @@ public class ShredderRecipes { ShredderRecipes.setRecipe(ModBlocks.crate_tungsten, new ItemStack(ModItems.powder_tungsten, 36)); ShredderRecipes.setRecipe(Blocks.anvil, new ItemStack(ModItems.powder_iron, 31)); ShredderRecipes.setRecipe(ModBlocks.chain, new ItemStack(ModItems.powder_steel_tiny, 1)); + ShredderRecipes.setRecipe(ModBlocks.steel_grate, new ItemStack(ModItems.powder_steel_tiny, 3)); ShredderRecipes.setRecipe(ModBlocks.turret_light, new ItemStack(ModItems.powder_steel, 16)); ShredderRecipes.setRecipe(ModBlocks.turret_heavy, new ItemStack(ModItems.powder_steel, 16)); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 72a47bdb5..a617d8dd2 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -958,6 +958,10 @@ public class ModItems { public static Item waste_mox_hot; public static Item waste_schrabidium_hot; + public static Item debris_graphite; + public static Item debris_metal; + public static Item debris_fuel; + public static Item containment_box; public static Item recycled_ground; @@ -3224,6 +3228,10 @@ public class ModItems { rod_dual_waste = new ItemHazard(30F).setUnlocalizedName("rod_dual_waste").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_dual_empty).setTextureName(RefStrings.MODID + ":rod_dual_waste"); rod_quad_waste = new ItemHazard(60F).setUnlocalizedName("rod_quad_waste").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.rod_quad_empty).setTextureName(RefStrings.MODID + ":rod_quad_waste"); + debris_graphite = new ItemHazard().addRadiation(70F).toItem().setUnlocalizedName("debris_graphite").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_graphite"); + debris_metal = new ItemHazard().addRadiation(5F).toItem().setUnlocalizedName("debris_metal").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_metal"); + debris_fuel = new ItemHazard().addRadiation(1500F).addFire(15).toItem().setUnlocalizedName("debris_fuel").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_fuel"); + pellet_cluster = new ItemCustomLore().setUnlocalizedName("pellet_cluster").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_cluster"); powder_fire = new ItemCustomLore().setUnlocalizedName("powder_fire").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_red_phosphorus"); powder_ice = new ItemCustomLore().setUnlocalizedName("powder_ice").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_ice"); @@ -5836,6 +5844,10 @@ public class ModItems { GameRegistry.registerItem(rbmk_fuel_balefire, rbmk_fuel_balefire.getUnlocalizedName()); GameRegistry.registerItem(rbmk_fuel_drx, rbmk_fuel_drx.getUnlocalizedName()); + GameRegistry.registerItem(debris_graphite, debris_graphite.getUnlocalizedName()); + GameRegistry.registerItem(debris_metal, debris_metal.getUnlocalizedName()); + GameRegistry.registerItem(debris_fuel, debris_fuel.getUnlocalizedName()); + GameRegistry.registerItem(scrap, scrap.getUnlocalizedName()); GameRegistry.registerItem(waste_uranium_hot, waste_uranium_hot.getUnlocalizedName()); GameRegistry.registerItem(waste_thorium_hot, waste_thorium_hot.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ItemModMilk.java b/src/main/java/com/hbm/items/armor/ItemModMilk.java index 5fd25a75e..1985c6b17 100644 --- a/src/main/java/com/hbm/items/armor/ItemModMilk.java +++ b/src/main/java/com/hbm/items/armor/ItemModMilk.java @@ -6,6 +6,7 @@ import java.util.Iterator; import java.util.List; import com.hbm.handler.ArmorModHandler; +import com.hbm.potion.HbmPotion; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -44,7 +45,7 @@ public class ItemModMilk extends ItemArmorMod { PotionEffect eff = (PotionEffect) iterator.next(); - if(Potion.potionTypes[eff.getPotionID()].isBadEffect()) { + if(HbmPotion.getIsBadEffect(Potion.potionTypes[eff.getPotionID()])) { ints.add(eff.getPotionID()); } } diff --git a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java index eaea22111..e0fcc6dbc 100644 --- a/src/main/java/com/hbm/items/machine/ItemRBMKRod.java +++ b/src/main/java/com/hbm/items/machine/ItemRBMKRod.java @@ -158,6 +158,17 @@ public class ItemRBMKRod extends ItemHazard { double hullHeat = this.getHullHeat(stack); + //metldown! the hull melts so the entire structure stops making sense + //hull and core heats are instantly equalized into 33% of their sum each, + //the rest is sent to the component which is always fatal + if(hullHeat > this.meltingPoint) { + double coreHeat = this.getCoreHeat(stack); + double avg = (heat + hullHeat + coreHeat) / 3D; + this.setCoreHeat(stack, avg); + this.setHullHeat(stack, avg); + return avg; + } + if(hullHeat <= heat) return 0; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 2477fdba3..a08fbce9e 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -541,6 +541,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderSpikeBlock()); RenderingRegistry.registerBlockHandler(new RenderChain()); RenderingRegistry.registerBlockHandler(new RenderMirror()); + RenderingRegistry.registerBlockHandler(new RenderGrate()); RenderingRegistry.registerBlockHandler(new RenderRBMKRod()); RenderingRegistry.registerBlockHandler(new RenderRBMKReflector()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 6bd3aaa0f..56c0359bb 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -380,6 +380,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_scaffold), 8), new Object[] { "SSS", " S ", "SSS", 'S', "ingotSteel" })); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_beam), 8), new Object[] { "S", "S", "S", 'S', ModBlocks.steel_scaffold }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.chain), 8), new Object[] { "S", "S", "S", 'S', ModBlocks.steel_beam }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_grate), 4), new Object[] { "SS", "SS", 'S', ModBlocks.steel_beam }); reg2(); } diff --git a/src/main/java/com/hbm/particle/ParticleRBMKFlame.java b/src/main/java/com/hbm/particle/ParticleRBMKFlame.java index 4e210f86b..696896552 100644 --- a/src/main/java/com/hbm/particle/ParticleRBMKFlame.java +++ b/src/main/java/com/hbm/particle/ParticleRBMKFlame.java @@ -91,6 +91,7 @@ public class ParticleRBMKFlame extends EntityFX { GL11.glPolygonOffset(0.0F, 0.0F); GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index abf6a4a6f..242c87530 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -156,24 +156,34 @@ public class HbmPotion extends Potion { public boolean isReady(int par1, int par2) { if(this == taint) { - - return par1 % 2 == 0; + return par1 % 2 == 0; } + if(this == radiation || this == radaway || this == telekinesis || this == phosphorus) { - return true; } + if(this == bang) { - return par1 <= 10; } + if(this == lead) { - int k = 60; - return k > 0 ? par1 % k == 0 : true; + return k > 0 ? par1 % k == 0 : true; } return false; } - + + public static boolean getIsBadEffect(Potion potion) { + + try { + Field isBadEffect = ReflectionHelper.findField(Potion.class, "isBadEffect", "field_76418_K"); + boolean ret = isBadEffect.getBoolean(potion); + return ret; + + } catch (Exception x) { + return false; + } + } } diff --git a/src/main/java/com/hbm/render/block/RenderGrate.java b/src/main/java/com/hbm/render/block/RenderGrate.java new file mode 100644 index 000000000..cf8eb161a --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderGrate.java @@ -0,0 +1,39 @@ +package com.hbm.render.block; + +import com.hbm.blocks.generic.BlockGrate; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.IBlockAccess; + +public class RenderGrate implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + int meta = world.getBlockMetadata(x, y, z); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + renderer.setRenderBounds(0.0D, meta * 0.125D, 0D, 1D, meta * 0.125D + 0.125D, 1D); + renderer.renderStandardBlock(block, x, y, z); + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return false; + } + + @Override + public int getRenderId() { + return BlockGrate.renderID; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java index a279ef235..5984b1818 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java +++ b/src/main/java/com/hbm/render/tileentity/RenderRBMKControlRod.java @@ -22,13 +22,25 @@ public class RenderRBMKControlRod extends TileEntitySpecialRenderer { public void renderTileEntityAt(TileEntity te, double x, double y, double z, float i) { GL11.glPushMatrix(); - GL11.glTranslated(x + 0.5, y + 3, z + 0.5); + + TileEntityRBMKControl control = (TileEntityRBMKControl)te; + + int offset = 1; + + for(int o = 1; o < 16; o++) { + + if(te.getWorldObj().getBlock(te.xCoord, te.yCoord + o, te.zCoord) == te.getBlockType()) { + offset = o; + } else { + break; + } + } + + GL11.glTranslated(x + 0.5, y + offset, z + 0.5); GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_CULL_FACE); - TileEntityRBMKControl control = (TileEntityRBMKControl)te; - bindTexture(texture); double level = control.lastLevel + (control.level - control.lastLevel) * i; diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java index 67be69295..65012ab66 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/RBMKDials.java @@ -10,6 +10,8 @@ public class RBMKDials { public static final String KEY_COLUMN_HEAT_FLOW = "dialColumnHeatFlow"; public static final String KEY_FUEL_DIFFUSION_MOD = "dialDiffusionMod"; public static final String KEY_HEAT_PROVISION = "dialHeatProvision"; + public static final String KEY_COLUMN_HEIGHT = "dialColumnHeight"; + public static final String KEY_PERMANENT_SCRAP = "dialEnablePermaScrap"; public static void createDials(World world) { GameRules rules = world.getGameRules(); @@ -18,6 +20,8 @@ public class RBMKDials { rules.setOrCreateGameRule(KEY_COLUMN_HEAT_FLOW, "0.2"); rules.setOrCreateGameRule(KEY_FUEL_DIFFUSION_MOD, "1.0"); rules.setOrCreateGameRule(KEY_HEAT_PROVISION, "0.2"); + rules.setOrCreateGameRule(KEY_COLUMN_HEIGHT, "4"); + rules.setOrCreateGameRule(KEY_PERMANENT_SCRAP, "false"); } public static double getPassiveCooling(World world) { @@ -39,6 +43,14 @@ public class RBMKDials { return MathHelper.clamp_double(shittyWorkaroundParseDouble(world.getGameRules().getGameRuleStringValue(KEY_HEAT_PROVISION), 0.2D), 0.0D, 1.0D); } + public static int getColumnHeight(World world) { + return MathHelper.clamp_int(shittyWorkaroundParseInt(world.getGameRules().getGameRuleStringValue(KEY_COLUMN_HEIGHT), 4), 1, 16) - 1; + } + + public static boolean getPermaScrap(World world) { + return world.getGameRules().getGameRuleBooleanValue(KEY_PERMANENT_SCRAP); + } + //why make the double representation accessible in a game rule when you can just force me to add a second pointless parsing operation? public static double shittyWorkaroundParseDouble(String s, double def) { @@ -46,6 +58,14 @@ public class RBMKDials { return Double.parseDouble(s); } catch(Exception ex) { } + return def; + } + public static int shittyWorkaroundParseInt(String s, int def) { + + try { + return Integer.parseInt(s); + } catch(Exception ex) { } + return def; } } 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 69f9eed48..baa32f6cf 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -22,13 +22,13 @@ import com.hbm.util.I18nUtil; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +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.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent; @@ -69,6 +69,10 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke return true; } + public int trackingRange() { + return 25; + } + @Override public void updateEntity() { @@ -82,10 +86,6 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke } } - public int trackingRange() { - return 25; - } - public static final ForgeDirection[] heatDirs = new ForgeDirection[] { ForgeDirection.NORTH, ForgeDirection.EAST, @@ -278,7 +278,14 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke EntityRBMKDebris debris = new EntityRBMKDebris(worldObj, xCoord + 0.5D, yCoord + 4D, zCoord + 0.5D, type); debris.motionX = worldObj.rand.nextGaussian() * 0.25D; debris.motionZ = worldObj.rand.nextGaussian() * 0.25D; - debris.motionY = 1D + worldObj.rand.nextDouble(); + debris.motionY = 0.25D + worldObj.rand.nextDouble() * 1.25D; + + if(type == DebrisType.LID) { + debris.motionX *= 0.5D; + debris.motionY += 0.5D; + debris.motionZ *= 0.5D; + } + worldObj.spawnEntityInWorld(debris); } @@ -320,6 +327,25 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke rbmk.onMelt(minDist + 1); } + for(TileEntityRBMKBase rbmk : columns) { + + if(rbmk instanceof TileEntityRBMKRod && worldObj.getBlock(rbmk.xCoord, rbmk.yCoord, rbmk.zCoord) == ModBlocks.corium_block) { + + for(int x = rbmk.xCoord - 1; x <= rbmk.xCoord + 1; x ++) { + for(int y = rbmk.yCoord - 1; y <= rbmk.yCoord + 1; y ++) { + for(int z = rbmk.zCoord - 1; z <= rbmk.zCoord + 1; z ++) { + + Block b = worldObj.getBlock(x, y, z); + + if(worldObj.rand.nextInt(3) == 0 && (b == ModBlocks.pribris || b == ModBlocks.pribris_burning)) { + worldObj.setBlock(x, y, z, ModBlocks.pribris_radiating); + } + } + } + } + } + } + int smallDim = Math.min(maxX - minX, maxZ - minZ); int avgX = minX + (maxX - minX) / 2; int avgZ = minZ + (maxZ - minZ) / 2; @@ -329,6 +355,8 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke data.setFloat("scale", smallDim); PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, avgX + 0.5, yCoord + 1, avgZ + 0.5), new TargetPoint(worldObj.provider.dimensionId,avgX + 0.5, yCoord + 1, avgZ + 0.5, 250)); MainRegistry.proxy.effectNT(data); + + worldObj.playSoundEffect(avgX + 0.5, yCoord + 1, avgZ + 0.5, "hbm:block.rbmk_explosion", 50.0F, 1.0F); } private void getFF(int x, int y, int z) { diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java index a79e01360..900024478 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKRod.java @@ -54,6 +54,11 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM rod.updateHeat(worldObj, slots[0]); this.heat += rod.provideHeat(worldObj, slots[0], heat); + if(this.heat > this.maxHeat()) { + this.meltdown(); + return; + } + //for spreading, we want the buffered flux to be 0 because we want to know exactly how much gets reflected back this.fluxFast = 0; this.fluxSlow = 0; @@ -181,11 +186,14 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM if(worldObj.rand.nextInt(3) == 0) reduce++; + boolean corium = slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod; + slots[0] = null; + for(int i = 3; i >= 0; i--) { if(i <= 4 - reduce) { - if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { + if(corium) { worldObj.setBlock(xCoord, yCoord + i, zCoord, ModBlocks.corium_block); } else { @@ -203,7 +211,7 @@ public class TileEntityRBMKRod extends TileEntityRBMKSlottedBase implements IRBM worldObj.markBlockForUpdate(xCoord, yCoord + i, zCoord); } - if(slots[0] != null && slots[0].getItem() instanceof ItemRBMKRod) { + if(corium) { int count = 1 + worldObj.rand.nextInt(3); for(int i = 0; i < count; i++) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 451fbbe02..afe85734b 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -995,6 +995,9 @@ item.custom_nuke.name=AB - Nukleares Element item.custom_schrab.name=AB - Schrabidiumelement item.custom_tnt.name=AB - Sprengladung item.cyclotron_tower.name=Zyklotronenturm +item.debris_fuel.name=RBMK-Kernbrennstoffbrocken +item.debris_graphite.name=Heißer Graphitbrocken +item.debris_metal.name=Gebrochene Metallleiste item.definitelyfood.name=GarantiertKeinDreck-Marken Feldration item.defuser.name=High-Tech Bombenentschärfungsgerät item.demon_core_closed.name=Bedeckter Dämonenkern @@ -2818,6 +2821,8 @@ tile.plasma.name=Plasma tile.plasma_heater.name=Plasmaerhitzer tile.pole_satellite_receiver.name=Satellitenschüssel tile.pole_top.name=Antennenspitze +tile.pribris.name=RBMK-Schutt +tile.pribris_burning.name=Flammender RBMK-Schutt tile.radiobox.name=Rosenberg Ungeziefervernichter tile.radiorec.name=Kaputtes UKW Radio tile.rail_booster.name=Hochgeschwindigkeits-Boosterschienen @@ -2877,6 +2882,7 @@ tile.soyuz_launcher.name=Soyuz-Startplatform tile.spikes.name=Stacheln tile.steel_beam.name=Stahlträger tile.steel_corner.name=Stahlwand (Ecke) +tile.steel_grate.name=Stahlgitter tile.steel_poles.name=Stahlmasten tile.steel_roof.name=Flaches Stachldach tile.steel_scaffold.name=Stahlgerüst diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index dbccb105e..f63a41a00 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -995,6 +995,9 @@ item.custom_nuke.name=Custom Nuke Nuclear Rod item.custom_schrab.name=Custom Nuke Schrabidium Rod item.custom_tnt.name=Custom Nuke Explosive Charge item.cyclotron_tower.name=Cyclotron Tower +item.debris_fuel.name=RBMK Fuel Chunk +item.debris_graphite.name=Hot Graphite Chunk +item.debris_metal.name=Broken Metal Bar item.definitelyfood.name=TotallyNotDirt-Brand MRE item.defuser.name=High-Tech Bomb Defusing Device item.demon_core_closed.name=Closed Demon Core @@ -2818,6 +2821,8 @@ tile.plasma.name=Plasma tile.plasma_heater.name=Plasma Heater tile.pole_satellite_receiver.name=Satellite Dish tile.pole_top.name=Antenna Top +tile.pribris.name=RBMK Debris +tile.pribris_burning.name=Flaming RBMK Debris tile.radiobox.name=Rosenberg Pest Control Box tile.radiorec.name=Broken FM Radio tile.rail_booster.name=High Speed Booster Rail @@ -2877,6 +2882,7 @@ tile.soyuz_launcher.name=Soyuz Launch Platform tile.spikes.name=Spikes tile.steel_beam.name=Steel Beam tile.steel_corner.name=Steel Wall Corner +tile.steel_grate.name=Steel Grate tile.steel_poles.name=Steel Pole tile.steel_roof.name=Flat Steel Roof tile.steel_scaffold.name=Steel Scaffold diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index 54defb5f7..62406873e 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -34,7 +34,8 @@ "block.closeDoor": {"category": "block", "sounds": ["block/door_close_1", "block/door_close_2"]}, "block.soyuzReady": {"category": "block", "sounds": [{"name": "block/soyuzReady", "stream": true}]}, "block.screm": {"category": "block", "sounds": ["screm/scream1", "screm/scream01", "screm/scream2", "screm/scream02", "screm/scream3", "screm/scream03", "screm/scream4", "screm/scream04", "screm/scream5", "screm/scream05", "screm/scream6", "screm/scream06", "screm/scream7", "screm/scream07", "screm/scream08", "screm/scream09", "screm/scream10", "screm/scream11", "screm/scream12", "screm/scream13", "screm/scream14", "screm/scream15", "screm/scream16", "screm/scream17", "screm/scream18", "screm/scream19", "screm/scream20", "screm/scream21", "screm/scream22", "screm/scream23", "screm/scream24", "screm/scream25"]}, - + "block.rbmk_explosion": {"category": "block", "sounds": [{"name": "block/rbmk_explosion", "stream": false}]}, + "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, "item.geiger1": {"category": "player", "sounds": [{"name": "tool/geiger1", "stream": false}]}, @@ -181,6 +182,7 @@ "step.iron_jump": {"category": "player", "sounds": [{"name": "footsteps/iron_jump", "stream": false}]}, "step.iron_land": {"category": "player", "sounds": [{"name": "footsteps/iron_land", "stream": false}]}, "step.iron": {"category": "player", "sounds": ["footsteps/iron1", "footsteps/iron2", "footsteps/iron3", "footsteps/iron4"]}, + "step.metalBlock": {"category": "block", "sounds": ["footsteps/metalStep1", "footsteps/metalStep2", "footsteps/metalStep3", "footsteps/metalStep4"]}, "potatos.random": {"category": "player", "sounds": ["potatos/randResponse0", "potatos/randResponse1", "potatos/randResponse2", "potatos/randResponse3", "potatos/randResponse4", "potatos/randResponse5", "potatos/randResponse6", "potatos/randResponse7"]}, diff --git a/src/main/resources/assets/hbm/sounds/block/rbmk_explosion.ogg b/src/main/resources/assets/hbm/sounds/block/rbmk_explosion.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ba5cc90c9732f955d6f066d8ffa09201d096ca91 GIT binary patch literal 121886 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 Q!!zVpt|04&c4ypw0ch0Wl>h($ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/grate_side.png b/src/main/resources/assets/hbm/textures/blocks/grate_side.png new file mode 100644 index 0000000000000000000000000000000000000000..b3cc7491bcc13f5b2fa2751a0f4581097f70d96e GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfP)Afk1h zVBfPnQ`dE}EQ@LoLclal`jE92^E@jKA$->NC+d$e2F^J!Gg3+_BoSenCIC<`d~pZ? z>$+lD7GTeDtI6I6m&-*Sk4J@h&uJgqoQPmu*II*N7$l{nN$)-8c~<=0I}zzhbIxja zW@emDC-pcpS9=G57$dy*c)#Be5%mcX)fzNSQ|)>0i~Ifl@2^xoFvk4jyv3yywYc_= txQdEPlsbY-k3lYKbc+@%o`~u=?;n3cVMTr0a002ovPDHLkV1n0I!nFVZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_debris_radiating.png b/src/main/resources/assets/hbm/textures/blocks/rbmk/rbmk_debris_radiating.png new file mode 100644 index 0000000000000000000000000000000000000000..0bb923220f80f3ecb71aeaabfdf1c46b09e1af2f GIT binary patch literal 681 zcmV;a0#^NrP)%u5D*$5}tyV_cskNdZ5>p~A8J%8MJIGiIfGm_eD|F{hzRig+(<+lD^BXwL_^K2UW;Z(QY0GUIY@xO4&yxV~cU zfXPH<4rosn71m>Bv_PyEk}vD5v50pj^jh+UFRe3xEF-7hpkWwP$ zgs5XoL%Rg>y5U_#q~hC(+RpELXYDuk>iJU!&ne(x&WVkI8-r?~<#xpdkm2w|!YurE zt*BFeog>{vdV_946~%CL6P$TUDd>JL_$A?RL3Wx9C2r1!H zW>!N+M7Km(GAe;FCwV(?yFWO+ys{c-S{8E7yuH1WQXr_Or;TN=rhJtv6HyF-HCZ*pF43OYs#O P00000NkvXXu0mjf=PfXY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/debris_fuel.png b/src/main/resources/assets/hbm/textures/items/debris_fuel.png new file mode 100644 index 0000000000000000000000000000000000000000..8728a7ba79dc3d521215de118912aeb2a1aa56cd GIT binary patch literal 471 zcmV;|0Vw{7P)u^Nn#UnaSpwNKraa)&`bY+XfgESLvjtY zn8e0r*Xzo=Gs+=QaLxLXxoKwf@!k`HPnPK$jPJ+ET8pZ(m@azv2LCrkx1(g7;e2vV zC<0|!^2~Eel34y)9)R{57Y`SyyetVtpePGY!U;uQP&E~GQ}Z%=IZ$(;VEt#!)we4$ zp8>F{S8O&Ly0+tNa)z}wz5aYPy@2ccYi5r#R21hO(hB1*V`3GFbv&Ly(!_4Jk#N?bsu&ErxT9;k0}Fevu$V5)zz>qN z!rk{fGM}-kR;Vh~yh2*xZThxH==~(4+fnkt)3qG~KVbei@7?`Wy#orbvD^*iBeMVi N002ovPDHLkV1l^(&CUP- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/debris_fuel_alt.png b/src/main/resources/assets/hbm/textures/items/debris_fuel_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..3b6ec3fb5f96db9c7c92efa670df79317aed3baa GIT binary patch literal 357 zcmV-r0h<1aP)eeVq zGmzp)6ec>*7#u(uGW0C=@#R0??+g5QjCw~yD%0N%toe((zRfC9s7Mj7V_WPhK}aQ+ zlGXDHfFwx(IJ_MONje11gF~uQ0H)y-02Qf0l8!+6Qxb@Pxj#1|p74-M*(=frgjDf5 z#((rlb;{;-gVq{={l^{vcjk6PEP^CS5JI4}#uFa7&Iv?Nlby;w2eyDGJOUAr>)hl3 z&e$>SrIqGnL#oBg!lY;Hw!oRB*cIkh?%M>%uOsED#2Gsj-$m_v;*x!4xD)q^g)O7( zJ+rD&J3&54L(;BpTWDEvXHB(YSJ?9x59;Q>aC7_u2)>-*MGeHov5DR6Rc>)z-<^?S5=LPNTEi&j^ z2x%;$L`@hY?44w=^$>2%88-X3Y1vb(!WUDp&vL6&9Tx>5f-BEsY2 zBPS;(93CFBwY9~|%L`9WPc%)#>FFtp#X^3RaCLRX&CLzgTDG^hF~%^T&ne52s;cn3 zp^5>(ImhScC)d~4#Bog9w!FW;b9;MB7=|1lACu?#IKcBfk|aSy@H~&#*H?@&TwGjG zRTV{1ATm%eoPqEAJU>69lp;wI_V@RRqKLL_5fS1z#yK|*aL%!_vxA86_Vz|y*N6x~ z5TLbYv)Q1O8V867VHo0^qwjk}1Y-+pS_rfD$7{Jh5XdhJan6Y08+)oMi$1e9fowU#{3Y1@`8 t%LateCpkMilfQ=)1Oaz zh^tGqZ3P4w5@s#y_w7m(yg5_Sg+=MmCLIIg6{}VY-SG_ain#t&MYHdN*ba%unQLCJ zwOOZWZfIQbeqvD5OvPgyp{1csb856D^Ai0htv|5;DeJt$F-aSuIbQ+2!QkoY=d#Wz Gp$PyVSYn$1 literal 0 HcmV?d00001