diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f6cc996a9..cd4e7b28a 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -299,14 +299,26 @@ public class ModBlocks { public static Block deco_pipe_rusted; public static Block deco_pipe_green; public static Block deco_pipe_green_rusted; + public static Block deco_pipe_red; + public static Block deco_pipe_marked; public static Block deco_pipe_rim; public static Block deco_pipe_rim_rusted; public static Block deco_pipe_rim_green; public static Block deco_pipe_rim_green_rusted; + public static Block deco_pipe_rim_red; + public static Block deco_pipe_rim_marked; + public static Block deco_pipe_framed; + public static Block deco_pipe_framed_rusted; + public static Block deco_pipe_framed_green; + public static Block deco_pipe_framed_green_rusted; + public static Block deco_pipe_framed_red; + public static Block deco_pipe_framed_marked; public static Block deco_pipe_quad; public static Block deco_pipe_quad_rusted; public static Block deco_pipe_quad_green; public static Block deco_pipe_quad_green_rusted; + public static Block deco_pipe_quad_red; + public static Block deco_pipe_quad_marked; public static Block broadcaster_pc; public static Block geiger; @@ -887,6 +899,7 @@ public class ModBlocks { public static final int guiID_rbmk_control = 115; public static final int guiID_rbmk_control_auto = 116; public static final int guiID_rbmk_console = 117; + public static Block rbmk_loader; public static Block pribris; public static Block pribris_burning; public static Block pribris_radiating; @@ -1284,14 +1297,26 @@ public class ModBlocks { deco_pipe_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 0).setBlockName("deco_pipe_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); deco_pipe_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 0).setBlockName("deco_pipe_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); deco_pipe_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 0).setBlockName("deco_pipe_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 0).setBlockName("deco_pipe_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 0).setBlockName("deco_pipe_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); deco_pipe_rim = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 1).setBlockName("deco_pipe_rim").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); deco_pipe_rim_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 1).setBlockName("deco_pipe_rim_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); deco_pipe_rim_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 1).setBlockName("deco_pipe_rim_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); deco_pipe_rim_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 1).setBlockName("deco_pipe_rim_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_rim_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 1).setBlockName("deco_pipe_rim_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_rim_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 1).setBlockName("deco_pipe_rim_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); + deco_pipe_framed = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 3).setBlockName("deco_pipe_framed").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); + deco_pipe_framed_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 3).setBlockName("deco_pipe_framed_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); + deco_pipe_framed_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 3).setBlockName("deco_pipe_framed_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); + deco_pipe_framed_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 3).setBlockName("deco_pipe_framed_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_framed_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 3).setBlockName("deco_pipe_framed_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_framed_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 3).setBlockName("deco_pipe_framed_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); deco_pipe_quad = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side", 2).setBlockName("deco_pipe_quad").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top"); deco_pipe_quad_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_rusty", 2).setBlockName("deco_pipe_quad_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_rusty"); deco_pipe_quad_green = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green", 2).setBlockName("deco_pipe_quad_green").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green"); deco_pipe_quad_green_rusted = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_green_rusty", 2).setBlockName("deco_pipe_quad_green_rusted").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_green_rusty"); + deco_pipe_quad_red = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_red", 2).setBlockName("deco_pipe_quad_red").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_red"); + deco_pipe_quad_marked = new BlockPipe(Material.iron, RefStrings.MODID + ":pipe_side_marked", 2).setBlockName("deco_pipe_quad_marked").setStepSound(soundTypeGrate).setCreativeTab(MainRegistry.blockTab).setHardness(2.0F).setResistance(5.0F).setBlockTextureName(RefStrings.MODID + ":pipe_top_marked"); 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"); @@ -1652,6 +1677,7 @@ public class ModBlocks { rbmk_absorber = new RBMKAbsorber().setBlockName("rbmk_absorber").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_absorber"); rbmk_moderator = new RBMKModerator().setBlockName("rbmk_moderator").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_moderator"); rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console"); + rbmk_loader = new BlockGeneric(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader"); 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"); @@ -2118,18 +2144,30 @@ public class ModBlocks { GameRegistry.registerBlock(steel_beam, steel_beam.getUnlocalizedName()); GameRegistry.registerBlock(steel_scaffold, steel_scaffold.getUnlocalizedName()); GameRegistry.registerBlock(steel_grate, steel_grate.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe, deco_pipe.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rusted, deco_pipe_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_green, deco_pipe_green.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_green_rusted, deco_pipe_green_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rim, deco_pipe_rim.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rim_rusted, deco_pipe_rim_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rim_green, deco_pipe_rim_green.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_rim_green_rusted, deco_pipe_rim_green_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_quad, deco_pipe_quad.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_quad_rusted, deco_pipe_quad_rusted.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_quad_green, deco_pipe_quad_green.getUnlocalizedName()); - GameRegistry.registerBlock(deco_pipe_quad_green_rusted, deco_pipe_quad_green_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe, ItemBlockDecoPipe.class, deco_pipe.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rusted, ItemBlockDecoPipe.class, deco_pipe_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_green, ItemBlockDecoPipe.class, deco_pipe_green.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_green_rusted, ItemBlockDecoPipe.class, deco_pipe_green_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_red, ItemBlockDecoPipe.class, deco_pipe_red.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_marked, ItemBlockDecoPipe.class, deco_pipe_marked.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim, ItemBlockDecoPipe.class, deco_pipe_rim.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_rusted, ItemBlockDecoPipe.class, deco_pipe_rim_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_green, ItemBlockDecoPipe.class, deco_pipe_rim_green.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_green_rusted, ItemBlockDecoPipe.class, deco_pipe_rim_green_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_red, ItemBlockDecoPipe.class, deco_pipe_rim_red.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_rim_marked, ItemBlockDecoPipe.class, deco_pipe_rim_marked.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed, ItemBlockDecoPipe.class, deco_pipe_framed.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed_rusted, ItemBlockDecoPipe.class, deco_pipe_framed_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed_green, ItemBlockDecoPipe.class, deco_pipe_framed_green.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed_green_rusted, ItemBlockDecoPipe.class, deco_pipe_framed_green_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed_red, ItemBlockDecoPipe.class, deco_pipe_framed_red.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_framed_marked, ItemBlockDecoPipe.class, deco_pipe_framed_marked.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad, ItemBlockDecoPipe.class, deco_pipe_quad.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_rusted, ItemBlockDecoPipe.class, deco_pipe_quad_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_green, ItemBlockDecoPipe.class, deco_pipe_quad_green.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_green_rusted, ItemBlockDecoPipe.class, deco_pipe_quad_green_rusted.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_red, ItemBlockDecoPipe.class, deco_pipe_quad_red.getUnlocalizedName()); + GameRegistry.registerBlock(deco_pipe_quad_marked, ItemBlockDecoPipe.class, deco_pipe_quad_marked.getUnlocalizedName()); GameRegistry.registerBlock(mush, mush.getUnlocalizedName()); GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName()); GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName()); @@ -2345,6 +2383,7 @@ public class ModBlocks { GameRegistry.registerBlock(rbmk_absorber, rbmk_absorber.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_moderator, rbmk_moderator.getUnlocalizedName()); GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName()); + GameRegistry.registerBlock(rbmk_loader, rbmk_loader.getUnlocalizedName()); GameRegistry.registerBlock(pribris, pribris.getUnlocalizedName()); GameRegistry.registerBlock(pribris_burning, pribris_burning.getUnlocalizedName()); GameRegistry.registerBlock(pribris_radiating, pribris_radiating.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/fluid/SchrabidicBlock.java b/src/main/java/com/hbm/blocks/fluid/SchrabidicBlock.java index b537452f8..830678401 100644 --- a/src/main/java/com/hbm/blocks/fluid/SchrabidicBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/SchrabidicBlock.java @@ -5,6 +5,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -12,6 +14,7 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.DamageSource; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -71,7 +74,9 @@ public class SchrabidicBlock extends BlockFluidClassic { @Override public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { entity.setInWeb(); - ContaminationUtil.applyRadData(entity, 1.0F); + + if(entity instanceof EntityLivingBase) + ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1.0F); } @Override diff --git a/src/main/java/com/hbm/blocks/fluid/ToxicBlock.java b/src/main/java/com/hbm/blocks/fluid/ToxicBlock.java index 81aa473d9..3aeb340d5 100644 --- a/src/main/java/com/hbm/blocks/fluid/ToxicBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/ToxicBlock.java @@ -5,6 +5,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -12,6 +14,7 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.DamageSource; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -71,7 +74,9 @@ public class ToxicBlock extends BlockFluidClassic { @Override public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { entity.setInWeb(); - ContaminationUtil.applyRadData(entity, 1.0F); + + if(entity instanceof EntityLivingBase) + ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 1.0F); } @Override diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java b/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java index 5b04beb09..3ebbeb74a 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasAsbestos.java @@ -3,6 +3,8 @@ package com.hbm.blocks.gas; import java.util.Random; import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -26,7 +28,7 @@ public class BlockGasAsbestos extends BlockGasBase { public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { if(entity instanceof EntityLivingBase) { - ContaminationUtil.applyAsbestos(entity, 1); + ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.ASBESTOS, ContaminationType.GAS, 1); } } diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java b/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java index 8586ee29f..68b5ba189 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasRadon.java @@ -4,6 +4,8 @@ import java.util.Random; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -17,7 +19,7 @@ public class BlockGasRadon extends BlockGasBase { public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) { if(entity instanceof EntityLivingBase) { - ContaminationUtil.applyRadDirect(entity, 0.05F); + ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 0.05F); } } diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java b/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java index 249dc6f48..3a4d784aa 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasRadonDense.java @@ -5,6 +5,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.potion.HbmPotion; import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -21,7 +23,7 @@ public class BlockGasRadonDense extends BlockGasBase { public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) { if(entity instanceof EntityLivingBase) { - ContaminationUtil.applyRadDirect(entity, 0.5F); + ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.GAS, 0.5F); ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(HbmPotion.radiation.id, 15 * 20, 0)); } } diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasRadonTomb.java b/src/main/java/com/hbm/blocks/gas/BlockGasRadonTomb.java index 0aba79f35..2b6b49a98 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasRadonTomb.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasRadonTomb.java @@ -4,6 +4,8 @@ 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 net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -43,7 +45,7 @@ public class BlockGasRadonTomb extends BlockGasBase { public void onEntityCollidedWithBlock(World world, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity entity) { if(entity instanceof EntityLivingBase) { - ContaminationUtil.applyRadDirect(entity, 0.5F); + ContaminationUtil.contaminate((EntityLivingBase)entity, HazardType.RADIATION, ContaminationType.CREATIVE, 0.5F); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockPipe.java b/src/main/java/com/hbm/blocks/generic/BlockPipe.java index 852f89b0d..735b08905 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockPipe.java +++ b/src/main/java/com/hbm/blocks/generic/BlockPipe.java @@ -1,5 +1,7 @@ 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; @@ -13,6 +15,11 @@ public class BlockPipe extends Block { @SideOnly(Side.CLIENT) private IIcon sideIcon; + @SideOnly(Side.CLIENT) + public IIcon frameIcon; + @SideOnly(Side.CLIENT) + public IIcon meshIcon; + private String sideString; public int rType = 0; //because registering either new renderer classes or making new block classes is a pain in the ass @@ -27,6 +34,8 @@ public class BlockPipe extends Block { public void registerBlockIcons(IIconRegister iconRegister) { super.registerBlockIcons(iconRegister); this.sideIcon = iconRegister.registerIcon(sideString); + this.frameIcon = iconRegister.registerIcon(RefStrings.MODID + ":pipe_frame"); + this.meshIcon = iconRegister.registerIcon(RefStrings.MODID + ":pipe_mesh"); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java index a7a18c655..c651aabd8 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKConsole.java @@ -56,7 +56,7 @@ public class RBMKConsole extends BlockDummyable { int[] pos = this.findCore(world, x, y, z); if(pos == null) - return false; + return true; TileEntityRBMKConsole entity = (TileEntityRBMKConsole) world.getTileEntity(pos[0], pos[1], pos[2]); if(entity != null) { diff --git a/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java b/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java index 359f12b27..0aa26034c 100644 --- a/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java +++ b/src/main/java/com/hbm/entity/mob/EntityNuclearCreeper.java @@ -12,11 +12,14 @@ 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 cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.EntityAIAttackOnCollide; import net.minecraft.entity.ai.EntityAIHurtByTarget; @@ -182,11 +185,12 @@ public class EntityNuclearCreeper extends EntityMob { } } - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); for(Entity e : list) - if(!(e instanceof EntityNuclearCreeper)) - ContaminationUtil.applyRadData(e, 0.25F); + if(e instanceof EntityLivingBase) { + ContaminationUtil.contaminate((EntityLivingBase)e, HazardType.RADIATION, ContaminationType.CREATIVE, 0.25F); + } super.onUpdate(); diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java index 56442b50f..1aedbd326 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBase.java @@ -12,20 +12,20 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRadiationImmune { - + public int attackCounter = 0; - + protected final IEntitySelector selector = new IEntitySelector() { @Override public boolean isEntityApplicable(Entity ent) { - - if(ent instanceof EntityWormBaseNT && ((EntityWormBaseNT)ent).getHeadID() == EntityBOTPrimeBase.this.getHeadID()) + + if(ent instanceof EntityWormBaseNT && ((EntityWormBaseNT) ent).getHeadID() == EntityBOTPrimeBase.this.getHeadID()) return false; - + return true; } - + }; public EntityBOTPrimeBase(World world) { @@ -39,10 +39,10 @@ public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRa this.dragInGround = 0.98F; this.knockbackDivider = 1.0D; } - - public boolean canEntityBeSeenThroughNonSolids(Entity p_70685_1_) { - return this.worldObj.func_147447_a(Vec3.createVectorHelper(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ), Vec3.createVectorHelper(p_70685_1_.posX, p_70685_1_.posY + (double)p_70685_1_.getEyeHeight(), p_70685_1_.posZ), false, true, false) == null; - } + + public boolean canEntityBeSeenThroughNonSolids(Entity p_70685_1_) { + return this.worldObj.func_147447_a(Vec3.createVectorHelper(this.posX, this.posY + (double) this.getEyeHeight(), this.posZ), Vec3.createVectorHelper(p_70685_1_.posX, p_70685_1_.posY + (double) p_70685_1_.getEyeHeight(), p_70685_1_.posZ), false, true, false) == null; + } @Override protected void applyEntityAttributes() { @@ -52,40 +52,40 @@ public abstract class EntityBOTPrimeBase extends EntityWormBaseNT implements IRa } @Override - protected boolean isAIEnabled() { - return true; - } + protected boolean isAIEnabled() { + return true; + } @Override - protected boolean canDespawn() { - return false; - } - - protected String getHurtSound() { - return "mob.blaze.hit"; - } - - protected String getDeathSound() { - return "hbm:entity.bombDet"; - } - + protected boolean canDespawn() { + return false; + } + + protected String getHurtSound() { + return "mob.blaze.hit"; + } + + protected String getDeathSound() { + return "hbm:entity.bombDet"; + } + protected void laserAttack(Entity target, boolean head) { - + if(!(target instanceof EntityLivingBase)) return; - + EntityLivingBase living = (EntityLivingBase) target; if(head) { - + for(int i = 0; i < 5; i++) { - + EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_LASER, this, living, 1.0F, i * 0.05F); this.worldObj.spawnEntityInWorld(bullet); } - + this.playSound("hbm:weapon.ballsLaser", 5.0F, 0.75F); - + } else { EntityBulletBase bullet = new EntityBulletBase(this.worldObj, BulletConfigSyncingUtil.WORM_BOLT, this, living, 0.5F, 0.125F); this.worldObj.spawnEntityInWorld(bullet); diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBody.java b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBody.java index e9ac116ac..46dcbfc98 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBody.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeBody.java @@ -11,34 +11,33 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class EntityBOTPrimeBody extends EntityBOTPrimeBase { - - private WormMovementBodyNT movement = new WormMovementBodyNT(this); + + //private WormMovementBodyNT movement = new WormMovementBodyNT(this); public EntityBOTPrimeBody(World world) { super(world); - this.bodySpeed = 0.6D; this.rangeForParts = 70.0D; this.segmentDistance = 3.5D; - this.maxBodySpeed = 1.4D; - this.targetTasks.addTask(1, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, this.selector, 128.0D)); + this.maxBodySpeed = 1.4D; + this.targetTasks.addTask(1, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, this.selector, 128.0D)); } - + @Override protected void entityInit() { super.entityInit(); - this.dataWatcher.addObject(17, (byte)0); + this.dataWatcher.addObject(17, (byte) 0); } @Override public float getAttackStrength(Entity target) { - + if(target instanceof EntityLivingBase) { return ((EntityLivingBase) target).getHealth() * 0.75F; } - + return 100; } - + @Override public boolean isPotionApplicable(PotionEffect potion) { return false; @@ -48,8 +47,9 @@ public class EntityBOTPrimeBody extends EntityBOTPrimeBase { protected void updateAITasks() { this.updateEntityActionState(); this.targetTasks.onUpdateTasks(); - this.movement.updateMovement(); + updateMovement(); + if(this.didCheck) { if(this.targetedEntity == null || !this.targetedEntity.isEntityAlive()) { setHealth(getHealth() - 1999.0F); @@ -58,7 +58,7 @@ public class EntityBOTPrimeBody extends EntityBOTPrimeBase { this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.0F, false); } } - + if(this.followed != null && this.followed.isEntityAlive() && getAttackTarget() != null) { if(canEntityBeSeenThroughNonSolids(getAttackTarget())) { this.attackCounter += 1; @@ -73,22 +73,22 @@ public class EntityBOTPrimeBody extends EntityBOTPrimeBase { } else if(this.attackCounter > 0) { this.attackCounter -= 1; } - + if(this.targetedEntity != null) { double dx = targetedEntity.posX - posX; double dy = targetedEntity.posY - posY; double dz = targetedEntity.posZ - posZ; - float f3 = MathHelper.sqrt_double(dx * dx + dz * dz); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(dx, dz) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(dy, f3) * 180.0D / Math.PI); + float f3 = MathHelper.sqrt_double(dx * dx + dz * dz); + this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(dx, dz) * 180.0D / Math.PI); + this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(dy, f3) * 180.0D / Math.PI); } } - + @Override public void onUpdate() { - + super.onUpdate(); - + if(this.targetedEntity != null) { double dx = targetedEntity.posX - posX; double dy = targetedEntity.posY - posY; diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java index 456ece367..7a1a866d5 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityBOTPrimeHead.java @@ -28,8 +28,6 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl //TODO: clean-room implementation of the movement behavior classes (again) - private final WormMovementHeadNT movement = new WormMovementHeadNT(this); - public EntityBOTPrimeHead(World world) { super(world); this.experienceValue = 1000; @@ -58,7 +56,7 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) { if(super.attackEntityFrom(par1DamageSource, par2)) { - this.dmgCooldown = 4; + this.dmgCooldown = 10; return true; } @@ -95,7 +93,7 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl this.updateEntityActionState(); super.updateAITasks(); - this.movement.updateMovement(); + updateHeadMovement(); if((getHealth() < getMaxHealth()) && (this.ticksExisted % 6 == 0)) { if(this.targetedEntity != null) { @@ -164,4 +162,79 @@ public class EntityBOTPrimeHead extends EntityBOTPrimeBase implements IBossDispl this.spawnPoint.set(nbt.getInteger("spawnX"), nbt.getInteger("spawnY"), nbt.getInteger("spawnZ")); } + protected void updateHeadMovement() { + + double deltaX = this.waypointX - this.posX; + double deltaY = this.waypointY - this.posY; + double deltaZ = this.waypointZ - this.posZ; + double deltaSq = deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ; + + if(this.courseChangeCooldown-- <= 0) { + + this.courseChangeCooldown += this.getRNG().nextInt(5) + 2; + deltaSq = MathHelper.sqrt_double(deltaSq); + + if(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ < this.maxSpeed) { + + if(!this.isCourseTraversable()) { + deltaSq *= 8.0D; + } + + double moverSpeed = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getBaseValue(); + this.motionX += deltaX / deltaSq * moverSpeed; + this.motionY += deltaY / deltaSq * moverSpeed; + this.motionZ += deltaZ / deltaSq * moverSpeed; + } + } + + if(!this.isCourseTraversable()) { + this.motionY -= this.fallSpeed; + } + + if(this.dmgCooldown > 0) { + this.dmgCooldown -= 1; + } + + this.aggroCooldown -= 1; + + if(this.getAttackTarget() != null) { + + if(this.aggroCooldown <= 0) { + this.targetedEntity = this.getAttackTarget(); + this.aggroCooldown = 20; + } + + } else if(this.targetedEntity == null) { + this.waypointX = this.spawnPoint.posX - 50 + this.getRNG().nextInt(100); + this.waypointY = this.spawnPoint.posY - 30 + this.getRNG().nextInt(60); + this.waypointZ = this.spawnPoint.posZ - 50 + this.getRNG().nextInt(100); + } + + this.rotationYaw = -(float) -(Math.atan2(this.motionX, this.motionZ) * 180.0F / Math.PI); + this.rotationPitch = (float) -(Math.atan2(this.motionY, MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ)) * 180.0D / Math.PI); + + if(this.targetedEntity != null && this.targetedEntity .getDistanceSqToEntity(this) < this.attackRange * this.attackRange) { + + if(this.wasNearGround || this.canFly) { + + this.waypointX = this.targetedEntity.posX; + this.waypointY = this.targetedEntity.posY; + this.waypointZ = this.targetedEntity.posZ; + + if(this.getRNG().nextInt(80) == 0 && this.posY > this.surfaceY && !this.isCourseTraversable()) { + this.wasNearGround = false; + } + + } else { + + this.waypointX = this.targetedEntity.posX; + this.waypointY = 10.0D; + this.waypointZ = this.targetedEntity.posZ; + + if(this.posY < 15.0D) { + this.wasNearGround = true; + } + } + } + } } diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityBurrowingNT.java b/src/main/java/com/hbm/entity/mob/botprime/EntityBurrowingNT.java index d579e9bbf..fd5176cdb 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityBurrowingNT.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityBurrowingNT.java @@ -1,55 +1,53 @@ package com.hbm.entity.mob.botprime; -import net.minecraft.block.Block; import net.minecraft.entity.EntityCreature; import net.minecraft.world.World; public abstract class EntityBurrowingNT extends EntityCreature { - + protected float dragInAir; protected float dragInGround; - + public EntityBurrowingNT(World world) { super(world); } - - protected void fall(float dist) { } - + + protected void fall(float dist) { + } + public float getEyeHeight() { return this.height * 0.5F; } - + public boolean getIsHead() { return false; } - - protected void updateFallState(double distFallen, boolean onGround) { } - - public void moveEntityWithHeading(float strafe, float forward) { - - float drag = this.dragInGround; - - if((!isEntityInsideOpaqueBlock()) && (!isInWater()) && (!handleLavaMovement())) { - drag = this.dragInAir; - } else if(this.getRNG().nextInt(100) == 0) { - //Block b = worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ)); - //this.playSound(b.stepSound.getStepResourcePath(), 5F, 1F); - } - - if (!getIsHead()) { - drag *= 0.9F; - } - - moveFlying(strafe, forward, 0.02F); - - moveEntity(this.motionX, this.motionY, this.motionZ); - - this.motionX *= drag; - this.motionY *= drag; - this.motionZ *= drag; - } - public boolean isOnLadder() { - return false; - } + protected void updateFallState(double distFallen, boolean onGround) { + } + + public void moveEntityWithHeading(float strafe, float forward) { + + float drag = this.dragInGround; + + if(!isEntityInsideOpaqueBlock() && !isInWater() && !handleLavaMovement()) { + drag = this.dragInAir; + } + + if(!getIsHead()) { + drag *= 0.9F; + } + + moveFlying(strafe, forward, 0.02F); + + moveEntity(this.motionX, this.motionY, this.motionZ); + + this.motionX *= drag; + this.motionY *= drag; + this.motionZ *= drag; + } + + public boolean isOnLadder() { + return false; + } } diff --git a/src/main/java/com/hbm/entity/mob/botprime/EntityWormBaseNT.java b/src/main/java/com/hbm/entity/mob/botprime/EntityWormBaseNT.java index c2a300ebc..0adbff3e2 100644 --- a/src/main/java/com/hbm/entity/mob/botprime/EntityWormBaseNT.java +++ b/src/main/java/com/hbm/entity/mob/botprime/EntityWormBaseNT.java @@ -4,10 +4,12 @@ import java.util.List; import net.minecraft.command.IEntitySelector; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; import net.minecraft.world.EnumDifficulty; import net.minecraft.world.World; @@ -32,7 +34,6 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT { private int headID; private int partNum; protected boolean didCheck; - protected double bodySpeed; protected double maxBodySpeed; protected double segmentDistance; protected double knockbackDivider; @@ -103,12 +104,8 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT { if((this.targetedEntity != null) && (this.targetedEntity.isDead)) { this.targetedEntity = null; } - /*if((getIsHead()) && (this.targetedEntity != null) && ((this.targetedEntity instanceof EntityPlayer))) { - this.entityAge = 0; - }*/ if(this.posY < -10.0D) { - setPositionAndUpdate(this.posX, 128.0D, this.posZ); - this.motionY = 0.0D; + this.motionY = 1D; } else if(this.posY < 3.0D) { this.motionY = 0.3D; } @@ -121,7 +118,7 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT { protected void attackEntitiesInList(List targets) { for(Entity target : targets) { - if(((target instanceof EntityLivingBase)) && (canAttackClass(target.getClass())) && ((!(target instanceof EntityWormBaseNT)) || (((EntityWormBaseNT) target).getHeadID() != this.getHeadID()))) { + if((target instanceof EntityLivingBase) && canAttackClass(target.getClass()) && (!(target instanceof EntityWormBaseNT) || ((EntityWormBaseNT) target).getHeadID() != this.getHeadID())) { attackEntityAsMob(target); } } @@ -155,12 +152,10 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT { public abstract float getAttackStrength(Entity paramsa); @Override - public void addVelocity(double x, double y, double z) { - } + public void addVelocity(double x, double y, double z) { } @Override - public void faceEntity(Entity entity, float yaw, float pitch) { - } + public void faceEntity(Entity entity, float yaw, float pitch) { } protected boolean isCourseTraversable() { return (this.canFly) || (isEntityInsideOpaqueBlock()); @@ -187,4 +182,59 @@ public abstract class EntityWormBaseNT extends EntityBurrowingNT { setHeadID(nbt.getInteger("wormID")); } + protected void updateMovement() { + + double targetingRange = 128.0D; + + if(this.targetedEntity != null && this.targetedEntity.getDistanceSqToEntity(this) < targetingRange * targetingRange) { + this.waypointX = this.targetedEntity.posX; + this.waypointY = this.targetedEntity.posY; + this.waypointZ = this.targetedEntity.posZ; + } + + if((this.ticksExisted % 60 == 0 || this.ticksExisted == 1) && (this.targetedEntity == null || this.followed == null)) { + findEntityToFollow(this.worldObj.selectEntitiesWithinAABB(EntityLiving.class, this.boundingBox.expand(this.rangeForParts, this.rangeForParts, this.rangeForParts), EntityWormBaseNT.wormSelector)); + } + + double deltaX = this.waypointX - this.posX; + double deltaY = this.waypointY - this.posY; + double deltaZ = this.waypointZ - this.posZ; + double deltaDist = MathHelper.sqrt_double(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); + + if(this.targetedEntity != null) { + this.faceEntity(this.targetedEntity, 180.0F, 180.0F); + } + + double speed = Math.max(0.0D, Math.min(deltaDist - this.segmentDistance, this.maxBodySpeed)); + + if(deltaDist < this.segmentDistance * 0.895D) { + this.motionX *= 0.8D; + this.motionY *= 0.8D; + this.motionZ *= 0.8D; + } else { + this.motionX = (deltaX / deltaDist * speed); + this.motionY = (deltaY / deltaDist * speed); + this.motionZ = (deltaZ / deltaDist * speed); + } + } + + protected void findEntityToFollow(List segments) { + + for(EntityWormBaseNT segment : segments) { + + if(segment.getHeadID() == this.getHeadID()) { + + if(segment.getIsHead()) { + if(this.getPartNumber() == 0) { + this.targetedEntity = ((Entity) segment); + } + this.followed = ((EntityLivingBase) segment); + + } else if(segment.getPartNumber() == this.getPartNumber() - 1) { + this.targetedEntity = ((Entity) segment); + } + } + } + this.didCheck = true; + } } diff --git a/src/main/java/com/hbm/entity/mob/botprime/WormMovementBodyNT.java b/src/main/java/com/hbm/entity/mob/botprime/WormMovementBodyNT.java deleted file mode 100644 index d4ad5459f..000000000 --- a/src/main/java/com/hbm/entity/mob/botprime/WormMovementBodyNT.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.hbm.entity.mob.botprime; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.MathHelper; - -public class WormMovementBodyNT { - private EntityWormBaseNT user; - - public WormMovementBodyNT(EntityWormBaseNT user) { - this.user = user; - } - - protected void updateMovement() { - - double targetingRange = 128.0D; - - if((this.user.targetedEntity != null) && (this.user.targetedEntity.getDistanceSqToEntity(this.user) < targetingRange * targetingRange)) { - this.user.waypointX = this.user.targetedEntity.posX; - this.user.waypointY = this.user.targetedEntity.posY; - this.user.waypointZ = this.user.targetedEntity.posZ; - } - - if(((this.user.ticksExisted % 60 == 0) || (this.user.ticksExisted == 1)) && ((this.user.targetedEntity == null) || (this.user.followed == null))) { - findEntityToFollow(this.user.worldObj.selectEntitiesWithinAABB(EntityLiving.class, this.user.boundingBox.expand(this.user.rangeForParts, this.user.rangeForParts, this.user.rangeForParts), EntityWormBaseNT.wormSelector)); - } - - double deltaX = this.user.waypointX - this.user.posX; - double deltaY = this.user.waypointY - this.user.posY; - double deltaZ = this.user.waypointZ - this.user.posZ; - double deltaDist = MathHelper.sqrt_double(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); - - if(this.user.targetedEntity != null) { - this.user.faceEntity(this.user.targetedEntity, 180.0F, 180.0F); - } - - this.user.bodySpeed = Math.max(0.0D, Math.min(deltaDist - this.user.segmentDistance, this.user.maxBodySpeed)); - - if(deltaDist < this.user.segmentDistance * 0.895D) { - this.user.motionX *= 0.8D; - this.user.motionY *= 0.8D; - this.user.motionZ *= 0.8D; - } else { - this.user.motionX = (deltaX / deltaDist * this.user.bodySpeed); - this.user.motionY = (deltaY / deltaDist * this.user.bodySpeed); - this.user.motionZ = (deltaZ / deltaDist * this.user.bodySpeed); - } - } - - protected void findEntityToFollow(List segments) { - - for(EntityWormBaseNT segment : segments) { - - if(segment.getHeadID() == this.user.getHeadID()) { - - if(segment.getIsHead()) { - if(this.user.getPartNumber() == 0) { - this.user.targetedEntity = ((Entity) segment); - } - this.user.followed = ((EntityLivingBase) segment); - - } else if(segment.getPartNumber() == this.user.getPartNumber() - 1) { - this.user.targetedEntity = ((Entity) segment); - } - } - } - this.user.didCheck = true; - } -} diff --git a/src/main/java/com/hbm/entity/mob/botprime/WormMovementHeadNT.java b/src/main/java/com/hbm/entity/mob/botprime/WormMovementHeadNT.java deleted file mode 100644 index 7016dbf10..000000000 --- a/src/main/java/com/hbm/entity/mob/botprime/WormMovementHeadNT.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.hbm.entity.mob.botprime; - -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.util.MathHelper; - -public class WormMovementHeadNT { - - private EntityWormBaseNT user; - - public WormMovementHeadNT(EntityWormBaseNT user) { - this.user = user; - } - - protected void updateMovement() { - - double deltaX = this.user.waypointX - this.user.posX; - double deltaY = this.user.waypointY - this.user.posY; - double deltaZ = this.user.waypointZ - this.user.posZ; - double deltaSq = deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ; - - if(this.user.courseChangeCooldown-- <= 0) { - - this.user.courseChangeCooldown += this.user.getRNG().nextInt(5) + 2; - deltaSq = MathHelper.sqrt_double(deltaSq); - - if(this.user.motionX * this.user.motionX + this.user.motionY * this.user.motionY + this.user.motionZ * this.user.motionZ < this.user.maxSpeed) { - - if(!this.user.isCourseTraversable()) { - deltaSq *= 8.0D; - } - - double moverSpeed = this.user.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getBaseValue(); - this.user.motionX += deltaX / deltaSq * moverSpeed; - this.user.motionY += deltaY / deltaSq * moverSpeed; - this.user.motionZ += deltaZ / deltaSq * moverSpeed; - } - } - - if(!this.user.isCourseTraversable()) { - this.user.motionY -= this.user.fallSpeed; - } - - if(this.user.dmgCooldown > 0) { - this.user.dmgCooldown -= 1; - } - - this.user.aggroCooldown -= 1; - - if(this.user.getAttackTarget() != null) { - - if(this.user.aggroCooldown <= 0) { - this.user.targetedEntity = this.user.getAttackTarget(); - this.user.aggroCooldown = 20; - } - - } else if(this.user.targetedEntity == null) { - this.user.waypointX = (this.user.spawnPoint.posX - 30 + this.user.getRNG().nextInt(60)); - this.user.waypointY = (this.user.spawnPoint.posY - 10 + this.user.getRNG().nextInt(20)); - this.user.waypointZ = (this.user.spawnPoint.posZ - 30 + this.user.getRNG().nextInt(60)); - } - - this.user.rotationYaw = -(float) -(Math.atan2(this.user.motionX, this.user.motionZ) * 180.0F / Math.PI); - this.user.rotationPitch = (float) -(Math.atan2(this.user.motionY, MathHelper.sqrt_double(this.user.motionX * this.user.motionX + this.user.motionZ * this.user.motionZ)) * 180.0D / Math.PI); - - if(this.user.targetedEntity != null && this.user.targetedEntity .getDistanceSqToEntity(this.user) < this.user.attackRange * this.user.attackRange) { - - if((this.user.wasNearGround) || (this.user.canFly)) { - - this.user.waypointX = this.user.targetedEntity.posX; - this.user.waypointY = this.user.targetedEntity.posY; - this.user.waypointZ = this.user.targetedEntity.posZ; - - if((this.user.getRNG().nextInt(80) == 0) && (this.user.posY > this.user.surfaceY) && (!this.user.isCourseTraversable())) { - this.user.wasNearGround = false; - } - - } else { - - this.user.waypointX = this.user.targetedEntity.posX; - this.user.waypointY = 10.0D; - this.user.waypointZ = this.user.targetedEntity.posZ; - - if(this.user.posY < 15.0D) { - this.user.wasNearGround = true; - } - } - } - } -} diff --git a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBallsOTronBase.java b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBallsOTronBase.java deleted file mode 100644 index a7dc91463..000000000 --- a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBallsOTronBase.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.hbm.entity.mob.sodtekhnologiyah; - -import net.minecraft.command.IEntitySelector; -import net.minecraft.entity.Entity; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public abstract class EntityBallsOTronBase extends EntityWormBase { - - public int attackCounter = 0; - - protected final IEntitySelector selector = new IEntitySelector() { - - @Override - public boolean isEntityApplicable(Entity ent) { - - if(ent instanceof EntityWormBase && ((EntityWormBase)ent).getUniqueWormID() == EntityBallsOTronBase.this.getUniqueWormID()) - return false; - - return true; - } - - }; - - public EntityBallsOTronBase(World world) { - super(world); - this.setSize(2.0F, 2.0F); - this.isImmuneToFire = true; - this.isAirBorne = true; - this.noClip = true; - this.renderDistanceWeight = 15.0D; - this.dragInAir = 0.995F; - this.dragInGround = 0.98F; - this.knockbackDivider = 1.0D; - } - - public boolean canEntityBeSeenThroughNonSolids(Entity p_70685_1_) { - return this.worldObj.func_147447_a(Vec3.createVectorHelper(this.posX, this.posY + (double)this.getEyeHeight(), this.posZ), Vec3.createVectorHelper(p_70685_1_.posX, p_70685_1_.posY + (double)p_70685_1_.getEyeHeight(), p_70685_1_.posZ), false, true, false) == null; - } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(5000.0D); - } - - @Override - protected boolean isAIEnabled() { - return true; - } - - @Override - protected boolean canDespawn() { - return false; - } -} diff --git a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBallsOTronHead.java b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBallsOTronHead.java deleted file mode 100644 index 856753c5d..000000000 --- a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBallsOTronHead.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.hbm.entity.mob.sodtekhnologiyah; - -import com.hbm.entity.mob.EntityAINearestAttackableTargetNT; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IEntityLivingData; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIHurtByTarget; -import net.minecraft.entity.boss.IBossDisplayData; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.IChatComponent; -import net.minecraft.world.World; - -public class EntityBallsOTronHead extends EntityBallsOTronBase implements IBossDisplayData { - - /* ___ _ _ _ ___ ___ _____ ___ ___ _ _ - * | _ ) /_\ | | | | / __| ___ | | ___ |_ _| _ )| | \| | - * | _ \/ _ \| |__| |__\__ \ |___| | | | |___| | | | \| | | | - * |___/_/ \_\____|____|___/ |___| |_| |_|\_\___|_|\_| - */ - - private final WormMovementHead movement = new WormMovementHead(this); - - public EntityBallsOTronHead(World world) { - super(world); - this.experienceValue = 1000; - this.wasNearGround = false; - this.attackRange = 150.0D; - this.setSize(3.0F, 3.0F); - this.maxSpeed = 1.0D; - this.fallSpeed = 0.006D; - this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false)); - this.targetTasks.addTask(2, new EntityAINearestAttackableTargetNT(this, EntityPlayer.class, 0, false, false, null, 128.0D)); - this.targetTasks.addTask(3, new EntityAINearestAttackableTargetNT(this, Entity.class, 0, false, false, this.selector, 50.0D)); - } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.15D); - } - - @Override - public boolean getIsHead() { - return true; - } - - @Override - public boolean attackEntityFrom(DamageSource par1DamageSource, float par2) { - - if(super.attackEntityFrom(par1DamageSource, par2)) { - this.dmgCooldown = 4; - return true; - } - - return false; - } - - public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) { - - /*setUniqueWormID(this.rand.nextInt(4096)); - - int x = MathHelper.floor_double(this.posX); - int y = MathHelper.floor_double(this.posY); - int z = MathHelper.floor_double(this.posZ); - - for (int o = 0; o < 119; o++) { - - EntityBallsOTronSegment bodyPart = new EntityBallsOTronSegment(this.worldObj); - bodyPart.setPartID(o); - bodyPart.setPosition(x, y, z); - bodyPart.setUniqueWormID(getUniqueWormID()); - this.worldObj.spawnEntityInWorld(bodyPart); - } - - setPosition(x, y, z); - this.spawnPoint.set(x, y, z); - - this.aggroCooldown = 60; - return super.onSpawnWithEgg(data);*/ - - //TODO: unlock this - - this.setDead(); - - return data; - } - - @Override - protected void updateAITasks() { - - super.updateAITasks(); - - this.movement.updateMovement(); - - if ((getHealth() < getMaxHealth()) && (this.ticksExisted % 6 == 0)) { - if (this.targetedEntity != null) { - heal(1.0F); - } else if (this.recentlyHit == 0) { - heal(4.0F); - } - } - if ((this.targetedEntity != null) && (this.targetedEntity.getDistanceSqToEntity(this) < this.attackRange * this.attackRange)) - { - if (canEntityBeSeenThroughNonSolids(this.targetedEntity)) - { - this.attackCounter += 1; - if (this.attackCounter == 10) - { - //useLaser(this.targetedEntity, true); - - this.attackCounter = -20; - } - } - else if (this.attackCounter > 0) - { - this.attackCounter -= 1; - } - } - else if (this.attackCounter > 0) { - this.attackCounter -= 1; - } - } - - @Override - public float getAttackStrength(Entity target) { - - if(target instanceof EntityLivingBase) { - return ((EntityLivingBase) target).getHealth() * 0.75F; - } - - return 100; - } - - @Override - public IChatComponent func_145748_c_() { - return super.func_145748_c_(); - } - - public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) - { - super.writeEntityToNBT(par1NBTTagCompound); - par1NBTTagCompound.setInteger("AggroCD", this.aggroCooldown); - par1NBTTagCompound.setInteger("CenterX", this.spawnPoint.posX); - par1NBTTagCompound.setInteger("CenterY", this.spawnPoint.posY); - par1NBTTagCompound.setInteger("CenterZ", this.spawnPoint.posZ); - } - - public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) - { - super.readEntityFromNBT(par1NBTTagCompound); - this.aggroCooldown = par1NBTTagCompound.getInteger("AggroCD"); - this.spawnPoint.set(par1NBTTagCompound.getInteger("CenterX"), par1NBTTagCompound.getInteger("CenterY"), par1NBTTagCompound.getInteger("CenterZ")); - } - -} diff --git a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBallsOTronSegment.java b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBallsOTronSegment.java deleted file mode 100644 index 69b1c989c..000000000 --- a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBallsOTronSegment.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.hbm.entity.mob.sodtekhnologiyah; - -import com.hbm.entity.mob.EntityAINearestAttackableTargetNT; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class EntityBallsOTronSegment extends EntityBallsOTronBase { - - private WormMovementBody movement = new WormMovementBody(this); - - public EntityBallsOTronSegment(World world) { - super(world); - this.bodySpeed = 0.6D; - this.rangeForParts = 70.0D; - this.segmentDistance = 1.9D; - this.maxBodySpeed = 1.4D; - this.targetTasks.addTask(1, new EntityAINearestAttackableTargetNT(this, EntityLivingBase.class, 0, true, false, this.selector, 128.0D)); - } - - @Override - protected void entityInit() { - super.entityInit(); - this.dataWatcher.addObject(17, (byte)0); - } - - @Override - public float getAttackStrength(Entity target) { - - if(target instanceof EntityLivingBase) { - return ((EntityLivingBase) target).getHealth() * 0.75F; - } - - return 100; - } - - @Override - protected void updateAITasks() { - this.movement.updateMovement(); - - if((this.followed != null) && (getPartID() == 0)) { - //this.dataWatcher.updateObject(17, Byte.valueOf((byte) (((EntityBallsOTronHead) this.followed).isArmored() ? 1 : 0))); - } else if(this.targetedEntity != null) { - this.dataWatcher.updateObject(17, Byte.valueOf(this.targetedEntity.getDataWatcher().getWatchableObjectByte(17))); - } - if(this.didCheck) { - if(this.targetedEntity == null || !this.targetedEntity.isEntityAlive()) { - setHealth(getHealth() - 1999.0F); - } - if(((this.followed == null) || (!this.followed.isEntityAlive())) && (this.rand.nextInt(60) == 0)) { - this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 2.0F, false); - } - } - if((this.followed != null) && (getAttackTarget() != null)) { - if(canEntityBeSeenThroughNonSolids(getAttackTarget())) { - this.attackCounter += 1; - if(this.attackCounter == 10) { - //useLaser(o(), false); - - this.attackCounter = -20; - } - } else if(this.attackCounter > 0) { - this.attackCounter -= 1; - } - } else if(this.attackCounter > 0) { - this.attackCounter -= 1; - } - - float f3 = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); - this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(motionX, motionZ) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(motionY, f3) * 180.0D / Math.PI); - } - - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setInteger("partID", this.getPartID()); - } - - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - setPartID(nbt.getInteger("partID")); - } -} diff --git a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBurrowing.java b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBurrowing.java deleted file mode 100644 index ed6fd103a..000000000 --- a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityBurrowing.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.hbm.entity.mob.sodtekhnologiyah; - -import net.minecraft.entity.EntityCreature; -import net.minecraft.world.World; - -public abstract class EntityBurrowing extends EntityCreature { - - protected float dragInAir; - protected float dragInGround; - - public EntityBurrowing(World world) { - super(world); - } - - /* - * No need to update this - */ - protected void fall(float dist) { } - - /* - * Our "eye"-height should always be centered - */ - public float getEyeHeight() { - return this.height * 0.5F; - } - - public boolean getIsHead() { - return false; - } - - /* - * No fall damage :P - */ - protected void updateFallState(double distFallen, boolean onGround) { } - - public void moveEntityWithHeading(float strafe, float forward) { - - float drag = this.dragInGround; - if ((!isEntityInsideOpaqueBlock()) && (!isInWater()) && (!handleLavaMovement())) - { - drag = this.dragInAir; - } - else - { - this.distanceWalkedModified = ((float)(this.distanceWalkedModified + Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ) * 0.4D)); - this.distanceWalkedOnStepModified = ((float)(this.distanceWalkedOnStepModified + Math.sqrt(this.motionX * this.motionX + this.motionZ * this.motionZ + this.motionY * this.motionY) * 0.4D)); - /*if (this.distanceWalkedOnStepModified > this.nextStepDistance) - { - //this.nextStepDistance = ((int)this.distanceWalkedOnStepModified + 1); - if (isInWater()) - { - float var39 = (float) (Math.sqrt(this.motionX * this.motionX * 0.2D + this.motionY * this.motionY + this.motionZ * this.motionZ * 0.2) * 0.35F); - if (var39 > 1.0F) { - var39 = 1.0F; - } - playSound("liquid.swim", var39, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.4F); - } - if (getIsHead()) { - playSound("alexmod.destroyer.dig", getSoundVolume(), 1.0F); - } - }*/ - } - if (!getIsHead()) { - drag *= 0.9F; - } - moveFlying(strafe, forward, 0.02F); - - moveEntity(this.motionX, this.motionY, this.motionZ); - this.motionX *= drag; - this.motionY *= drag; - this.motionZ *= drag; - - this.prevLimbSwingAmount = this.limbSwingAmount; - double deltaX = this.posX - this.prevPosX; - double deltaZ = this.posZ - this.prevPosZ; - float dist = (float) Math.sqrt(deltaX * deltaX + deltaZ * deltaZ) * 4.0F; - if (dist > 1.0F) { - dist = 1.0F; - } - this.limbSwingAmount += (dist - this.limbSwingAmount) * 0.4F; - this.limbSwing += this.limbSwingAmount; - } - - public boolean isOnLadder() { - return false; - } - -} diff --git a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityWormBase.java b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityWormBase.java deleted file mode 100644 index 2865e4a2d..000000000 --- a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/EntityWormBase.java +++ /dev/null @@ -1,179 +0,0 @@ -package com.hbm.entity.mob.sodtekhnologiyah; - -import java.util.List; - -import net.minecraft.command.IEntitySelector; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChunkCoordinates; -import net.minecraft.util.DamageSource; -import net.minecraft.world.EnumDifficulty; -import net.minecraft.world.World; - -public abstract class EntityWormBase extends EntityBurrowing { - - public int aggroCooldown = 0; - public int courseChangeCooldown = 0; - public double waypointX; - public double waypointY; - public double waypointZ; - protected Entity targetedEntity = null; - protected boolean canFly = false; - protected int dmgCooldown = 0; - protected boolean wasNearGround; - protected ChunkCoordinates spawnPoint = new ChunkCoordinates(); - protected double attackRange; - protected double maxSpeed; - protected double fallSpeed; - protected double rangeForParts; - protected EntityLivingBase followed; - protected int surfaceY; - private int uniqueWormID; - private int partID; - protected boolean didCheck; - protected double bodySpeed; - protected double maxBodySpeed; - protected double segmentDistance; - protected double knockbackDivider; - protected int attackTick; - - public static final IEntitySelector wormSelector = new IEntitySelector() { - - @Override - public boolean isEntityApplicable(Entity target) { - return target instanceof EntityWormBase; - } - }; - - public EntityWormBase(World world) { - super(world); - this.setSize(1.0F, 1.0F); - this.surfaceY = 60; - this.renderDistanceWeight = 5.0D; - } - - public int getPartID() { - return this.partID; - } - - public void setPartID(int par1) { - this.partID = par1; - } - - public int getUniqueWormID() { - return this.uniqueWormID; - } - - public void setUniqueWormID(int id) { - this.uniqueWormID = id; - } - - @Override - public boolean attackEntityFrom(DamageSource source, float amount) { - - if(this.isEntityInvulnerable() || source == DamageSource.drown || source == DamageSource.inWall || - ((source.getEntity() instanceof EntityWormBase) && ((EntityWormBase) source.getEntity()).uniqueWormID == this.uniqueWormID)) { - return false; - } else { - this.setBeenAttacked(); - return false; - } - } - - protected void updateEntityActionState() { - - if((!this.worldObj.isRemote) && (this.worldObj.difficultySetting == EnumDifficulty.PEACEFUL)) { - setDead(); - } - if((this.targetedEntity != null) && (this.targetedEntity.isDead)) { - this.targetedEntity = null; - } - if((getIsHead()) && (this.targetedEntity != null) && ((this.targetedEntity instanceof EntityPlayer))) { - this.entityAge = 0; - } - if(this.posY < -10.0D) { - setPositionAndUpdate(this.posX, 128.0D, this.posZ); - this.motionY = 0.0D; - } else if(this.posY < 3.0D) { - this.motionY = 0.3D; - } - this.attackTick = Math.max(this.attackTick - 1, 0); - if(this.attackTick == 0) { - this.attackTick = 10; - - attackEntitiesInList(this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.expand(0.5D, 0.5D, 0.5D))); - } - } - - protected void attackEntitiesInList(List targets) { - - for(Entity var3 : targets) { - if(((var3 instanceof EntityLivingBase)) && (canAttackClass(var3.getClass())) - && ((!(var3 instanceof EntityWormBase)) || (((EntityWormBase) var3).getUniqueWormID() != getUniqueWormID()))) { - attackEntityAsMob(var3); - } - } - } - - @Override - public boolean canAttackClass(Class clazz) { - return true; - } - - @Override - public boolean attackEntityAsMob(Entity target) { - - boolean var2 = target.attackEntityFrom(DamageSource.causeMobDamage(this), getAttackStrength(target)); - - if(var2) { - this.entityAge = 0; - double tx = (this.boundingBox.minX + this.boundingBox.maxX) / 2.0D; - double tz = (this.boundingBox.minZ + this.boundingBox.maxZ) / 2.0D; - double ty = (this.boundingBox.minY + this.boundingBox.maxY) / 2.0D; - double deltaX = target.posX - tx; - double deltaZ = target.posZ - tz; - double deltaY = target.posY - ty; - double knockback = this.knockbackDivider * (deltaX * deltaX + deltaZ * deltaZ + deltaY * deltaY + 0.1D); - target.addVelocity(deltaX / knockback, deltaY / knockback, deltaZ / knockback); - } - - return var2; - } - - public abstract float getAttackStrength(Entity paramsa); - - @Override - public void addVelocity(double x, double y, double z) { - } - - @Override - public void faceEntity(Entity entity, float yaw, float pitch) { - } - - protected boolean isCourseTraversable() { - return (this.canFly) || (isEntityInsideOpaqueBlock()); - } - - @Override - protected float getSoundVolume() { - return 5.0F; - } - - @Override - public void setDead() { - playSound(getDeathSound(), getSoundVolume(), getSoundPitch()); - super.setDead(); - } - - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setInteger("wormID", this.getUniqueWormID()); - } - - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - setUniqueWormID(nbt.getInteger("wormID")); - } -} diff --git a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementBody.java b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementBody.java deleted file mode 100644 index b4ec8fe32..000000000 --- a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementBody.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.hbm.entity.mob.sodtekhnologiyah; - -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.MathHelper; - -public class WormMovementBody { - private EntityWormBase user; - - public WormMovementBody(EntityWormBase user) { - this.user = user; - } - - protected void updateMovement() { - - double targetingRange = 128.0D; - - if((this.user.targetedEntity != null) && (this.user.targetedEntity.getDistanceSqToEntity(this.user) < targetingRange * targetingRange)) { - this.user.waypointX = this.user.targetedEntity.posX; - this.user.waypointY = this.user.targetedEntity.posY; - this.user.waypointZ = this.user.targetedEntity.posZ; - } - - if(((this.user.ticksExisted % 60 == 0) || (this.user.ticksExisted == 1)) && ((this.user.targetedEntity == null) || (this.user.followed == null))) { - findEntityToFollow(this.user.worldObj.selectEntitiesWithinAABB(EntityLiving.class, this.user.boundingBox.expand(this.user.rangeForParts, this.user.rangeForParts, this.user.rangeForParts), EntityWormBase.wormSelector)); - } - - double deltaX = this.user.waypointX - this.user.posX; - double deltaY = this.user.waypointY - this.user.posY; - double deltaZ = this.user.waypointZ - this.user.posZ; - double deltaDist = MathHelper.sqrt_double(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); - - if(this.user.targetedEntity != null) { - this.user.faceEntity(this.user.targetedEntity, 180.0F, 180.0F); - } - - this.user.bodySpeed = Math.max(0.0D, Math.min(deltaDist - this.user.segmentDistance, this.user.maxBodySpeed)); - - if(deltaDist < this.user.segmentDistance * 0.895D) { - this.user.motionX *= 0.8D; - this.user.motionY *= 0.8D; - this.user.motionZ *= 0.8D; - } else { - this.user.motionX = (deltaX / deltaDist * this.user.bodySpeed); - this.user.motionY = (deltaY / deltaDist * this.user.bodySpeed); - this.user.motionZ = (deltaZ / deltaDist * this.user.bodySpeed); - } - } - - protected void findEntityToFollow(List segments) { - - for(EntityWormBase segment : segments) { - if(segment.getUniqueWormID() == this.user.getUniqueWormID()) { - if(segment.getIsHead()) { - if(this.user.getPartID() == 0) { - this.user.targetedEntity = ((Entity) segment); - } - this.user.followed = ((EntityLivingBase) segment); - - } else if(segment.getPartID() == this.user.getPartID() - 1) { - this.user.targetedEntity = ((Entity) segment); - } - } - } - this.user.didCheck = true; - } -} diff --git a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementHead.java b/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementHead.java deleted file mode 100644 index d857fa441..000000000 --- a/src/main/java/com/hbm/entity/mob/sodtekhnologiyah/WormMovementHead.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hbm.entity.mob.sodtekhnologiyah; - -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.util.MathHelper; - -public class WormMovementHead { - - private EntityWormBase user; - - public WormMovementHead(EntityWormBase user) { - this.user = user; - } - - protected void updateMovement() { - - double var1 = this.user.waypointX - this.user.posX; - double var3 = this.user.waypointY - this.user.posY; - double var5 = this.user.waypointZ - this.user.posZ; - double var7 = var1 * var1 + var3 * var3 + var5 * var5; - if (this.user.courseChangeCooldown-- <= 0) - { - this.user.courseChangeCooldown += this.user.getRNG().nextInt(5) + 2; - var7 = MathHelper.sqrt_double(var7); - if (this.user.motionX * this.user.motionX + this.user.motionY * this.user.motionY + this.user.motionZ * this.user.motionZ < this.user.maxSpeed) - { - if (!this.user.isCourseTraversable()) { - var7 *= 8.0D; - } - double moverSpeed = this.user.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getBaseValue(); - this.user.motionX += var1 / var7 * moverSpeed; - this.user.motionY += var3 / var7 * moverSpeed; - this.user.motionZ += var5 / var7 * moverSpeed; - } - } - if (!this.user.isCourseTraversable()) { - this.user.motionY -= this.user.fallSpeed; - } - if (this.user.dmgCooldown > 0) { - this.user.dmgCooldown -= 1; - } - this.user.aggroCooldown -= 1; - if (this.user.getAttackTarget() != null) - { - if (this.user.aggroCooldown <= 0) - { - this.user.targetedEntity = this.user.getAttackTarget(); - this.user.aggroCooldown = 20; - } - } - else if (this.user.targetedEntity == null) - { - this.user.waypointX = (this.user.spawnPoint.posX - 30 + this.user.getRNG().nextInt(60)); - this.user.waypointY = (this.user.spawnPoint.posY - 10 + this.user.getRNG().nextInt(20)); - this.user.waypointZ = (this.user.spawnPoint.posZ - 30 + this.user.getRNG().nextInt(60)); - } - this.user.rotationYaw = (-(float)Math.atan2(this.user.motionX, this.user.motionZ) * 180.0F / 3.1415927F); - this.user.rotationPitch = ((float)-(Math.atan2(this.user.motionY, MathHelper.sqrt_double(this.user.motionX * this.user.motionX + this.user.motionZ * this.user.motionZ)) * 180.0D / 3.141592653589793D)); - if ((this.user.targetedEntity != null) && (this.user.targetedEntity.getDistanceSqToEntity(this.user) < this.user.attackRange * this.user.attackRange)) { - if ((this.user.wasNearGround) || (this.user.canFly)) - { - this.user.waypointX = this.user.targetedEntity.posX; - this.user.waypointY = this.user.targetedEntity.posY; - this.user.waypointZ = this.user.targetedEntity.posZ; - if ((this.user.getRNG().nextInt(80) == 0) && (this.user.posY > this.user.surfaceY) && (!this.user.isCourseTraversable())) { - this.user.wasNearGround = false; - } - } - else - { - this.user.waypointX = this.user.targetedEntity.posX; - this.user.waypointY = 10.0D; - this.user.waypointZ = this.user.targetedEntity.posZ; - if (this.user.posY < 15.0D) { - this.user.wasNearGround = true; - } - } - } - } -} diff --git a/src/main/java/com/hbm/explosion/ExplosionHurtUtil.java b/src/main/java/com/hbm/explosion/ExplosionHurtUtil.java index 7500104e5..2dced5976 100644 --- a/src/main/java/com/hbm/explosion/ExplosionHurtUtil.java +++ b/src/main/java/com/hbm/explosion/ExplosionHurtUtil.java @@ -3,6 +3,8 @@ package com.hbm.explosion; import java.util.List; import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.AxisAlignedBB; @@ -37,7 +39,7 @@ public class ExplosionHurtUtil { double interpolation = 1 - (dist / radius); float rad = (float) (outer + (inner - outer) * interpolation); - ContaminationUtil.applyRadData(entity, rad); + ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, rad); } } diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java index 6b5523ef4..b92c14f2a 100644 --- a/src/main/java/com/hbm/extprop/HbmLivingProps.java +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -30,6 +30,8 @@ public class HbmLivingProps implements IExtendedEntityProperties { private float radiation; private float digamma; private int asbestos; + private float radEnv; + private float radBuf; public HbmLivingProps(EntityLivingBase entity) { this.entity = entity; @@ -69,6 +71,24 @@ public class HbmLivingProps implements IExtendedEntityProperties { data.setRadiation(entity, radiation); } + /// RAD ENV /// + public static float getRadEnv(EntityLivingBase entity) { + return getData(entity).radEnv; + } + + public static void setRadEnv(EntityLivingBase entity, float rad) { + getData(entity).radEnv = rad; + } + + /// RAD BUF /// + public static float getRadBuf(EntityLivingBase entity) { + return getData(entity).radBuf; + } + + public static void setRadBuf(EntityLivingBase entity, float rad) { + getData(entity).radBuf = rad; + } + /// DIGAMA /// public static float getDigamma(EntityLivingBase entity) { return getData(entity).digamma; diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index 3d141edb3..f382bc011 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -11,6 +11,8 @@ import com.hbm.packet.ExtPropPacket; import com.hbm.saveddata.AuxSavedData; import com.hbm.saveddata.RadiationSavedData; 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.block.Block; @@ -29,11 +31,19 @@ public class EntityEffectHandler { public static void onUpdate(EntityLivingBase entity) { - if(!entity.worldObj.isRemote && entity instanceof EntityPlayerMP) { - NBTTagCompound data = new NBTTagCompound(); - HbmLivingProps props = HbmLivingProps.getData(entity); - props.saveNBTData(data); - PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity); + if(!entity.worldObj.isRemote) { + + if(entity.ticksExisted % 20 == 0) { + HbmLivingProps.setRadBuf(entity, HbmLivingProps.getRadEnv(entity)); + HbmLivingProps.setRadEnv(entity, 0); + } + + if(entity instanceof EntityPlayerMP) { + NBTTagCompound data = new NBTTagCompound(); + HbmLivingProps props = HbmLivingProps.getData(entity); + props.saveNBTData(data); + PacketDispatcher.wrapper.sendTo(new ExtPropPacket(data), (EntityPlayerMP) entity); + } } handleRadiation(entity); @@ -50,9 +60,6 @@ public class EntityEffectHandler { RadiationSavedData data = RadiationSavedData.getData(world); if(!world.isRemote) { - - if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode) - return; int ix = (int)MathHelper.floor_double(entity.posX); int iy = (int)MathHelper.floor_double(entity.posY); int iz = (int)MathHelper.floor_double(entity.posZ); @@ -64,14 +71,17 @@ public class EntityEffectHandler { rad = RadiationConfig.hellRad; if(rad > 0) { - ContaminationUtil.applyRadData(entity, rad / 20F); + ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, rad / 20F); } if(entity.worldObj.isRaining() && RadiationConfig.cont > 0 && AuxSavedData.getThunder(entity.worldObj) > 0 && entity.worldObj.canBlockSeeTheSky(ix, iy, iz)) { - - ContaminationUtil.applyRadData(entity, RadiationConfig.cont * 0.0005F); + + ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, RadiationConfig.cont * 0.0005F); } + if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode) + return; + Random rand = new Random(entity.getEntityId()); if(HbmLivingProps.getRadiation(entity) > 600 && (world.getTotalWorldTime() + rand.nextInt(600)) % 600 == 0) { diff --git a/src/main/java/com/hbm/handler/WeaponAbility.java b/src/main/java/com/hbm/handler/WeaponAbility.java index 5b473ded9..84b9dc00c 100644 --- a/src/main/java/com/hbm/handler/WeaponAbility.java +++ b/src/main/java/com/hbm/handler/WeaponAbility.java @@ -7,6 +7,8 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; import com.hbm.util.ContaminationUtil; import com.hbm.util.WeightedRandomObject; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import net.minecraft.block.Block; import net.minecraft.client.resources.I18n; @@ -44,7 +46,8 @@ public abstract class WeaponAbility { @Override public void onHit(World world, EntityPlayer player, Entity victim, IItemAbility tool) { - ContaminationUtil.applyRadData(victim, rad); + if(victim instanceof EntityLivingBase) + ContaminationUtil.contaminate((EntityLivingBase)victim, HazardType.RADIATION, ContaminationType.CREATIVE, rad); } @Override diff --git a/src/main/java/com/hbm/inventory/CyclotronRecipes.java b/src/main/java/com/hbm/inventory/CyclotronRecipes.java index 2096dcdef..281f29d23 100644 --- a/src/main/java/com/hbm/inventory/CyclotronRecipes.java +++ b/src/main/java/com/hbm/inventory/CyclotronRecipes.java @@ -30,10 +30,14 @@ public class CyclotronRecipes { /// LITHIUM START /// int liA = 50; - + + makeRecipe(lithium, liAmat, "dustLithium", new ItemStack(ModItems.powder_beryllium), liA); + makeRecipe(lithium, liAmat, "dustBeryllium", new ItemStack(ModItems.powder_boron), liA); + makeRecipe(lithium, liAmat, "dustBoron", new ItemStack(ModItems.powder_coal), liA); makeRecipe(lithium, liAmat, "dustNetherQuartz", new ItemStack(ModItems.powder_fire), liA); makeRecipe(lithium, liAmat, "dustPhosphorus", new ItemStack(ModItems.sulfur), liA); makeRecipe(lithium, liAmat, "dustIron", new ItemStack(ModItems.powder_cobalt), liA); + makeRecipe(lithium, liAmat, new ComparableStack(ModItems.powder_strontium), new ItemStack(ModItems.powder_zirconium), liA); makeRecipe(lithium, liAmat, "dustGold", new ItemStack(ModItems.nugget_mercury), liA); makeRecipe(lithium, liAmat, "dustPolonium", new ItemStack(ModItems.powder_astatine), liA); makeRecipe(lithium, liAmat, "dustLanthanium", new ItemStack(ModItems.powder_cerium), liA); @@ -45,7 +49,8 @@ public class CyclotronRecipes { /// BERYLLIUM START /// int beA = 25; - + + makeRecipe(beryllium, beAmat, "dustLithium", new ItemStack(ModItems.powder_boron), beA); makeRecipe(beryllium, beAmat, "dustNetherQuartz", new ItemStack(ModItems.sulfur), beA); makeRecipe(beryllium, beAmat, "dustTitanium", new ItemStack(ModItems.powder_iron), beA); makeRecipe(beryllium, beAmat, "dustCobalt", new ItemStack(ModItems.powder_copper), beA); @@ -57,7 +62,8 @@ public class CyclotronRecipes { /// CARBON START /// int caA = 10; - + + makeRecipe(carbon, caAmat, "dustBoron", new ItemStack(ModItems.powder_aluminium), caA); makeRecipe(carbon, caAmat, "dustSulfur", new ItemStack(ModItems.powder_titanium), caA); makeRecipe(carbon, caAmat, "dustTitanium", new ItemStack(ModItems.powder_cobalt), caA); makeRecipe(carbon, caAmat, new ComparableStack(ModItems.powder_caesium), new ItemStack(ModItems.powder_lanthanium), caA); diff --git a/src/main/java/com/hbm/inventory/ShredderRecipes.java b/src/main/java/com/hbm/inventory/ShredderRecipes.java index bdbee056e..b959b17ea 100644 --- a/src/main/java/com/hbm/inventory/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/ShredderRecipes.java @@ -204,6 +204,31 @@ public class ShredderRecipes { 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.deco_pipe, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rusted, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_green, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_green_rusted, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_red, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_marked, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_rusted, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_green, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_green_rusted, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_red, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_rim_marked, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_rusted, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_green, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_green_rusted, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_red, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_quad_marked, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_rusted, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_green, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_green_rusted, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_red, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.deco_pipe_framed_marked, new ItemStack(ModItems.powder_steel, 1)); + ShredderRecipes.setRecipe(ModBlocks.turret_light, new ItemStack(ModItems.powder_steel, 16)); ShredderRecipes.setRecipe(ModBlocks.turret_heavy, new ItemStack(ModItems.powder_steel, 16)); ShredderRecipes.setRecipe(ModBlocks.turret_flamer, new ItemStack(ModItems.powder_steel, 16)); diff --git a/src/main/java/com/hbm/inventory/gui/GUIRBMKRod.java b/src/main/java/com/hbm/inventory/gui/GUIRBMKRod.java index 27e6ab9c9..da68f7b76 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIRBMKRod.java +++ b/src/main/java/com/hbm/inventory/gui/GUIRBMKRod.java @@ -40,7 +40,7 @@ public class GUIRBMKRod extends GuiContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(rod.slots[0] != null) { + if(rod.slots[0] != null && rod.slots[0].getItem() instanceof ItemRBMKRod) { drawTexturedModalRect(guiLeft + 34, guiTop + 21, 176, 0, 18, 67); double depletion = 1D - ItemRBMKRod.getEnrichment(rod.slots[0]); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a0a728067..148587d00 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2356,7 +2356,7 @@ public class ModItems { plate_paa = new ItemCustomLore().setUnlocalizedName("plate_paa").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_paa"); board_copper = new Item().setUnlocalizedName("board_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":board_copper"); bolt_dura_steel = new Item().setUnlocalizedName("bolt_dura_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bolt_dura_steel"); - pipes_steel = new Item().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel"); + pipes_steel = new ItemCustomLore().setUnlocalizedName("pipes_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pipes_steel"); drill_titanium = new Item().setUnlocalizedName("drill_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":drill_titanium"); plate_dalekanium = new Item().setUnlocalizedName("plate_dalekanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_dalekanium"); plate_euphemium = new ItemCustomLore().setUnlocalizedName("plate_euphemium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_euphemium"); @@ -2811,7 +2811,7 @@ public class ModItems { cell_puf6 = new Item().setUnlocalizedName("cell_puf6").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_puf6"); cell_antimatter = new ItemDrop().setUnlocalizedName("cell_antimatter").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_antimatter"); cell_deuterium = new Item().setUnlocalizedName("cell_deuterium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_deuterium"); - cell_tritium = new ItemHazard(0.5F).setUnlocalizedName("cell_tritium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_tritium"); + cell_tritium = new ItemHazard(0.001F).setUnlocalizedName("cell_tritium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_tritium"); cell_sas3 = new ItemHazard(ItemHazard.sa326 * ItemHazard.ingot, false, true).setUnlocalizedName("cell_sas3").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_sas3"); cell_anti_schrabidium = new ItemDrop().setUnlocalizedName("cell_anti_schrabidium").setCreativeTab(MainRegistry.controlTab).setContainerItem(ModItems.cell_empty).setTextureName(RefStrings.MODID + ":cell_anti_schrabidium"); @@ -3169,50 +3169,50 @@ public class ModItems { .setUnlocalizedName("rbmk_fuel_meu").setTextureName(RefStrings.MODID + ":rbmk_fuel_meu"); rbmk_fuel_thmeu = new ItemRBMKRod("Thorium with MEU Driver Fuel") .setYield(100000000D) - .setStats(100) + .setStats(50) .setMeltingPoint(2000) .addRadiation(ItemHazard.thf * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_thmeu").setTextureName(RefStrings.MODID + ":rbmk_fuel_thmeu"); rbmk_fuel_lep = new ItemRBMKRod("Low Enriched Plutonium-239") .setYield(100000000D) - .setStats(100) + .setStats(120) .setMeltingPoint(2000) .addRadiation(ItemHazard.puf * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_lep").setTextureName(RefStrings.MODID + ":rbmk_fuel_lep"); rbmk_fuel_mep = new ItemRBMKRod("Medium Enriched Plutonium-239") .setYield(100000000D) - .setStats(100, 20) + .setStats(150, 20) .setMeltingPoint(2000) .addRadiation(ItemHazard.purg * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_mep").setTextureName(RefStrings.MODID + ":rbmk_fuel_mep"); rbmk_fuel_men = new ItemRBMKRod("Medium Enriched Neptunium-237") .setYield(100000000D) - .setStats(100, 20) + .setStats(130) .setMeltingPoint(2000) .setNeutronTypes(NType.FAST, NType.FAST) .addRadiation(ItemHazard.npf * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_men").setTextureName(RefStrings.MODID + ":rbmk_fuel_men"); rbmk_fuel_mox = new ItemRBMKRod("Mixed LEU & LEP Oxide") .setYield(100000000D) - .setStats(100) + .setStats(130) .setMeltingPoint(2000) .addRadiation(ItemHazard.mox * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_mox").setTextureName(RefStrings.MODID + ":rbmk_fuel_mox"); rbmk_fuel_les = new ItemRBMKRod("Low Enriched Schrabidium-326") .setYield(100000000D) - .setStats(100) + .setStats(150) .setMeltingPoint(2000) .addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_les").setTextureName(RefStrings.MODID + ":rbmk_fuel_les"); rbmk_fuel_mes = new ItemRBMKRod("Medium Enriched Schrabidium-326") .setYield(100000000D) - .setStats(100) + .setStats(200) .setMeltingPoint(2000) .addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_mes").setTextureName(RefStrings.MODID + ":rbmk_fuel_mes"); rbmk_fuel_hes = new ItemRBMKRod("Highly Enriched Schrabidium-326") .setYield(100000000D) - .setStats(100) + .setStats(250) .setMeltingPoint(2000) .addRadiation(ItemHazard.saf * ItemHazard.rod_rbmk).toItem() .setUnlocalizedName("rbmk_fuel_hes").setTextureName(RefStrings.MODID + ":rbmk_fuel_hes"); @@ -3238,7 +3238,7 @@ public class ModItems { .setUnlocalizedName("rbmk_fuel_pu238be").setTextureName(RefStrings.MODID + ":rbmk_fuel_pu238be"); rbmk_fuel_balefire = new ItemRBMKRod("Draconic Flames") .setYield(100000000D) - .setStats(60, 35) + .setStats(300, 35) .setMeltingPoint(2000) .addRadiation(800000F).toItem() .setUnlocalizedName("rbmk_fuel_balefire").setTextureName(RefStrings.MODID + ":rbmk_fuel_balefire"); diff --git a/src/main/java/com/hbm/items/armor/ItemModInsert.java b/src/main/java/com/hbm/items/armor/ItemModInsert.java index 002969019..8889eb273 100644 --- a/src/main/java/com/hbm/items/armor/ItemModInsert.java +++ b/src/main/java/com/hbm/items/armor/ItemModInsert.java @@ -9,6 +9,8 @@ import com.hbm.interfaces.IItemHazard; import com.hbm.items.ModItems; import com.hbm.modules.ItemHazardModule; import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -115,7 +117,7 @@ public class ItemModInsert extends ItemArmorMod implements IItemHazard { public void modUpdate(EntityLivingBase entity, ItemStack armor) { if(!entity.worldObj.isRemote && this == ModItems.insert_polonium) { - ContaminationUtil.applyRadDirect(entity, 5); + ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F); } } diff --git a/src/main/java/com/hbm/items/block/ItemBlockDecoPipe.java b/src/main/java/com/hbm/items/block/ItemBlockDecoPipe.java new file mode 100644 index 000000000..291ac832a --- /dev/null +++ b/src/main/java/com/hbm/items/block/ItemBlockDecoPipe.java @@ -0,0 +1,22 @@ +package com.hbm.items.block; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; + +public class ItemBlockDecoPipe extends ItemBlock { + + public ItemBlockDecoPipe(Block block) { + super(block); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + super.addInformation(stack, player, list, bool); + list.add("Purely decorative"); + } +} diff --git a/src/main/java/com/hbm/items/food/ItemEnergy.java b/src/main/java/com/hbm/items/food/ItemEnergy.java index fd7883fcf..c4b05f104 100644 --- a/src/main/java/com/hbm/items/food/ItemEnergy.java +++ b/src/main/java/com/hbm/items/food/ItemEnergy.java @@ -7,6 +7,8 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -82,20 +84,20 @@ public class ItemEnergy extends Item { player.heal(4F); player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 1)); player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 30 * 20, 1)); - ContaminationUtil.applyRadDirect(player, 5.0F); + ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F); } if(this == ModItems.bottle_cherry) { player.heal(6F); player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 0)); player.addPotionEffect(new PotionEffect(Potion.jump.id, 30 * 20, 2)); - ContaminationUtil.applyRadDirect(player, 5.0F); + ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F); } if(this == ModItems.bottle_quantum) { player.heal(10F); player.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 30 * 20, 1)); player.addPotionEffect(new PotionEffect(Potion.resistance.id, 30 * 20, 2)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 30 * 20, 1)); - ContaminationUtil.applyRadDirect(player, 15.0F); + ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 15.0F); } if(this == ModItems.bottle2_korl) { player.heal(6); @@ -127,7 +129,7 @@ public class ItemEnergy extends Item { player.addPotionEffect(new PotionEffect(Potion.resistance.id, 120 * 20, 2)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 2)); player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1)); - ContaminationUtil.applyRadDirect(player, 5.0F); + ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 5.0F); } if(this == ModItems.bottle_rad) { player.heal(10F); @@ -136,7 +138,7 @@ public class ItemEnergy extends Item { player.addPotionEffect(new PotionEffect(Potion.fireResistance.id, 120 * 20, 0)); player.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 120 * 20, 4)); player.addPotionEffect(new PotionEffect(Potion.digSpeed.id, 120 * 20, 1)); - ContaminationUtil.applyRadDirect(player, 15.0F); + ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.RAD_BYPASS, 15.0F); } if(this == ModItems.bottle2_sunset) { player.heal(6); diff --git a/src/main/java/com/hbm/items/special/ItemCell.java b/src/main/java/com/hbm/items/special/ItemCell.java index c04f802fb..424308b6f 100644 --- a/src/main/java/com/hbm/items/special/ItemCell.java +++ b/src/main/java/com/hbm/items/special/ItemCell.java @@ -5,6 +5,8 @@ import java.util.Random; import com.hbm.blocks.bomb.BlockCrashedBomb; import com.hbm.items.ModItems; import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -43,7 +45,7 @@ public class ItemCell extends Item { } player.inventoryContainer.detectAndSendChanges(); - ContaminationUtil.applyRadDirect(player, 50F); + ContaminationUtil.contaminate(player, HazardType.RADIATION, ContaminationType.CREATIVE, 50.0F); return true; } diff --git a/src/main/java/com/hbm/items/special/ItemCustomLore.java b/src/main/java/com/hbm/items/special/ItemCustomLore.java index 91a7e196d..d34ff8e8e 100644 --- a/src/main/java/com/hbm/items/special/ItemCustomLore.java +++ b/src/main/java/com/hbm/items/special/ItemCustomLore.java @@ -403,6 +403,11 @@ public class ItemCustomLore extends Item { if(this == ModItems.billet_mox_fuel) { list.add(EnumChatFormatting.ITALIC + "Pocket-Moxie!"); } + + if(this == ModItems.ingot_lanthanium) + { + list.add("Or 'Lanthanum' for stupid people."); + } } @Override diff --git a/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java b/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java index db2e62900..4e3242f2d 100644 --- a/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java +++ b/src/main/java/com/hbm/items/tool/ItemGeigerCounter.java @@ -5,12 +5,14 @@ import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.extprop.HbmLivingProps; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; import com.hbm.saveddata.RadiationSavedData; import com.hbm.util.ContaminationUtil; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -25,21 +27,18 @@ public class ItemGeigerCounter extends Item { @Override public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) { + if(!(entity instanceof EntityLivingBase) || world.isRemote) + return; + if(entity instanceof EntityPlayer) { if(ArmorFSB.hasFSBArmor((EntityPlayer)entity) && ((ArmorFSB)((EntityPlayer)entity).inventory.armorInventory[2].getItem()).geigerSound) return; } - setInt(stack, getInt(stack, "timer") + 1, "timer"); - if(getInt(stack, "timer") == 10) { - setInt(stack, 0, "timer"); - setInt(stack, check(world, (int)entity.posX, (int)entity.posY, (int)entity.posZ), "ticker"); - } + float x = HbmLivingProps.getRadBuf((EntityLivingBase)entity); - int x = getInt(stack, "ticker"); - - if(getInt(stack, "timer") % 5 == 0) { + if(world.getTotalWorldTime() % 5 == 0) { if(x > 0) { List list = new ArrayList(); @@ -70,16 +69,16 @@ public class ItemGeigerCounter extends Item { } } - static void setInt(ItemStack stack, int i, String name) { + static void setFloat(ItemStack stack, float i, String name) { if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); - stack.stackTagCompound.setInteger(name, i); + stack.stackTagCompound.setFloat(name, i); } - public static int getInt(ItemStack stack, String name) { + public static float getFloat(ItemStack stack, String name) { if(stack.hasTagCompound()) - return stack.stackTagCompound.getInteger(name); + return stack.stackTagCompound.getFloat(name); return 0; } @@ -93,20 +92,6 @@ public class ItemGeigerCounter extends Item { return rads; } - - //what?! - /*@Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) - { - if(world.getBlock(x, y, z) == ModBlocks.block_red_copper) { - world.func_147480_a(x, y, z, false); - player.inventory.consumeInventoryItem(ModItems.geiger_counter); - player.inventory.addItemStackToInventory(new ItemStack(ModItems.survey_scanner)); - return true; - } - - return false; - }*/ @Override public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 9f573ecd5..fd42e1443 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -152,7 +152,8 @@ public class Library { world.getBlock(x, y, z) == ModBlocks.dummy_port_ams_base || world.getBlock(x, y, z) == ModBlocks.dummy_port_reactor_small || world.getBlock(x, y, z) == ModBlocks.dummy_port_compact_launcher || - world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table) { + world.getBlock(x, y, z) == ModBlocks.dummy_port_launch_table || + world.getBlock(x, y, z) == ModBlocks.rbmk_loader) { return true; } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 8dbbf7902..89567e59f 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (3864)"; + public static final String VERSION = "1.0.27 BETA (3868)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 085d0d5e2..e26fed867 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -44,7 +44,6 @@ import com.hbm.entity.missile.*; import com.hbm.entity.mob.*; import com.hbm.entity.mob.botprime.EntityBOTPrimeBody; import com.hbm.entity.mob.botprime.EntityBOTPrimeHead; -import com.hbm.entity.mob.sodtekhnologiyah.EntityBallsOTronSegment; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; import com.hbm.handler.HbmKeybinds.EnumKeybind; @@ -497,7 +496,6 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityTeslaCrab.class, new RenderTeslaCrab()); RenderingRegistry.registerEntityRenderingHandler(EntityTaintCrab.class, new RenderTaintCrab()); RenderingRegistry.registerEntityRenderingHandler(EntityMaskMan.class, new RenderMaskMan()); - RenderingRegistry.registerEntityRenderingHandler(EntityBallsOTronSegment.class, new RenderBalls()); RenderingRegistry.registerEntityRenderingHandler(EntityBOTPrimeHead.class, new RenderWormHead()); RenderingRegistry.registerEntityRenderingHandler(EntityBOTPrimeBody.class, new RenderWormBody()); RenderingRegistry.registerEntityRenderingHandler(EntityDuck.class, new RenderDuck(new ModelChicken(), 0.3F)); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 1204a9c06..6ba81d4a8 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -622,8 +622,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(Blocks.torch, 8), new Object[] { "L", "S", 'L', ModItems.coke, 'S', Items.stick }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_missile_assembly, 1), new Object[] { "PWP", "SSS", "CCC", 'P', ModItems.pedestal_steel, 'W', ModItems.wrench, 'S', "plateSteel", 'C', ModBlocks.steel_scaffold })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.chain, 'C', ModBlocks.concrete_smooth })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.chain, 'C', ModBlocks.concrete })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete_smooth })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.struct_launcher, 1), new Object[] { "PPP", "SDS", "CCC", 'P', "plateSteel", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.deco_pipe_quad, 'C', ModBlocks.concrete })); GameRegistry.addRecipe(new ItemStack(ModBlocks.struct_scaffold, 1), new Object[] { "SSS", "DCD", "SSS", 'S', ModBlocks.steel_scaffold, 'D', ModBlocks.fluid_duct, 'C', ModBlocks.red_cable }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.seg_10, 1), new Object[] { "P", "S", "B", 'P', "plateAluminum", 'S', ModBlocks.steel_scaffold, 'B', ModBlocks.steel_beam })); @@ -736,6 +736,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_boiler, 1), new Object[] { "CPC", "CRC", "CPC", 'C', ModItems.board_copper, 'P', ModItems.pipes_steel, 'R', ModBlocks.rbmk_blank }); GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_rod, 1), new Object[] { "C", "R", "C", 'C', ModItems.hull_small_steel, 'R', ModBlocks.rbmk_blank }); GameRegistry.addRecipe(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "PPP", "PCP", "PPP", 'C', ModItems.circuit_targeting_tier3, 'P', Items.potato }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.rbmk_loader, 1), new Object[] { "SCS", "CBC", "SCS", 'S', "plateSteel", 'C', "ingotCopper", 'B', ModItems.tank_steel })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_sturdy, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "plankWood" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_iron, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "ingotIron" })); @@ -748,6 +749,37 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_steel, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "ingotSteel" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.ladder_tungsten, 8), new Object[] { "LLL", "L#L", "LLL", 'L', Blocks.ladder, '#', "ingotTungsten" })); + GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe, 6), new Object[] { "PPP", 'P', ModItems.hull_small_steel }); + GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_rim }); + GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_framed }); + GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.deco_pipe, 1), new Object[] { ModBlocks.deco_pipe_quad }); + + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "plateSteel" })); + GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe_quad, 4), new Object[] { "PP", "PP", 'P', ModBlocks.deco_pipe }); + GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe_framed, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', Blocks.iron_bars }); + GameRegistry.addRecipe(new ItemStack(ModBlocks.deco_pipe_framed, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', Blocks.iron_bars }); + + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "dustIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', "dustIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad, 'C', "dustIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed, 'C', "dustIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "dyeGreen" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', "dyeGreen" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad, 'C', "dyeGreen" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_green, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed, 'C', "dyeGreen" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_green, 'C', "dustIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim_green, 'C', "dustIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad_green, 'C', "dustIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_green_rusted, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed_green, 'C', "dustIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe, 'C', "dyeRed" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim, 'C', "dyeRed" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad, 'C', "dyeRed" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_red, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed, 'C', "dyeRed" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_green, 'C', "dyeGreen" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_rim_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_rim_green, 'C', "dyeGreen" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad_green, 'C', "dyeGreen" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed_green, 'C', "dyeGreen" })); + if(GeneralConfig.enableBabyMode) { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, ModItems.niter }); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index b42b23aba..f826be1c3 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -1007,6 +1007,7 @@ public class ResourceManager { public static final IModelCustom pipe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe.obj")); public static final IModelCustom pipe_rim = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_rim.obj")); public static final IModelCustom pipe_quad = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_quad.obj")); + public static final IModelCustom pipe_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pipe_frame.obj")); public static final IModelCustom rbmk_element = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_element.obj")); public static final IModelCustom rbmk_reflector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_reflector.obj")); diff --git a/src/main/java/com/hbm/modules/ItemHazardModule.java b/src/main/java/com/hbm/modules/ItemHazardModule.java index 850312815..156e7cdec 100644 --- a/src/main/java/com/hbm/modules/ItemHazardModule.java +++ b/src/main/java/com/hbm/modules/ItemHazardModule.java @@ -6,6 +6,8 @@ import com.hbm.inventory.BreederRecipes; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.I18nUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -65,7 +67,7 @@ public class ItemHazardModule { public void applyEffects(EntityLivingBase entity, float mod, int slot, boolean currentItem) { if(this.radiation > 0) - ContaminationUtil.applyRadData(entity, this.radiation * mod / 20F); + ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, this.radiation * mod / 20F); if(this.digamma > 0) ContaminationUtil.applyDigammaData(entity, this.digamma * mod / 20F); diff --git a/src/main/java/com/hbm/potion/HbmPotion.java b/src/main/java/com/hbm/potion/HbmPotion.java index 242c87530..2e6a4f81e 100644 --- a/src/main/java/com/hbm/potion/HbmPotion.java +++ b/src/main/java/com/hbm/potion/HbmPotion.java @@ -12,6 +12,8 @@ import com.hbm.explosion.ExplosionLarge; import com.hbm.extprop.HbmLivingProps; import com.hbm.lib.ModDamageSource; import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; @@ -113,8 +115,7 @@ public class HbmPotion extends Potion { } } if(this == radiation) { - - ContaminationUtil.applyRadData(entity, (float)(level + 1F) * 0.05F); + ContaminationUtil.contaminate(entity, HazardType.RADIATION, ContaminationType.CREATIVE, (float)(level + 1F) * 0.05F); } if(this == radaway) { diff --git a/src/main/java/com/hbm/render/block/RenderPipe.java b/src/main/java/com/hbm/render/block/RenderPipe.java index 4412a3297..e89157d4f 100644 --- a/src/main/java/com/hbm/render/block/RenderPipe.java +++ b/src/main/java/com/hbm/render/block/RenderPipe.java @@ -47,6 +47,13 @@ public class RenderPipe implements ISimpleBlockRenderingHandler { ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Side", iiconSide, tessellator, 0, false); } + if(pipe.rType == 3) { + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Frame", pipe.frameIcon, tessellator, 0, false); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Mesh", pipe.meshIcon, tessellator, 0, false); + } + tessellator.draw(); GL11.glPopMatrix(); @@ -96,6 +103,13 @@ public class RenderPipe implements ISimpleBlockRenderingHandler { ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Top", iiconTop, tessellator, rot, pitch, true); ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_quad, "Side", iiconSide, tessellator, rot, pitch, true); } + + if(pipe.rType == 3) { + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Top", iiconTop, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_rim, "Side", iiconSide, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Frame", pipe.frameIcon, tessellator, rot, pitch, true); + ObjUtil.renderPartWithIcon((WavefrontObject) ResourceManager.pipe_frame, "Mesh", pipe.meshIcon, tessellator, rot, pitch, true); + } tessellator.addTranslation(-x - 0.5F, -y - 0.5F, -z - 0.5F); diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java index 2eb356130..ba415c07a 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteResonator.java @@ -14,6 +14,7 @@ public class SatelliteResonator extends Satellite { public void onCoordAction(World world, EntityPlayer player, int x, int y, int z) { if(!(player instanceof EntityPlayerMP)) + return; world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.endermen.portal", 1.0F, 1.0F); player.mountEntity(null); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java index 0448b3c2e..946299e95 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -327,6 +327,9 @@ public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInv power -= 250; + if(power > 0) + power = 0; + if(this.dualCookTime == processingSpeed) { this.dualCookTime = 0; 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 1c5d328fb..692dc9076 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBase.java @@ -129,7 +129,7 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke } } - private void coolPassively() { + protected void coolPassively() { this.heat -= this.passiveCooling(); @@ -137,33 +137,47 @@ public abstract class TileEntityRBMKBase extends TileEntity implements INBTPacke heat = 20D; } + protected static boolean diag = false; + @Override public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); + + if(!diag) { + super.readFromNBT(nbt); + } this.heat = nbt.getDouble("heat"); } @Override public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); + + if(!diag) { + super.writeToNBT(nbt); + } nbt.setDouble("heat", this.heat); } public void networkPack(NBTTagCompound nbt, int range) { + diag = true; if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); + diag = false; } public void networkUnpack(NBTTagCompound nbt) { + diag = true; this.readFromNBT(nbt); + diag = false; } public void getDiagData(NBTTagCompound nbt) { + diag = true; this.writeToNBT(nbt); + diag = false; } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java index 17d36d13e..b6068053f 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKBoiler.java @@ -93,6 +93,25 @@ public class TileEntityRBMKBoiler extends TileEntityRBMKSlottedBase implements I public void fillFluidInit(FluidType type) { fillFluid(this.xCoord, this.yCoord + RBMKDials.getColumnHeight(worldObj) + 1, this.zCoord, getTact(), type); + + if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) == ModBlocks.rbmk_loader) { + + fillFluid(this.xCoord + 1, this.yCoord - 1, this.zCoord, getTact(), type); + fillFluid(this.xCoord - 1, this.yCoord - 1, this.zCoord, getTact(), type); + fillFluid(this.xCoord, this.yCoord - 1, this.zCoord + 1, getTact(), type); + fillFluid(this.xCoord, this.yCoord - 1, this.zCoord - 1, getTact(), type); + fillFluid(this.xCoord, this.yCoord - 2, this.zCoord, getTact(), type); + } + + if(worldObj.getBlock(xCoord, yCoord - 2, zCoord) == ModBlocks.rbmk_loader) { + + fillFluid(this.xCoord + 1, this.yCoord - 2, this.zCoord, getTact(), type); + fillFluid(this.xCoord - 1, this.yCoord - 2, this.zCoord, getTact(), type); + fillFluid(this.xCoord, this.yCoord - 2, this.zCoord + 1, getTact(), type); + fillFluid(this.xCoord, this.yCoord - 2, this.zCoord - 1, getTact(), type); + fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); + fillFluid(this.xCoord, this.yCoord - 3, this.zCoord, getTact(), type); + } } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java index f83dccee0..6291a04d5 100644 --- a/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java +++ b/src/main/java/com/hbm/tileentity/machine/rbmk/TileEntityRBMKSlottedBase.java @@ -143,13 +143,16 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); - - 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); + + if(!diag) { + NBTTagList list = nbt.getTagList("items", 10); + + 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); + } } } } @@ -157,16 +160,19 @@ public abstract class TileEntityRBMKSlottedBase extends TileEntityRBMKActiveBase @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - 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); + + if(!diag) { + 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); } - nbt.setTag("items", list); } } diff --git a/src/main/java/com/hbm/util/ContaminationUtil.java b/src/main/java/com/hbm/util/ContaminationUtil.java index 41d2bc74e..e50bfae4b 100644 --- a/src/main/java/com/hbm/util/ContaminationUtil.java +++ b/src/main/java/com/hbm/util/ContaminationUtil.java @@ -43,7 +43,7 @@ public class ContaminationUtil { } /// RADIATION /// - public static void applyRadData(Entity e, float f) { + private static void applyRadData(Entity e, float f) { if(!(e instanceof EntityLivingBase)) return; @@ -51,31 +51,31 @@ public class ContaminationUtil { if(isRadImmune(e)) return; + EntityLivingBase entity = (EntityLivingBase)e; + if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode) return; if(e instanceof EntityPlayer && e.ticksExisted < 200) return; - EntityLivingBase entity = (EntityLivingBase)e; - f *= calculateRadiationMod(entity); HbmLivingProps.incrementRadiation(entity, f); } - public static void applyRadDirect(Entity e, float f) { + private static void applyRadDirect(Entity e, float f) { if(!(e instanceof EntityLivingBase)) return; + + EntityLivingBase entity = (EntityLivingBase)e; if(isRadImmune(e)) return; if(e instanceof EntityPlayer && ((EntityPlayer)e).capabilities.isCreativeMode) return; - - EntityLivingBase entity = (EntityLivingBase)e; HbmLivingProps.incrementRadiation(entity, f); } @@ -179,27 +179,16 @@ public class ContaminationUtil { RadiationSavedData data = RadiationSavedData.getData(player.worldObj); Chunk chunk = world.getChunkFromBlockCoords((int)player.posX, (int)player.posZ); double rads = ((int)(data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition) * 10)) / 10D; + double env = ((int)(HbmLivingProps.getRadBuf(player) * 10D)) / 10D; - double res = 100.0D - ((int)(ContaminationUtil.calculateRadiationMod(player) * 10000)) / 100D; - double resKoeff = ((int)(HazmatRegistry.getResistance(player) * 100)) / 100D; - - String chunkPrefix = ""; + double res = ((int)(10000D - ContaminationUtil.calculateRadiationMod(player) * 10000D)) / 100D; + double resKoeff = ((int)(HazmatRegistry.getResistance(player) * 100D)) / 100D; + + String chunkPrefix = getPreffixFromRad(rads); + String envPrefix = getPreffixFromRad(env); String radPrefix = ""; String resPrefix = "" + EnumChatFormatting.WHITE; - if(rads == 0) - chunkPrefix += EnumChatFormatting.GREEN; - else if(rads < 1) - chunkPrefix += EnumChatFormatting.YELLOW; - else if(rads < 10) - chunkPrefix += EnumChatFormatting.GOLD; - else if(rads < 100) - chunkPrefix += EnumChatFormatting.RED; - else if(rads < 1000) - chunkPrefix += EnumChatFormatting.DARK_RED; - else - chunkPrefix += EnumChatFormatting.DARK_GRAY; - if(eRad < 200) radPrefix += EnumChatFormatting.GREEN; else if(eRad < 400) @@ -220,10 +209,31 @@ public class ContaminationUtil { //a *functioning* painful mess, nonetheless player.addChatMessage(new ChatComponentText("===== ☢ ").appendSibling(new ChatComponentTranslation("geiger.title")).appendSibling(new ChatComponentText(" ☢ =====")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GOLD))); player.addChatMessage(new ChatComponentTranslation("geiger.chunkRad").appendSibling(new ChatComponentText(" " + chunkPrefix + rads + " RAD/s")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); + player.addChatMessage(new ChatComponentTranslation("geiger.envRad").appendSibling(new ChatComponentText(" " + envPrefix + env + " RAD/s")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); player.addChatMessage(new ChatComponentTranslation("geiger.playerRad").appendSibling(new ChatComponentText(" " + radPrefix + eRad + " RAD")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); player.addChatMessage(new ChatComponentTranslation("geiger.playerRes").appendSibling(new ChatComponentText(" " + resPrefix + res + "% (" + resKoeff + ")")).setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))); } + public static String getPreffixFromRad(double rads) { + + String chunkPrefix = ""; + + if(rads == 0) + chunkPrefix += EnumChatFormatting.GREEN; + else if(rads < 1) + chunkPrefix += EnumChatFormatting.YELLOW; + else if(rads < 10) + chunkPrefix += EnumChatFormatting.GOLD; + else if(rads < 100) + chunkPrefix += EnumChatFormatting.RED; + else if(rads < 1000) + chunkPrefix += EnumChatFormatting.DARK_RED; + else + chunkPrefix += EnumChatFormatting.DARK_GRAY; + + return chunkPrefix; + } + public static void printDiagnosticData(EntityPlayer player) { double digamma = ((int)(HbmLivingProps.getDigamma(player) * 100)) / 100D; @@ -251,13 +261,22 @@ public class ContaminationUtil { HAZMAT2, //preventable by heavy hazmat DIGAMMA, //preventable by fau armor or stability DIGAMMA2, //preventable by robes - CREATIVE, //preventable by creative mode + CREATIVE, //preventable by creative mode, for rad calculation armor piece bonuses still apply + RAD_BYPASS, //same as creaative but fill not apply radiation resistance calculation NONE //not preventable } + /* + * This system is nice but the cont types are a bit confusing. Cont types should have much better names and multiple cont types should be applicable. + */ @SuppressWarnings("incomplete-switch") //just shut up public static boolean contaminate(EntityLivingBase entity, HazardType hazard, ContaminationType cont, float amount) { + if(hazard == HazardType.RADIATION) { + float radEnv = HbmLivingProps.getRadEnv(entity); + HbmLivingProps.setRadEnv(entity, radEnv + amount); + } + if(entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)entity; @@ -285,7 +304,7 @@ public class ContaminationUtil { switch(hazard) { case MONOXIDE: entity.attackEntityFrom(ModDamageSource.monoxide, amount); break; - case RADIATION: HbmLivingProps.incrementRadiation(entity, amount * calculateRadiationMod(entity)); break; + case RADIATION: HbmLivingProps.incrementRadiation(entity, amount * (cont == ContaminationType.RAD_BYPASS ? 1 : calculateRadiationMod(entity))); break; case ASBESTOS: HbmLivingProps.incrementAsbestos(entity, (int)amount); break; case DIGAMMA: HbmLivingProps.incrementDigamma(entity, amount); break; } diff --git a/src/main/java/com/hbm/world/dungeon/Bunker.java b/src/main/java/com/hbm/world/dungeon/Bunker.java index c248b5a3a..12bd2b946 100644 --- a/src/main/java/com/hbm/world/dungeon/Bunker.java +++ b/src/main/java/com/hbm/world/dungeon/Bunker.java @@ -19,54 +19,69 @@ import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; -public class Bunker extends WorldGenerator -{ +public class Bunker extends WorldGenerator { Block Block1 = ModBlocks.reinforced_brick; Block Block3 = ModBlocks.reinforced_light; Block Block4 = ModBlocks.deco_steel; Block Block5 = ModBlocks.deco_tungsten; - - protected Block[] GetValidSpawnBlocks() - { - return new Block[] - { - Blocks.grass, - Blocks.dirt, - Blocks.stone, - Blocks.sand, - Blocks.sandstone, - }; + + protected Block[] GetValidSpawnBlocks() { + return new Block[] { Blocks.grass, Blocks.dirt, Blocks.stone, Blocks.sand, Blocks.sandstone, }; } @Override - public boolean generate(World world, Random rand, int x, int y, int z) - { + public boolean generate(World world, Random rand, int x, int y, int z) { int i = rand.nextInt(1); - if(i == 0) - { - generate_r0(world, rand, x, y, z); + if(i == 0) { + generate_r0(world, rand, x, y, z); } - return true; + return true; } - public boolean generate_r0(World world, Random rand, int x, int y, int z) - { + public boolean LocationIsValidSpawn(World world, int x, int y, int z) { + + Block checkBlock = world.getBlock(x, y - 1, z); + Block blockAbove = world.getBlock(x, y, z); + Block blockBelow = world.getBlock(x, y - 2, z); + + for(Block i : GetValidSpawnBlocks()) { + if(blockAbove != Blocks.air) { + return false; + } + if(checkBlock == i) { + return true; + } else if(checkBlock == Blocks.snow_layer && blockBelow == i) { + return true; + } else if(checkBlock.getMaterial() == Material.plants && blockBelow == i) { + return true; + } + } + return false; + } + + public boolean generate_r0(World world, Random rand, int x, int y, int z) { y += 1; - for(int i = 0; i < 11; i++) + if(!LocationIsValidSpawn(world, x + 9, y, z + 9)) { + return false; + } + + if(!LocationIsValidSpawn(world, x, y, z)) { - for(int j = 0; j < 9; j++) - { - for(int k = 0; k < 15; k++) - { + return false; + } + + for(int i = 0; i < 11; i++) { + for(int j = 0; j < 9; j++) { + for(int k = 0; k < 15; k++) { world.setBlock(x + i, y + j - 25, z + k, Blocks.air, 0, 3); } } } - + world.setBlock(x + 0, y + -25, z + 0, Block1, 0, 3); world.setBlock(x + 1, y + -25, z + 0, Block1, 0, 3); world.setBlock(x + 2, y + -25, z + 0, Block1, 0, 3); @@ -263,47 +278,42 @@ public class Bunker extends WorldGenerator world.setBlock(x + 1, y + -24, z + 1, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 2, y + -24, z + 1, Blocks.chest, 3, 3); world.setBlockMetadataWithNotify(x + 2, y + -24, z + 1, 3, 3); - if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) - { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(3), (TileEntityChest)world.getTileEntity(x + 2, y + -24, z + 1), rand.nextInt(2)+ 6); + if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) { + WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(3), (TileEntityChest) world.getTileEntity(x + 2, y + -24, z + 1), rand.nextInt(2) + 6); } world.setBlock(x + 2, y + -23, z + 1, ModBlocks.geiger, 2, 3); - world.setBlock(x + 3, y + -24, z + 1, Library.getRandomConcrete(), 0, 3); + world.setBlock(x + 3, y + -24, z + 1, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 4, y + -24, z + 1, Block1, 0, 3); world.setBlock(x + 11, y + -24, z + 1, Block1, 0, 3); world.setBlock(x + 0, y + -24, z + 2, Block1, 0, 3); world.setBlock(x + 1, y + -24, z + 2, Blocks.chest, 5, 3); world.setBlockMetadataWithNotify(x + 1, y + -24, z + 5, 3, 3); - if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) - { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 1, y + -24, z + 2), 8); + if(world.getBlock(x + 2, y + -24, z + 1) == Blocks.chest) { + WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 1, y + -24, z + 2), 8); } - world.setBlock(x + 3, y + -24, z + 2, Blocks.chest, 4, 3); + world.setBlock(x + 3, y + -24, z + 2, Blocks.chest, 4, 3); world.setBlockMetadataWithNotify(x + 3, y + -24, z + 2, 4, 3); - if(world.getBlock(x + 3, y + -24, z + 2) == Blocks.chest) - { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 3, y + -24, z + 2), 8); + if(world.getBlock(x + 3, y + -24, z + 2) == Blocks.chest) { + WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 3, y + -24, z + 2), 8); } - world.setBlock(x + 4, y + -24, z + 2, Block1, 0, 3); + world.setBlock(x + 4, y + -24, z + 2, Block1, 0, 3); world.setBlock(x + 11, y + -24, z + 2, Block1, 0, 3); world.setBlock(x + 0, y + -24, z + 3, Block1, 0, 3); world.setBlock(x + 1, y + -24, z + 3, Blocks.chest, 5, 3); world.setBlockMetadataWithNotify(x + 1, y + -24, z + 3, 5, 3); - if(world.getBlock(x + 1, y + -24, z + 3) == Blocks.chest) - { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 1, y + -24, z + 3), 8); + if(world.getBlock(x + 1, y + -24, z + 3) == Blocks.chest) { + WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 1, y + -24, z + 3), 8); } - world.setBlock(x + 3, y + -24, z + 3, Blocks.chest, 4, 3); + world.setBlock(x + 3, y + -24, z + 3, Blocks.chest, 4, 3); world.setBlockMetadataWithNotify(x + 3, y + -24, z + 3, 5, 3); - if(world.getBlock(x + 3, y + -24, z + 3) == Blocks.chest) - { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest)world.getTileEntity(x + 3, y + -24, z + 3), 8); + if(world.getBlock(x + 3, y + -24, z + 3) == Blocks.chest) { + WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(1), (TileEntityChest) world.getTileEntity(x + 3, y + -24, z + 3), 8); } - world.setBlock(x + 4, y + -24, z + 3, Block1, 0, 3); + world.setBlock(x + 4, y + -24, z + 3, Block1, 0, 3); world.setBlock(x + 7, y + -24, z + 3, Block1, 0, 3); world.setBlock(x + 8, y + -24, z + 3, Block1, 0, 3); world.setBlock(x + 9, y + -24, z + 3, Blocks.iron_door, 5, 3); - ItemDoor.placeDoorBlock(world, x + 9, y + -24, z + 3, 5, Blocks.iron_door); + ItemDoor.placeDoorBlock(world, x + 9, y + -24, z + 3, 5, Blocks.iron_door); world.setBlock(x + 10, y + -24, z + 3, Block1, 0, 3); world.setBlock(x + 11, y + -24, z + 3, Block1, 0, 3); world.setBlock(x + 0, y + -24, z + 4, Block1, 0, 3); @@ -316,7 +326,7 @@ public class Bunker extends WorldGenerator world.setBlock(x + 0, y + -24, z + 5, Block1, 0, 3); world.setBlock(x + 1, y + -24, z + 5, Block1, 0, 3); world.setBlock(x + 2, y + -24, z + 5, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 2, y + -24, z + 5, 3, Blocks.iron_door); + ItemDoor.placeDoorBlock(world, x + 2, y + -24, z + 5, 3, Blocks.iron_door); world.setBlock(x + 3, y + -24, z + 5, Block1, 0, 3); world.setBlock(x + 4, y + -24, z + 5, Block1, 0, 3); world.setBlock(x + 7, y + -24, z + 5, Block1, 0, 3); @@ -341,7 +351,7 @@ public class Bunker extends WorldGenerator world.setBlock(x + 0, y + -24, z + 9, Block1, 0, 3); world.setBlock(x + 3, y + -24, z + 9, Block1, 0, 3); world.setBlock(x + 7, y + -24, z + 9, Blocks.iron_door, 1, 3); - ItemDoor.placeDoorBlock(world, x + 7, y + -24, z + 9, 1, Blocks.iron_door); + ItemDoor.placeDoorBlock(world, x + 7, y + -24, z + 9, 1, Blocks.iron_door); world.setBlock(x + 10, y + -24, z + 9, Library.getRandomConcrete(), 0, 3); world.setBlock(x + 11, y + -24, z + 9, Block1, 0, 3); world.setBlock(x + 0, y + -24, z + 10, Block1, 0, 3); @@ -403,7 +413,7 @@ public class Bunker extends WorldGenerator world.setBlock(x + 4, y + -23, z + 3, Block1, 0, 3); world.setBlock(x + 7, y + -23, z + 3, Block1, 0, 3); world.setBlock(x + 8, y + -23, z + 3, Block1, 0, 3); - //world.setBlock(x + 9, y + -23, z + 3, Blocks.iron_door, 8, 3); + // world.setBlock(x + 9, y + -23, z + 3, Blocks.iron_door, 8, 3); world.setBlock(x + 10, y + -23, z + 3, Block1, 0, 3); world.setBlock(x + 11, y + -23, z + 3, Block1, 0, 3); world.setBlock(x + 0, y + -23, z + 4, Block1, 0, 3); @@ -414,7 +424,7 @@ public class Bunker extends WorldGenerator world.setBlock(x + 11, y + -23, z + 4, Block1, 0, 3); world.setBlock(x + 0, y + -23, z + 5, Block1, 0, 3); world.setBlock(x + 1, y + -23, z + 5, Block1, 0, 3); - //world.setBlock(x + 2, y + -23, z + 5, Blocks.iron_door, 8, 3); + // world.setBlock(x + 2, y + -23, z + 5, Blocks.iron_door, 8, 3); world.setBlock(x + 3, y + -23, z + 5, Block1, 0, 3); world.setBlock(x + 4, y + -23, z + 5, Block3, 0, 3); world.setBlock(x + 7, y + -23, z + 5, Block1, 0, 3); @@ -435,7 +445,7 @@ public class Bunker extends WorldGenerator world.setBlock(x + 0, y + -23, z + 9, Block1, 0, 3); world.setBlock(x + 1, y + -23, z + 9, Blocks.web, 0, 3); world.setBlock(x + 3, y + -23, z + 9, Block3, 0, 3); - //world.setBlock(x + 7, y + -23, z + 9, Blocks.iron_door, 8, 3); + // world.setBlock(x + 7, y + -23, z + 9, Blocks.iron_door, 8, 3); world.setBlock(x + 11, y + -23, z + 9, Block1, 0, 3); world.setBlock(x + 0, y + -23, z + 10, Block1, 0, 3); world.setBlock(x + 3, y + -23, z + 10, Block1, 0, 3); @@ -459,8 +469,8 @@ public class Bunker extends WorldGenerator world.setBlock(x + 11, y + -23, z + 13, Block1, 0, 3); world.setBlock(x + 0, y + -23, z + 14, Block1, 0, 3); world.setBlock(x + 1, y + -23, z + 14, Block1, 0, 3); - //prevent geiger displacement - //world.setBlock(x + 2, y + -23, z + 14, Block1, 0, 3); + // prevent geiger displacement + // world.setBlock(x + 2, y + -23, z + 14, Block1, 0, 3); world.setBlock(x + 3, y + -23, z + 14, Block1, 0, 3); world.setBlock(x + 4, y + -23, z + 14, Block3, 0, 3); world.setBlock(x + 5, y + -23, z + 14, Block1, 0, 3); @@ -782,11 +792,10 @@ public class Bunker extends WorldGenerator world.setBlock(x + 3, y + -20, z + 1, Block1, 0, 3); world.setBlock(x + 4, y + -20, z + 1, Blocks.chest, 5, 3); world.setBlockMetadataWithNotify(x + 4, y + -20, z + 1, 5, 3); - if(world.getBlock(x + 4, y + -20, z + 1) == Blocks.chest) - { - WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(2), (TileEntityChest)world.getTileEntity(x + 4, y + -20, z + 1), 12); + if(world.getBlock(x + 4, y + -20, z + 1) == Blocks.chest) { + WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(2), (TileEntityChest) world.getTileEntity(x + 4, y + -20, z + 1), 12); } - world.setBlock(x + 8, y + -20, z + 1, Block4, 0, 3); + world.setBlock(x + 8, y + -20, z + 1, Block4, 0, 3); world.setBlock(x + 9, y + -20, z + 1, Block4, 0, 3); world.setBlock(x + 10, y + -20, z + 1, Block4, 0, 3); world.setBlock(x + 11, y + -20, z + 1, Block1, 0, 3); @@ -806,7 +815,7 @@ public class Bunker extends WorldGenerator world.setBlock(x + 3, y + -20, z + 4, Block1, 0, 3); world.setBlock(x + 4, y + -20, z + 4, Block1, 0, 3); world.setBlock(x + 5, y + -20, z + 4, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 5, y + -20, z + 4, 3, Blocks.iron_door); + ItemDoor.placeDoorBlock(world, x + 5, y + -20, z + 4, 3, Blocks.iron_door); world.setBlock(x + 6, y + -20, z + 4, Block1, 0, 3); world.setBlock(x + 7, y + -20, z + 4, Block1, 0, 3); world.setBlock(x + 8, y + -20, z + 4, Block1, 0, 3); @@ -818,25 +827,25 @@ public class Bunker extends WorldGenerator world.setBlock(x + 11, y + -20, z + 5, Block1, 0, 3); world.setBlock(x + 0, y + -20, z + 6, Block1, 0, 3); world.setBlock(x + 3, y + -20, z + 6, Blocks.iron_door, 0, 3); - ItemDoor.placeDoorBlock(world, x + 3, y + -20, z + 6, 0, Blocks.iron_door); + ItemDoor.placeDoorBlock(world, x + 3, y + -20, z + 6, 0, Blocks.iron_door); world.setBlock(x + 11, y + -20, z + 6, Block1, 0, 3); world.setBlock(x + 0, y + -20, z + 7, Block1, 0, 3); world.setBlock(x + 3, y + -20, z + 7, Block1, 0, 3); world.setBlock(x + 8, y + -20, z + 7, Blocks.iron_door, 1, 3); - ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 7, 1, Blocks.iron_door); + ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 7, 1, Blocks.iron_door); world.setBlock(x + 10, y + -20, z + 7, Blocks.iron_door, 1, 3); - ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 7, 1, Blocks.iron_door); + ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 7, 1, Blocks.iron_door); world.setBlock(x + 11, y + -20, z + 7, Block1, 0, 3); world.setBlock(x + 0, y + -20, z + 8, Block1, 0, 3); world.setBlock(x + 3, y + -20, z + 8, Block1, 0, 3); world.setBlock(x + 4, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 4, y + -20, z + 8, 3, Blocks.iron_door); + ItemDoor.placeDoorBlock(world, x + 4, y + -20, z + 8, 3, Blocks.iron_door); world.setBlock(x + 6, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 6, y + -20, z + 8, 3, Blocks.iron_door); + ItemDoor.placeDoorBlock(world, x + 6, y + -20, z + 8, 3, Blocks.iron_door); world.setBlock(x + 8, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 8, 3, Blocks.iron_door); + ItemDoor.placeDoorBlock(world, x + 8, y + -20, z + 8, 3, Blocks.iron_door); world.setBlock(x + 10, y + -20, z + 8, Blocks.iron_door, 3, 3); - ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 8, 3, Blocks.iron_door); + ItemDoor.placeDoorBlock(world, x + 10, y + -20, z + 8, 3, Blocks.iron_door); world.setBlock(x + 11, y + -20, z + 8, Block1, 0, 3); world.setBlock(x + 0, y + -20, z + 9, Block1, 0, 3); world.setBlock(x + 3, y + -20, z + 9, Block1, 0, 3); @@ -906,7 +915,7 @@ public class Bunker extends WorldGenerator world.setBlock(x + 0, y + -19, z + 4, Block1, 0, 3); world.setBlock(x + 3, y + -19, z + 4, Block1, 0, 3); world.setBlock(x + 4, y + -19, z + 4, Block1, 0, 3); - //world.setBlock(x + 5, y + -19, z + 4, Blocks.iron_door, 8, 3); + // world.setBlock(x + 5, y + -19, z + 4, Blocks.iron_door, 8, 3); world.setBlock(x + 6, y + -19, z + 4, Block1, 0, 3); world.setBlock(x + 7, y + -19, z + 4, Block1, 0, 3); world.setBlock(x + 8, y + -19, z + 4, Block1, 0, 3); @@ -917,19 +926,19 @@ public class Bunker extends WorldGenerator world.setBlock(x + 3, y + -19, z + 5, Block1, 0, 3); world.setBlock(x + 11, y + -19, z + 5, Block1, 0, 3); world.setBlock(x + 0, y + -19, z + 6, Block1, 0, 3); - //world.setBlock(x + 3, y + -19, z + 6, Blocks.iron_door, 8, 3); + // world.setBlock(x + 3, y + -19, z + 6, Blocks.iron_door, 8, 3); world.setBlock(x + 11, y + -19, z + 6, Block1, 0, 3); world.setBlock(x + 0, y + -19, z + 7, Block1, 0, 3); world.setBlock(x + 3, y + -19, z + 7, Block3, 0, 3); - //world.setBlock(x + 8, y + -19, z + 7, Blocks.iron_door, 8, 3); - //world.setBlock(x + 10, y + -19, z + 7, Blocks.iron_door, 8, 3); + // world.setBlock(x + 8, y + -19, z + 7, Blocks.iron_door, 8, 3); + // world.setBlock(x + 10, y + -19, z + 7, Blocks.iron_door, 8, 3); world.setBlock(x + 11, y + -19, z + 7, Block1, 0, 3); world.setBlock(x + 0, y + -19, z + 8, Block1, 0, 3); world.setBlock(x + 3, y + -19, z + 8, Block1, 0, 3); - //world.setBlock(x + 4, y + -19, z + 8, Blocks.iron_door, 8, 3); - //world.setBlock(x + 6, y + -19, z + 8, Blocks.iron_door, 8, 3); - //world.setBlock(x + 8, y + -19, z + 8, Blocks.iron_door, 8, 3); - //world.setBlock(x + 10, y + -19, z + 8, Blocks.iron_door, 9, 3); + // world.setBlock(x + 4, y + -19, z + 8, Blocks.iron_door, 8, 3); + // world.setBlock(x + 6, y + -19, z + 8, Blocks.iron_door, 8, 3); + // world.setBlock(x + 8, y + -19, z + 8, Blocks.iron_door, 8, 3); + // world.setBlock(x + 10, y + -19, z + 8, Blocks.iron_door, 9, 3); world.setBlock(x + 11, y + -19, z + 8, Block1, 0, 3); world.setBlock(x + 0, y + -19, z + 9, Block1, 0, 3); world.setBlock(x + 3, y + -19, z + 9, Block1, 0, 3); @@ -1497,8 +1506,8 @@ public class Bunker extends WorldGenerator return true; } - public boolean generate_r02_last(World world, Random rand, int x, int y, int z) - { + + public boolean generate_r02_last(World world, Random rand, int x, int y, int z) { world.setBlock(x + 10, y + -24, z + 12, Blocks.ladder, 4, 3); world.setBlock(x + 10, y + -24, z + 13, Blocks.ladder, 4, 3); @@ -1567,7 +1576,7 @@ public class Bunker extends WorldGenerator world.setBlock(x + 8, y + -19, z + 10, Blocks.bed, 8, 3); world.setBlock(x + 10, y + -19, z + 10, Blocks.bed, 8, 3); if(GeneralConfig.enableDebugMode) - System.out.print("[Debug] Successfully spawned bunker at " + x + " " + y +" " + z + "\n"); + System.out.print("[Debug] Successfully spawned bunker at " + x + " " + y + " " + z + "\n"); return true; } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index d8e51b890..2ff36826f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -343,6 +343,7 @@ fluid.schrabidic_fluid=Schrabidische Säure fluid.toxic_fluid=Stereotypischer grüner Schleim geiger.chunkRad=Chunk-Strahlung: +geiger.envRad=Gesamte Umgebungsstrahlung: geiger.playerRad=Spieler-Kontaminierung: geiger.playerRes=Strahlungsresistenz: geiger.title=GEIGERZÄHLER @@ -1800,6 +1801,7 @@ item.photo_panel.name=Photovoltaikpanele item.pill_iodine.name=Iodpille item.pin.name=Haarklammer item.pipes_steel.name=Stahlrohre +item.pipes_steel.desc=Auf Recycling-Rezepte wurden wegen$Steuerhinterziehung verzichtet. item.piston_selenium.name=Sternmotorenkolben item.plan_c.name=Plan C item.plate_advanced_alloy.name=Fortgeschrittene Legierungsplatte @@ -2411,6 +2413,7 @@ tile.block_cap_sunset.name=Sunset Sarsaparilla Sternkronkorkenblock tile.block_cobalt.name=Kobaltblock tile.block_combine_steel.name=CMB-Stahlblock tile.block_copper.name=Kupferblock +tile.block_corium.name=Corium tile.block_daffergon.name=Daffergonblock tile.block_desh.name=Verstärketer Deshblock tile.block_dineutronium.name=Dineutroniumblock @@ -2539,6 +2542,30 @@ tile.deco_asbestos.name=Asbestdach tile.deco_beryllium.name=Beryllium-Dekoblock tile.deco_lead.name=Blei-Dekoblock tile.deco_red_copper.name=Roter Kupfer-Dekoblock +tile.deco_pipe.name=Stahlrohr +tile.deco_pipe_rusted.name=Rostiges Stahlrohr +tile.deco_pipe_green.name=Grünes Stahlrohr +tile.deco_pipe_green_rusted.name=Rostiges grünes Stahlrohr +tile.deco_pipe_red.name=Rotes Stahlrohr +tile.deco_pipe_marked.name=Gasrohr +tile.deco_pipe_framed.name=Stahlrohr mit Rahmen +tile.deco_pipe_framed_rusted.name=Rostiges Stahlrohr mit Rahmen +tile.deco_pipe_framed_green.name=Grünes Stahlrohr mit Rahmen +tile.deco_pipe_framed_green_rusted.name=Rostiges grünes Stahlrohr mit Rahmen +tile.deco_pipe_framed_red.name=Rotes Stahlrohr mit Rahmen +tile.deco_pipe_framed_marked.name=Gasrohr mit Rahmen +tile.deco_pipe_quad.name=Stahlrohre +tile.deco_pipe_quad_rusted.name=Rostige Stahlrohre +tile.deco_pipe_quad_green.name=Grüne Stahlrohre +tile.deco_pipe_quad_green_rusted.name=Rostige grüne Stahlrohre +tile.deco_pipe_quad_red.name=Rote Stahlrohre +tile.deco_pipe_quad_marked.name=Gasrohre +tile.deco_pipe_rim.name=Stahlrohr mit Rand +tile.deco_pipe_rim_rusted.name=Rostiges Stahlrohr mit Rand +tile.deco_pipe_rim_green.name=Grünes Stahlrohr mit Rand +tile.deco_pipe_rim_green_rusted.name=Rostiges grünes Stahlrohr mit Rand +tile.deco_pipe_rim_red.name=Rotes Stahlrohr mit Rand +tile.deco_pipe_rim_marked.name=Gasrohr mit Rand tile.deco_steel.name=Stahl-Dekoblock tile.deco_titanium.name=Titan-Dekoblock tile.deco_tungsten.name=Wolfram-Dekoblock @@ -2844,6 +2871,7 @@ 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.pribris_radiating.name=Glühender RBMK-Schutt tile.radiobox.name=Rosenberg Ungeziefervernichter tile.radiorec.name=Kaputtes UKW Radio tile.rail_booster.name=Hochgeschwindigkeits-Boosterschienen @@ -2854,6 +2882,7 @@ tile.rbmk_boiler.name=RBMK Dampfkanal tile.rbmk_console.name=RBMK Konsole tile.rbmk_control.name=RBMK Steuerstäbe tile.rbmk_control_auto.name=RBMK Automatische Steuerstäbe +tile.rbmk_loader.name=RBMK-Dampfadapter tile.rbmk_moderator.name=RBMK Graphitmoderator tile.rbmk_reflector.name=RBMK Wolframcarbid-Moderator tile.rbmk_rod.name=RBMK Brennstäbe diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index f2e6016ef..b3a6760ae 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -343,6 +343,7 @@ fluid.schrabidic_fluid=Schrabidic Acid fluid.toxic_fluid=Stereotypical Green Ooze geiger.chunkRad=Current chunk radiation: +geiger.envRad=Total environmental radiation: geiger.playerRad=Player contamination: geiger.playerRes=Player resistance: geiger.title=GEIGER COUNTER @@ -1800,6 +1801,7 @@ item.photo_panel.name=Photovoltaic Panel item.pill_iodine.name=Iodine Pill item.pin.name=Bobby Pin item.pipes_steel.name=Steel Pipes +item.pipes_steel.desc=Uncrafting was omitted due to tax evasion. item.piston_selenium.name=Radial Engine Piston item.plan_c.name=Plan C item.plate_advanced_alloy.name=Advanced Alloy Plate @@ -2411,6 +2413,7 @@ tile.block_cap_sunset.name=Block of Sunset Sarsaparilla Bottle Caps tile.block_cobalt.name=Block of Cobalt tile.block_combine_steel.name=Block of CMB Steel tile.block_copper.name=Block of Copper +tile.block_corium.name=Corium tile.block_daffergon.name=Block of Daffergon tile.block_desh.name=Reinforced Block of Desh tile.block_dineutronium.name=Block of Dineutronium @@ -2539,6 +2542,30 @@ tile.deco_asbestos.name=Asbestos Roof tile.deco_beryllium.name=Beryllium Deco Block tile.deco_lead.name=Lead Deco Block tile.deco_red_copper.name=Red Copper Deco Block +tile.deco_pipe.name=Steel Pipe +tile.deco_pipe_rusted.name=Rusty Steel Pipe +tile.deco_pipe_green.name=Green Steel Pipe +tile.deco_pipe_green_rusted.name=Rusty Green Steel Pipe +tile.deco_pipe_red.name=Red Steel Pipe +tile.deco_pipe_marked.name=Gas Pipe +tile.deco_pipe_framed.name=Steel Pipe (Framed) +tile.deco_pipe_framed_rusted.name=Rusty Steel Pipe (Framed) +tile.deco_pipe_framed_green.name=Green Steel Pipe (Framed) +tile.deco_pipe_framed_green_rusted.name=Rusty Green Steel Pipe (Framed) +tile.deco_pipe_framed_red.name=Red Steel Pipe (Framed) +tile.deco_pipe_framed_marked.name=Gas Pipe (Framed) +tile.deco_pipe_quad.name=Steel Pipes +tile.deco_pipe_quad_rusted.name=Rusty Steel Pipes +tile.deco_pipe_quad_green.name=Green Steel Pipes +tile.deco_pipe_quad_green_rusted.name=Rusty Green Steel Pipes +tile.deco_pipe_quad_red.name=Red Steel Pipes +tile.deco_pipe_quad_marked.name=Gas Pipes +tile.deco_pipe_rim.name=Steel Pipe (Rimmed) +tile.deco_pipe_rim_rusted.name=Rusty Steel Pipe (Rimmed) +tile.deco_pipe_rim_green.name=Green Steel Pipe (Rimmed) +tile.deco_pipe_rim_green_rusted.name=Rusty Green Steel Pipe (Rimmed) +tile.deco_pipe_rim_red.name=Red Steel Pipe (Rimmed) +tile.deco_pipe_rim_marked.name=Gas Pipe (Rimmed) tile.deco_steel.name=Steel Deco Block tile.deco_titanium.name=Titanium Deco Block tile.deco_tungsten.name=Tungsten Deco Block @@ -2844,6 +2871,7 @@ 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.pribris_radiating.name=Smoldering RBMK Debris tile.radiobox.name=Rosenberg Pest Control Box tile.radiorec.name=Broken FM Radio tile.rail_booster.name=High Speed Booster Rail @@ -2854,6 +2882,7 @@ tile.rbmk_boiler.name=RBMK Steam Channel tile.rbmk_console.name=RBMK Console tile.rbmk_control.name=RBMK Control Rods tile.rbmk_control_auto.name=RBMK Automatic Control Rods +tile.rbmk_loader.name=RBMK Steam Connector tile.rbmk_moderator.name=RBMK Graphite Moderator tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector tile.rbmk_rod.name=RBMK Fuel Rod diff --git a/src/main/resources/assets/hbm/models/blocks/pipe_frame.obj b/src/main/resources/assets/hbm/models/blocks/pipe_frame.obj new file mode 100644 index 000000000..235edb3f4 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/pipe_frame.obj @@ -0,0 +1,268 @@ +# Blender v2.79 (sub 0) OBJ File: 'pipe_frame.blend' +# www.blender.org +o Frame +v 0.375000 -0.500000 0.500000 +v 0.375000 0.500000 0.500000 +v 0.375000 -0.500000 0.375000 +v 0.375000 0.500000 0.375000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 -0.500000 0.375000 +v 0.500000 0.500000 0.375000 +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 0.375000 +v -0.500000 0.500000 0.375000 +v -0.375000 -0.500000 0.500000 +v -0.375000 0.500000 0.500000 +v -0.375000 -0.500000 0.375000 +v -0.375000 0.500000 0.375000 +v 0.375000 -0.500000 -0.375000 +v 0.375000 0.500000 -0.375000 +v 0.375000 -0.500000 -0.500000 +v 0.375000 0.500000 -0.500000 +v 0.500000 -0.500000 -0.375000 +v 0.500000 0.500000 -0.375000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +v -0.500000 -0.500000 -0.375000 +v -0.500000 0.500000 -0.375000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 0.500000 -0.500000 +v -0.375000 -0.500000 -0.375000 +v -0.375000 0.500000 -0.375000 +v -0.375000 -0.500000 -0.500000 +v -0.375000 0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.875000 0.000000 +vt 1.000000 0.000000 +vt 0.125000 1.000000 +vt 0.000000 0.000000 +vt 0.125000 0.000000 +vt 0.125027 0.999965 +vt 0.000035 0.000035 +vt 0.125027 0.000035 +vt 1.000000 1.000000 +vt 0.875000 0.000000 +vt 1.000000 -0.000000 +vt 0.125000 1.000000 +vt -0.000000 0.875000 +vt 0.125000 0.875000 +vt 0.125000 0.125000 +vt 0.000000 0.000000 +vt 0.125000 0.000000 +vt 1.000000 1.000000 +vt 0.875000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.875000 0.000000 +vt 1.000000 0.000000 +vt 0.125027 0.999965 +vt 0.000035 0.000035 +vt 0.125027 0.000035 +vt 0.125000 1.000000 +vt -0.000000 -0.000000 +vt 0.125000 0.000000 +vt 0.125000 0.125000 +vt 0.125000 -0.000000 +vt 0.125000 1.000000 +vt 0.000000 0.875000 +vt 0.125000 0.875000 +vt 0.125000 1.000000 +vt 0.000000 0.000000 +vt 0.125000 0.000000 +vt 0.125000 1.000000 +vt 0.000000 0.000000 +vt 0.125000 0.000000 +vt 1.000000 1.000000 +vt 0.875000 -0.000000 +vt 1.000000 -0.000000 +vt 1.000000 1.000000 +vt 0.875000 -0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.875000 0.875000 +vt 1.000000 0.875000 +vt 1.000000 0.125000 +vt 0.875000 0.000000 +vt 1.000000 0.000000 +vt 0.125000 1.000000 +vt 0.000000 0.000000 +vt 0.125000 0.000000 +vt 1.000000 1.000000 +vt 0.875000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.875000 -0.000000 +vt 1.000000 -0.000000 +vt 0.125000 1.000000 +vt -0.000000 -0.000000 +vt 0.125000 0.000000 +vt 1.000000 0.125000 +vt 0.875000 -0.000000 +vt 0.875000 0.875000 +vt 1.000000 0.875000 +vt 0.875000 1.000000 +vt 0.000000 1.000000 +vt 0.000035 0.999965 +vt 0.875000 1.000000 +vt -0.000000 1.000000 +vt 0.000000 0.125000 +vt 0.875000 1.000000 +vt 0.875000 1.000000 +vt 0.000035 0.999965 +vt 0.000000 1.000000 +vt -0.000000 0.125000 +vt 0.000000 1.000000 +vt 0.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.125000 +vt 0.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 1.000000 +vt -0.000000 1.000000 +vt 0.875000 0.125000 +vt 0.875000 1.000000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/6/2 +f 8/7/3 5/8/3 7/9/3 +f 6/10/4 1/11/4 5/12/4 +f 7/13/5 1/14/5 3/15/5 +f 4/16/6 6/17/6 8/18/6 +f 10/19/1 11/20/1 9/21/1 +f 12/22/2 15/23/2 11/24/2 +f 16/25/3 13/26/3 15/27/3 +f 14/28/4 9/29/4 13/30/4 +f 15/31/5 9/29/5 11/32/5 +f 12/33/6 14/34/6 16/35/6 +f 18/36/1 19/37/1 17/38/1 +f 20/39/2 23/40/2 19/41/2 +f 24/42/3 21/43/3 23/44/3 +f 22/45/4 17/46/4 21/47/4 +f 23/48/5 17/49/5 19/50/5 +f 20/51/6 22/52/6 24/53/6 +f 26/54/1 27/55/1 25/56/1 +f 28/57/2 31/58/2 27/59/2 +f 32/60/3 29/61/3 31/62/3 +f 30/63/4 25/64/4 29/65/4 +f 31/66/5 25/67/5 27/59/5 +f 28/57/6 30/68/6 32/69/6 +f 2/1/1 4/70/1 3/2/1 +f 4/4/2 8/71/2 7/5/2 +f 8/7/3 6/72/3 5/8/3 +f 6/10/4 2/73/4 1/11/4 +f 7/13/5 5/74/5 1/14/5 +f 4/16/6 2/75/6 6/17/6 +f 10/19/1 12/76/1 11/20/1 +f 12/22/2 16/77/2 15/23/2 +f 16/25/3 14/78/3 13/26/3 +f 14/28/4 10/79/4 9/29/4 +f 15/31/5 13/80/5 9/29/5 +f 12/33/6 10/79/6 14/34/6 +f 18/36/1 20/81/1 19/37/1 +f 20/39/2 24/82/2 23/40/2 +f 24/42/3 22/83/3 21/43/3 +f 22/45/4 18/84/4 17/46/4 +f 23/48/5 21/85/5 17/49/5 +f 20/51/6 18/86/6 22/52/6 +f 26/54/1 28/87/1 27/55/1 +f 28/57/2 32/88/2 31/58/2 +f 32/60/3 30/89/3 29/61/3 +f 30/63/4 26/90/4 25/64/4 +f 31/66/5 29/91/5 25/67/5 +f 28/57/6 26/92/6 30/68/6 +o Mesh +v 0.437500 -0.500000 0.375000 +v 0.437500 0.500000 0.375000 +v 0.437500 -0.500000 -0.375000 +v 0.437500 0.500000 -0.375000 +v -0.437500 -0.500000 0.375000 +v -0.437500 0.500000 0.375000 +v -0.437500 -0.500000 -0.375000 +v -0.437500 0.500000 -0.375000 +v 0.375000 -0.500000 -0.437500 +v 0.375000 0.500000 -0.437500 +v -0.375000 -0.500000 -0.437500 +v -0.375000 0.500000 -0.437500 +v 0.375000 -0.500000 0.437500 +v 0.375000 0.500000 0.437500 +v -0.375000 -0.500000 0.437500 +v -0.375000 0.500000 0.437500 +v 0.437500 -0.500000 0.375000 +v 0.437500 0.500000 0.375000 +v 0.437500 -0.500000 -0.375000 +v 0.437500 0.500000 -0.375000 +v -0.437500 -0.500000 0.375000 +v -0.437500 0.500000 0.375000 +v -0.437500 -0.500000 -0.375000 +v -0.437500 0.500000 -0.375000 +v 0.375000 -0.500000 -0.437500 +v 0.375000 0.500000 -0.437500 +v -0.375000 -0.500000 -0.437500 +v -0.375000 0.500000 -0.437500 +v 0.375000 -0.500000 0.437500 +v 0.375000 0.500000 0.437500 +v -0.375000 -0.500000 0.437500 +v -0.375000 0.500000 0.437500 +vt 0.875000 -0.000000 +vt 0.125000 1.000000 +vt 0.125000 -0.000000 +vt 0.875000 1.000000 +vt 0.125000 -0.000000 +vt 0.875000 -0.000000 +vt 0.875000 -0.000000 +vt 0.125000 1.000000 +vt 0.125000 -0.000000 +vt 0.875000 1.000000 +vt 0.125000 -0.000000 +vt 0.875000 -0.000000 +vt 0.125000 1.000000 +vt 0.875000 -0.000000 +vt 0.125000 -0.000000 +vt 0.125000 -0.000000 +vt 0.875000 1.000000 +vt 0.875000 -0.000000 +vt 0.125000 1.000000 +vt 0.875000 -0.000000 +vt 0.125000 -0.000000 +vt 0.125000 -0.000000 +vt 0.875000 1.000000 +vt 0.875000 -0.000000 +vt 0.875000 1.000000 +vt 0.125000 1.000000 +vt 0.875000 1.000000 +vt 0.125000 1.000000 +vt 0.875000 1.000000 +vt 0.125000 1.000000 +vt 0.875000 1.000000 +vt 0.125000 1.000000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +s off +f 35/93/7 34/94/7 33/95/7 +f 38/96/8 39/97/8 37/98/8 +f 43/99/9 42/100/9 41/101/9 +f 46/102/10 47/103/10 45/104/10 +f 50/105/8 51/106/8 49/107/8 +f 55/108/7 54/109/7 53/110/7 +f 58/111/10 59/112/10 57/113/10 +f 63/114/9 62/115/9 61/116/9 +f 35/93/7 36/117/7 34/94/7 +f 38/96/8 40/118/8 39/97/8 +f 43/99/9 44/119/9 42/100/9 +f 46/102/10 48/120/10 47/103/10 +f 50/105/8 52/121/8 51/106/8 +f 55/108/7 56/122/7 54/109/7 +f 58/111/10 60/123/10 59/112/10 +f 63/114/9 64/124/9 62/115/9 diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_frame.png b/src/main/resources/assets/hbm/textures/blocks/pipe_frame.png new file mode 100644 index 000000000..877a64a80 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_frame.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_mesh.png b/src/main/resources/assets/hbm/textures/blocks/pipe_mesh.png new file mode 100644 index 000000000..ea11b4a1c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_mesh.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_side_marked.png b/src/main/resources/assets/hbm/textures/blocks/pipe_side_marked.png new file mode 100644 index 000000000..d78af9f21 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_side_marked.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_side_marked_base.png b/src/main/resources/assets/hbm/textures/blocks/pipe_side_marked_base.png new file mode 100644 index 000000000..9394a2b67 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_side_marked_base.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_side_red.png b/src/main/resources/assets/hbm/textures/blocks/pipe_side_red.png new file mode 100644 index 000000000..ab702f4ad Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_side_red.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_side_red_base.png b/src/main/resources/assets/hbm/textures/blocks/pipe_side_red_base.png new file mode 100644 index 000000000..c80b8c6be Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_side_red_base.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_top_marked.png b/src/main/resources/assets/hbm/textures/blocks/pipe_top_marked.png new file mode 100644 index 000000000..d62350fa7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_top_marked.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/pipe_top_red.png b/src/main/resources/assets/hbm/textures/blocks/pipe_top_red.png new file mode 100644 index 000000000..acd205a39 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/pipe_top_red.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rbmk_loader.png b/src/main/resources/assets/hbm/textures/blocks/rbmk_loader.png new file mode 100644 index 000000000..6f96fa00f Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rbmk_loader.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 0c0ecb796..3f80e0783 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "hbm", "name": "Hbm's Nuclear Tech", "description": "A mod that adds weapons, nuclear themed stuff and machines", - "version":"1.0.27-3864", + "version":"1.0.27-3868", "mcversion": "1.7.10", "url": "", "updateUrl": "",