diff --git a/changelog b/changelog index 8c5d6df54..f406cefee 100644 --- a/changelog +++ b/changelog @@ -1,20 +1,10 @@ ## Added -* Silo hatch - * The final missing door from 1.12, remade from scratch - * Comes with a brand-new model that fits perfectly over 3x3 missile launch tubes - * Has a 5x5 frame - -## Changed -* Simplified door recipes +* Muffler + * An upgrade-like item that replaces the old muffler block + * Creates 16 when crafted, however it is not returned when the muffled machine is broken + * Should work with pretty much all machines that use looped sounds, as well as a few other noisy ones (compressors, diesel generators, presses) + * Simply right-click to install, doesn't need to be inserted into an upgrade slot, in fact it works on a few machines that have no GUI at all ## Fixed -* Fixed sellafite emerald ore being oredicted as emerald dust -* Fixed fire replacing petrified wood, creating tons of dead trees with holes in them -* Fixed inconsistent scaling with nuclear missiles -* Fixed BFB rods being called ZFB in hot and depleted variants -* Fixed infinite water barrels voiding water completely after the chemplant's input buffer runs full, infinite barrels can no longer void water in chemplants -* Fixed fallout affecting things on Y:0 like bedrock ores and oil -* Fixed projectiles not being able to pass through open doors -* Fixed material dupe caused by strand caster overflowing -* Fixed rampant mode glyphid scout spawn ignoring light level -* Fixed glyphid diggers' debris attack being able to break concrete +* Fixed basalt ores dropping their items with invalid metadata +* Fixed creative infinite fluid tanks not being able to fill fluid gauges at >0PU diff --git a/gradle.properties b/gradle.properties index 963b4f95a..dfdd7bdff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4845 +mod_build_number=4851 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/BlockEnumMulti.java b/src/main/java/com/hbm/blocks/BlockEnumMulti.java index d581bfd2d..0dd222f82 100644 --- a/src/main/java/com/hbm/blocks/BlockEnumMulti.java +++ b/src/main/java/com/hbm/blocks/BlockEnumMulti.java @@ -36,7 +36,7 @@ public class BlockEnumMulti extends BlockMulti { for(int i = 0; i < icons.length; i++) { Enum num = enums[i]; - this.icons[i] = reg.registerIcon(this.getTextureName() + "." + num.name().toLowerCase(Locale.US)); + this.icons[i] = reg.registerIcon(this.getTextureMultiName(num)); } } else { this.blockIcon = reg.registerIcon(this.getTextureName()); @@ -47,12 +47,20 @@ public class BlockEnumMulti extends BlockMulti { if(this.multiName) { Enum num = EnumUtil.grabEnumSafely(this.theEnum, stack.getItemDamage()); - return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); + return getUnlocalizedMultiName(num); } return this.getUnlocalizedName(); } + public String getTextureMultiName(Enum num) { + return this.getTextureName() + "." + num.name().toLowerCase(Locale.US); + } + + public String getUnlocalizedMultiName(Enum num) { + return super.getUnlocalizedName() + "." + num.name().toLowerCase(Locale.US); + } + @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { diff --git a/src/main/java/com/hbm/blocks/BlockRemap.java b/src/main/java/com/hbm/blocks/BlockRemap.java index c9d66894f..1939b2830 100644 --- a/src/main/java/com/hbm/blocks/BlockRemap.java +++ b/src/main/java/com/hbm/blocks/BlockRemap.java @@ -3,10 +3,12 @@ package com.hbm.blocks; import java.util.ArrayList; import java.util.Random; -import com.hbm.lib.RefStrings; - +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; @@ -21,12 +23,16 @@ public class BlockRemap extends Block implements ILookOverlay { this.remapMeta = meta; this.setTickRandomly(true); } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int meta, int side) { + return this.remapBlock.getIcon(meta, side); + } @Override - public Block setBlockName(String name) { - super.setBlockName(name); - this.setBlockTextureName(RefStrings.MODID + ":" + name); - return this; + public Item getItemDropped(int meta, Random rand, int fortune) { + return this.remapBlock.getItemDropped(meta, rand, fortune); } @Override diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 31d8488d5..47a1bbff1 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -152,10 +152,11 @@ public class ModBlocks { public static Block depth_dnt; public static Block basalt; - public static Block basalt_sulfur; - public static Block basalt_fluorite; - public static Block basalt_asbestos; - public static Block basalt_gem; + public static Block ore_basalt; + @Deprecated public static Block basalt_sulfur; + @Deprecated public static Block basalt_fluorite; + @Deprecated public static Block basalt_asbestos; + @Deprecated public static Block basalt_gem; public static Block basalt_smooth; public static Block basalt_brick; public static Block basalt_polished; @@ -538,6 +539,7 @@ public class ModBlocks { public static Block ore_sellafield_emerald; public static Block ore_sellafield_uranium_scorched; public static Block ore_sellafield_schrabidium; + public static Block ore_sellafield_radgem; public static Block geysir_water; public static Block geysir_chlorine; @@ -630,8 +632,6 @@ public class ModBlocks { public static Block tesla; - public static Block muffler; - public static Block sat_mapper; public static Block sat_scanner; public static Block sat_radar; @@ -1233,7 +1233,8 @@ public class ModBlocks { public static Block volcanic_lava_block; public static Fluid volcanic_lava_fluid; - public static final Material fluidvolcanic = (new MaterialLiquid(MapColor.redColor)); + public static Block rad_lava_block; + public static Fluid rad_lava_fluid; public static Block sulfuric_acid_block; public static Fluid sulfuric_acid_fluid; @@ -1241,6 +1242,7 @@ public class ModBlocks { public static Block concrete_liquid; public static Block volcano_core; + public static Block volcano_rad_core; public static Block dummy_block_ams_limiter; public static Block dummy_port_ams_limiter; @@ -1377,10 +1379,11 @@ public class ModBlocks { stone_deep_cobble = new BlockDeepCobble().setBlockName("stone_deep_cobble").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(30.0F); basalt = new BlockGeneric(Material.rock).setBlockName("basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt"); - basalt_sulfur = new BlockOre(Material.rock).setBlockName("basalt_sulfur").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_sulfur"); - basalt_fluorite = new BlockOre(Material.rock).setBlockName("basalt_fluorite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_fluorite"); - basalt_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("basalt_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_asbestos"); - basalt_gem = new BlockCluster(Material.rock).setBlockName("basalt_gem").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_gem"); + ore_basalt = new BlockOreBasalt().setBlockName("ore_basalt").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":ore_basalt"); + basalt_sulfur = new BlockRemap(ore_basalt, 0).setBlockName("basalt_sulfur"); + basalt_fluorite = new BlockRemap(ore_basalt, 1).setBlockName("basalt_fluorite"); + basalt_asbestos = new BlockRemap(ore_basalt, 2).setBlockName("basalt_asbestos"); + basalt_gem = new BlockRemap(ore_basalt, 3).setBlockName("basalt_gem"); basalt_smooth = new BlockGeneric(Material.rock).setBlockName("basalt_smooth").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_smooth"); basalt_brick = new BlockGeneric(Material.rock).setBlockName("basalt_brick").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_brick"); basalt_polished = new BlockGeneric(Material.rock).setBlockName("basalt_polished").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":basalt_polished"); @@ -1760,6 +1763,7 @@ public class ModBlocks { ore_sellafield_emerald = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_emerald").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_emerald"); ore_sellafield_uranium_scorched = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_uranium_scorched").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_uranium_scorched"); ore_sellafield_schrabidium = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_schrabidium").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_schrabidium"); + ore_sellafield_radgem = new BlockSellafieldOre(Material.rock).setBlockName("ore_sellafield_radgem").setStepSound(Block.soundTypeStone).setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setBlockTextureName(RefStrings.MODID + ":ore_overlay_radgem"); geysir_water = new BlockGeysir(Material.rock).setBlockName("geysir_water").setStepSound(Block.soundTypeStone).setHardness(5.0F); geysir_chlorine = new BlockGeysir(Material.rock).setBlockName("geysir_chlorine").setStepSound(Block.soundTypeStone).setHardness(5.0F); @@ -2142,8 +2146,6 @@ public class ModBlocks { tesla = new MachineTesla(Material.iron).setBlockName("tesla").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":tesla"); - muffler = new BlockGeneric(Material.cloth).setBlockName("muffler").setHardness(0.8F).setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":muffler"); - launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); machine_radar_large = new MachineRadarLarge(Material.iron).setBlockName("machine_radar_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2369,6 +2371,7 @@ public class ModBlocks { transission_hatch = new BlockTransission(Material.iron).setBlockName("transission_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":transission_hatch"); volcano_core = new BlockVolcano().setBlockName("volcano_core").setBlockUnbreakable().setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_core"); + volcano_rad_core = new BlockVolcano().setBlockName("volcano_rad_core").setBlockUnbreakable().setResistance(10000.0F).setCreativeTab(MainRegistry.nukeTab).setBlockTextureName(RefStrings.MODID + ":volcano_rad_core"); statue_elb = new DecoBlockAlt(Material.iron).setBlockName("#null").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); statue_elb_g = new DecoBlockAlt(Material.iron).setBlockName("#void").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY); @@ -2399,6 +2402,10 @@ public class ModBlocks { FluidRegistry.registerFluid(volcanic_lava_fluid); volcanic_lava_block = new VolcanicBlock(volcanic_lava_fluid, Material.lava).setBlockName("volcanic_lava_block").setResistance(500F); + rad_lava_fluid = new RadFluid().setLuminosity(15).setDensity(3000).setViscosity(3000).setTemperature(1300).setUnlocalizedName("rad_lava_fluid"); + FluidRegistry.registerFluid(rad_lava_fluid); + rad_lava_block = new RadBlock(rad_lava_fluid, Material.lava).setBlockName("rad_lava_block").setResistance(500F); + sulfuric_acid_fluid = new GenericFluid("sulfuric_acid_fluid").setDensity(1840).setViscosity(1000).setTemperature(273); FluidRegistry.registerFluid(sulfuric_acid_fluid); sulfuric_acid_block = new GenericFluidBlock(sulfuric_acid_fluid, Material.water, "sulfuric_acid_still", "sulfuric_acid_flowing").setDamage(ModDamageSource.acid, 5F).setBlockName("sulfuric_acid_block").setResistance(500F); @@ -2543,6 +2550,7 @@ public class ModBlocks { GameRegistry.registerBlock(ore_depth_nether_neodymium, ItemBlockBase.class, ore_depth_nether_neodymium.getUnlocalizedName()); //Basalt ores + register(ore_basalt); GameRegistry.registerBlock(basalt_sulfur, basalt_sulfur.getUnlocalizedName()); GameRegistry.registerBlock(basalt_fluorite, basalt_fluorite.getUnlocalizedName()); GameRegistry.registerBlock(basalt_asbestos, basalt_asbestos.getUnlocalizedName()); @@ -2936,6 +2944,7 @@ public class ModBlocks { register(ore_sellafield_emerald); register(ore_sellafield_uranium_scorched); register(ore_sellafield_schrabidium); + register(ore_sellafield_radgem); GameRegistry.registerBlock(sellafield, ItemBlockNamedMeta.class, sellafield.getUnlocalizedName()); //Geysirs @@ -3376,9 +3385,6 @@ public class ModBlocks { GameRegistry.registerBlock(radiorec, radiorec.getUnlocalizedName()); GameRegistry.registerBlock(radiobox, radiobox.getUnlocalizedName()); - //The muffler - GameRegistry.registerBlock(muffler, muffler.getUnlocalizedName()); - //Multiblock Parts GameRegistry.registerBlock(struct_launcher, struct_launcher.getUnlocalizedName()); GameRegistry.registerBlock(struct_scaffold, struct_scaffold.getUnlocalizedName()); @@ -3459,6 +3465,7 @@ public class ModBlocks { GameRegistry.registerBlock(fire_digamma, fire_digamma.getUnlocalizedName()); GameRegistry.registerBlock(digamma_matter, digamma_matter.getUnlocalizedName()); register(volcano_core); + register(volcano_rad_core); //AMS GameRegistry.registerBlock(ams_base, ams_base.getUnlocalizedName()); @@ -3535,6 +3542,7 @@ public class ModBlocks { GameRegistry.registerBlock(schrabidic_block, schrabidic_block.getUnlocalizedName()); GameRegistry.registerBlock(corium_block, corium_block.getUnlocalizedName()); GameRegistry.registerBlock(volcanic_lava_block, volcanic_lava_block.getUnlocalizedName()); + GameRegistry.registerBlock(rad_lava_block, rad_lava_block.getUnlocalizedName()); GameRegistry.registerBlock(sulfuric_acid_block, sulfuric_acid_block.getUnlocalizedName()); //GameRegistry.registerBlock(concrete_liquid, concrete_liquid.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java index 2766da2ce..0d586e803 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java @@ -81,8 +81,9 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB } public static class TileEntityVolcanoCore extends TileEntity { - + private static List volcanoExplosion = Arrays.asList(new ExAttrib[] {ExAttrib.NODROP, ExAttrib.LAVA_V, ExAttrib.NOSOUND, ExAttrib.ALLMOD, ExAttrib.NOHURT}); + private static List volcanoRadExplosion = Arrays.asList(new ExAttrib[] {ExAttrib.NODROP, ExAttrib.LAVA_R, ExAttrib.NOSOUND, ExAttrib.ALLMOD, ExAttrib.NOHURT}); public int volcanoTimer; @@ -118,15 +119,28 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB if(this.shouldGrow()) { worldObj.setBlock(xCoord, yCoord + 1, zCoord, this.getBlockType(), this.getBlockMetadata(), 3); - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.volcanic_lava_block); + worldObj.setBlock(xCoord, yCoord, zCoord, getLava()); return; } else if(this.isExtinguishing()) { - worldObj.setBlock(xCoord, yCoord, zCoord, ModBlocks.volcanic_lava_block); + worldObj.setBlock(xCoord, yCoord, zCoord, getLava()); return; } } } } + + public boolean isRadioacitve() { + return this.getBlockType() == ModBlocks.volcano_rad_core; + } + + protected Block getLava() { + if(isRadioacitve()) return ModBlocks.rad_lava_block; + return ModBlocks.volcanic_lava_block; + } + + protected List getExpAttrb() { + return this.isRadioacitve() ? this.volcanoRadExplosion : this.volcanoExplosion; + } @Override public void readFromNBT(NBTTagCompound nbt) { @@ -185,20 +199,15 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB } /* TODO */ - private boolean doesPyroclastic() { - return false; - } - - private double getPyroclasticRange() { - return 0D; - } + private boolean doesPyroclastic() { return false; } + private double getPyroclasticRange() { return 0D; } /** Causes two magma explosions, one from bedrock to the core and one from the core to 15 blocks above. */ private void blastMagmaChannel() { ExplosionNT explosion = new ExplosionNT(worldObj, null, xCoord + 0.5, yCoord + worldObj.rand.nextInt(15) + 1.5, zCoord + 0.5, 7); - explosion.addAllAttrib(volcanoExplosion).explode(); + explosion.addAllAttrib(getExpAttrb()).explode(); ExplosionNT explosion2 = new ExplosionNT(worldObj, null, xCoord + 0.5 + worldObj.rand.nextGaussian() * 3, worldObj.rand.nextInt(yCoord + 1), zCoord + 0.5 + worldObj.rand.nextGaussian() * 3, 10); - explosion2.addAllAttrib(volcanoExplosion).explode(); + explosion2.addAllAttrib(getExpAttrb()).explode(); } /** Causes two magma explosions at a random position around the core, one at normal and one at half range. */ @@ -207,7 +216,7 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB for(int i = 0; i < 2; i++) { double dist = size / (double) (i + 1); ExplosionNT explosion = new ExplosionNT(worldObj, null, xCoord + 0.5 + worldObj.rand.nextGaussian() * dist, yCoord + 0.5 + worldObj.rand.nextGaussian() * dist, zCoord + 0.5 + worldObj.rand.nextGaussian() * dist, 7); - explosion.addAllAttrib(volcanoExplosion).explode(); + explosion.addAllAttrib(getExpAttrb()).explode(); } } @@ -224,7 +233,7 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB if(!b.isAir(worldObj, x, y, z) && b.getExplosionResistance(null) < Blocks.obsidian.getExplosionResistance(null)) { //turn into lava if solid block, otherwise just break - worldObj.setBlock(x, y, z, b.isNormalCube() ? ModBlocks.volcanic_lava_block : Blocks.air); + worldObj.setBlock(x, y, z, b.isNormalCube() ? this.getLava() : Blocks.air); } } } @@ -236,8 +245,8 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB int rY = yCoord + worldObj.rand.nextInt(11); int rZ = zCoord - 10 + worldObj.rand.nextInt(21); - if(worldObj.getBlock(rX, rY, rZ) == Blocks.air && worldObj.getBlock(rX, rY - 1, rZ) == ModBlocks.volcanic_lava_block) - worldObj.setBlock(rX, rY, rZ, ModBlocks.volcanic_lava_block); + if(worldObj.getBlock(rX, rY, rZ) == Blocks.air && worldObj.getBlock(rX, rY - 1, rZ) == this.getLava()) + worldObj.setBlock(rX, rY, rZ, this.getLava()); } /** Creates a 3x3x3 lava sphere around the core. */ @@ -248,7 +257,7 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB for(int k = -1; k <= 1; k++) { if(i != 0 || j != 0 || k != 0) { - worldObj.setBlock(xCoord + i, yCoord + j, zCoord + k, ModBlocks.volcanic_lava_block); + worldObj.setBlock(xCoord + i, yCoord + j, zCoord + k, this.getLava()); } } } @@ -264,7 +273,11 @@ public class BlockVolcano extends BlockContainer implements ITooltipProvider, IB frag.motionY = 1D + worldObj.rand.nextDouble(); frag.motionX = worldObj.rand.nextGaussian() * 0.2D; frag.motionZ = worldObj.rand.nextGaussian() * 0.2D; - frag.setVolcano(true); + if(this.isRadioacitve()) { + frag.setRadVolcano(true); + } else { + frag.setVolcano(true); + } worldObj.spawnEntityInWorld(frag); } } diff --git a/src/main/java/com/hbm/blocks/fluid/RadBlock.java b/src/main/java/com/hbm/blocks/fluid/RadBlock.java new file mode 100644 index 000000000..7ab22af70 --- /dev/null +++ b/src/main/java/com/hbm/blocks/fluid/RadBlock.java @@ -0,0 +1,81 @@ +package com.hbm.blocks.fluid; + +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; +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.init.Blocks; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraftforge.fluids.Fluid; + +public class RadBlock extends VolcanicBlock { + + @SideOnly(Side.CLIENT) public static IIcon stillIconRad; + @SideOnly(Side.CLIENT) public static IIcon flowingIconRad; + + public RadBlock(Fluid fluid, Material material) { + super(fluid, material); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister register) { + stillIconRad = register.registerIcon(RefStrings.MODID + ":rad_lava_still"); + flowingIconRad = register.registerIcon(RefStrings.MODID + ":rad_lava_flowing"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return (side == 0 || side == 1) ? stillIconRad : flowingIconRad; + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + if(entity instanceof EntityLivingBase) ContaminationUtil.contaminate((EntityLivingBase) entity, HazardType.RADIATION, ContaminationType.CREATIVE, 5F); + } + + @Override + public void onSolidify(World world, int x, int y, int z, int lavaCount, int basaltCount, Random rand) { + int r = rand.nextInt(400); + + Block above = world.getBlock(x, y + 10, z); + boolean canMakeGem = lavaCount + basaltCount == 6 && lavaCount < 3 && (above == ModBlocks.sellafield_slaked || above == ModBlocks.rad_lava_block); + int meta = 5 + rand.nextInt(3); + + if(r < 2) world.setBlock(x, y, z, ModBlocks.ore_sellafield_diamond, meta, 3); + else if(r == 2) world.setBlock(x, y, z, ModBlocks.ore_sellafield_emerald, meta, 3); + else if(r < 20 && canMakeGem) world.setBlock(x, y, z, ModBlocks.ore_sellafield_radgem, meta, 3); + else world.setBlock(x, y, z, ModBlocks.sellafield_slaked, meta, 3); + } + + @Override + public Block getBasaltForCheck() { + return ModBlocks.sellafield_slaked; + } + + @Override + public Block getReaction(World world, int x, int y, int z) { + + Block b = world.getBlock(x, y, z); + if(b.getMaterial() == Material.water) return Blocks.stone; + if(b == Blocks.log || b == Blocks.log2) return ModBlocks.waste_log; + if(b == Blocks.planks) return ModBlocks.waste_planks; + if(b == Blocks.leaves || b == Blocks.leaves2) return Blocks.fire; + if(b == Blocks.diamond_ore) return ModBlocks.ore_sellafield_radgem; + if(b == ModBlocks.ore_uranium || b == ModBlocks.ore_gneiss_uranium) return world.rand.nextInt(5) == 0 ? ModBlocks.ore_sellafield_schrabidium : ModBlocks.ore_sellafield_uranium_scorched; + return null; + } +} diff --git a/src/main/java/com/hbm/blocks/fluid/RadFluid.java b/src/main/java/com/hbm/blocks/fluid/RadFluid.java new file mode 100644 index 000000000..77de22cab --- /dev/null +++ b/src/main/java/com/hbm/blocks/fluid/RadFluid.java @@ -0,0 +1,31 @@ +package com.hbm.blocks.fluid; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.IIcon; +import net.minecraftforge.fluids.Fluid; + +public class RadFluid extends Fluid { + + public RadFluid() { + super("rad_lava_fluid"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon() { + return getStillIcon(); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getStillIcon() { + return RadBlock.stillIconRad; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getFlowingIcon() { + return RadBlock.flowingIconRad; + } +} diff --git a/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java b/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java index d81ec02ad..d82d67808 100644 --- a/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java +++ b/src/main/java/com/hbm/blocks/fluid/VolcanicBlock.java @@ -51,26 +51,18 @@ public class VolcanicBlock extends BlockFluidClassic { for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { Block b = getReaction(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ); - if(b != null) - world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, b); + if(b != null) world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, b, b == ModBlocks.ore_basalt ? 3 : 0, 3); } } public Block getReaction(World world, int x, int y, int z) { Block b = world.getBlock(x, y, z); - if(b.getMaterial() == Material.water) { - return Blocks.stone; - } - if(b == Blocks.log || b == Blocks.log2) { - return ModBlocks.waste_log; - } - if(b == Blocks.planks) { - return ModBlocks.waste_planks; - } - if(b == Blocks.leaves || b == Blocks.leaves2) { - return Blocks.fire; - } + if(b.getMaterial() == Material.water) return Blocks.stone; + if(b == Blocks.log || b == Blocks.log2) return ModBlocks.waste_log; + if(b == Blocks.planks) return ModBlocks.waste_planks; + if(b == Blocks.leaves || b == Blocks.leaves2) return Blocks.fire; + if(b == Blocks.diamond_ore) return ModBlocks.ore_basalt; return null; } @@ -87,30 +79,33 @@ public class VolcanicBlock extends BlockFluidClassic { if(b == this) lavaCount++; - if(b == ModBlocks.basalt) { + if(b == getBasaltForCheck()) { basaltCount++; } } if(!world.isRemote && ((!this.isSourceBlock(world, x, y, z) && lavaCount < 2) || (rand.nextInt(5) == 0) && lavaCount < 5) && world.getBlock(x, y - 1, z) != this) { - - int r = rand.nextInt(200); - - Block above = world.getBlock(x, y + 10, z); - boolean canMakeGem = lavaCount + basaltCount == 6 && lavaCount < 3 && (above == ModBlocks.basalt || above == ModBlocks.volcanic_lava_block); - - if(r < 2) - world.setBlock(x, y, z, ModBlocks.basalt_sulfur); - else if(r == 2) - world.setBlock(x, y, z, ModBlocks.basalt_asbestos); - else if(r == 3) - world.setBlock(x, y, z, ModBlocks.basalt_fluorite); - else if(r < 14 && canMakeGem) - world.setBlock(x, y, z, ModBlocks.basalt_gem); - else - world.setBlock(x, y, z, ModBlocks.basalt); + this.onSolidify(world, x, y, z, lavaCount, basaltCount, rand); } } + + public Block getBasaltForCheck() { + return ModBlocks.basalt; + } + + public void onSolidify(World world, int x, int y, int z, int lavaCount, int basaltCount, Random rand) { + int r = rand.nextInt(200); + + Block above = world.getBlock(x, y + 10, z); + boolean canMakeGem = lavaCount + basaltCount == 6 && lavaCount < 3 && (above == ModBlocks.basalt || above == ModBlocks.volcanic_lava_block); + + if(r < 2) world.setBlock(x, y, z, ModBlocks.ore_basalt, 0, 3); + else if(r == 2) world.setBlock(x, y, z, ModBlocks.ore_basalt, 1, 3); + else if(r == 3) world.setBlock(x, y, z, ModBlocks.ore_basalt, 2, 3); + else if(r == 4) world.setBlock(x, y, z, ModBlocks.ore_basalt, 4, 3); + else if(r < 15 && canMakeGem) world.setBlock(x, y, z, ModBlocks.ore_basalt, 3, 3); + else world.setBlock(x, y, z, ModBlocks.basalt); + } @Override public boolean canDisplace(IBlockAccess world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java b/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java index 19033a933..f35be20f5 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasClorine.java @@ -40,7 +40,7 @@ public class BlockGasClorine extends BlockGasBase { EntityLivingBase entityLiving = (EntityLivingBase) entity; - if(ArmorRegistry.hasAllProtection(entityLiving, 3, HazardClass.GAS_CHLORINE)) { + if(ArmorRegistry.hasAllProtection(entityLiving, 3, HazardClass.GAS_LUNG)) { ArmorUtil.damageGasMaskFilter(entityLiving, 1); } else { diff --git a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java index 841d834f9..fbe36d426 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDoorGeneric.java @@ -3,7 +3,9 @@ package com.hbm.blocks.generic; import java.util.List; import com.hbm.blocks.BlockDummyable; +import com.hbm.interfaces.IBomb; import com.hbm.items.special.ItemDoorSkin; +import com.hbm.items.tool.ItemLock; import com.hbm.tileentity.DoorDecl; import com.hbm.tileentity.TileEntityDoorGeneric; import com.hbm.util.fauxpointtwelve.BlockPos; @@ -20,7 +22,7 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class BlockDoorGeneric extends BlockDummyable { +public class BlockDoorGeneric extends BlockDummyable implements IBomb { public DoorDecl type; @@ -45,6 +47,22 @@ public class BlockDoorGeneric extends BlockDummyable { public int getOffset(){ return type.getBlockOffset(); } + + @Override + public BombReturnCode explode(World world, int x, int y, int z) { + int[] pos1 = findCore(world, x, y, z); + if(pos1 == null) return BombReturnCode.ERROR_INCOMPATIBLE; + TileEntityDoorGeneric door = (TileEntityDoorGeneric) world.getTileEntity(pos1[0], pos1[1], pos1[2]); + if(door != null) { + DoorDecl decl = door.getDoorType(); + if(!decl.remoteControllable()) return BombReturnCode.ERROR_INCOMPATIBLE; + if(door.tryToggle(null)) { + return BombReturnCode.TRIGGERED; + } + } + + return BombReturnCode.ERROR_INCOMPATIBLE; + } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer playerIn, int side, float hitX, float hitY, float hitZ){ @@ -148,5 +166,4 @@ public class BlockDoorGeneric extends BlockDummyable { } return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1); } - } \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/generic/BlockFissure.java b/src/main/java/com/hbm/blocks/generic/BlockFissure.java index 003bd8e23..dac40abf0 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockFissure.java +++ b/src/main/java/com/hbm/blocks/generic/BlockFissure.java @@ -1,6 +1,9 @@ package com.hbm.blocks.generic; +import java.util.Random; + import com.hbm.blocks.IBlockMultiPass; +import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.render.block.RenderBlockMultipass; @@ -11,6 +14,7 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.init.Blocks; import net.minecraft.util.IIcon; +import net.minecraft.world.World; public class BlockFissure extends Block implements IBlockMultiPass { @@ -21,6 +25,7 @@ public class BlockFissure extends Block implements IBlockMultiPass { this.setBlockTextureName("bedrock"); this.setBlockUnbreakable(); this.setResistance(1_000_000); + this.setTickRandomly(true); } @Override @@ -41,6 +46,16 @@ public class BlockFissure extends Block implements IBlockMultiPass { return this.overlay; } + @Override + public void updateTick(World world, int x, int y, int z, Random rand) { + if(world.getBlock(x, y + 1, z).isReplaceable(world, x, y + 1, z)) world.setBlock(x, y + 1, z, ModBlocks.volcanic_lava_block); + } + + @Override + public boolean shouldRenderItemMulti() { + return true; + } + @Override public int getPasses() { return 2; diff --git a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java index e4d07db08..eb211f871 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java +++ b/src/main/java/com/hbm/blocks/generic/BlockGlyphidSpawner.java @@ -100,7 +100,8 @@ public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti { if(!worldObj.isRemote && this.worldObj.difficultySetting != EnumDifficulty.PEACEFUL) { if(initialSpawn || worldObj.getTotalWorldTime() % MobConfig.swarmCooldown == 0) { - + + initialSpawn = false; int count = 0; for(Object e : worldObj.loadedEntityList) { @@ -126,8 +127,6 @@ public class BlockGlyphidSpawner extends BlockContainer implements IBlockMulti { if(this.getBlockMetadata() == 1) scout.getDataWatcher().updateObject(EntityGlyphid.DW_SUBTYPE, (byte) EntityGlyphid.TYPE_INFECTED); trySpawnEntity(scout); } - - initialSpawn = false; } } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java index f1c96e0b7..7c195a114 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java +++ b/src/main/java/com/hbm/blocks/generic/BlockKeyhole.java @@ -232,6 +232,8 @@ public class BlockKeyhole extends BlockStone { pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wd40), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.scrumpy), 10)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.wild_p), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.card_aos), 5)); + pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.card_qos), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.starmetal_sword), 5)); pedestalItems.add(new WeightedRandomObject(new ItemStack(ModItems.radaway_flush), 5)); diff --git a/src/main/java/com/hbm/blocks/generic/BlockMush.java b/src/main/java/com/hbm/blocks/generic/BlockMush.java index a13511b5f..d914992ca 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockMush.java +++ b/src/main/java/com/hbm/blocks/generic/BlockMush.java @@ -4,7 +4,6 @@ import java.util.HashSet; import java.util.Random; import java.util.Set; -import com.google.common.collect.Sets; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; import com.hbm.world.feature.HugeMush; diff --git a/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java b/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java new file mode 100644 index 000000000..d650c0b95 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockOreBasalt.java @@ -0,0 +1,79 @@ +package com.hbm.blocks.generic; + +import java.util.Locale; +import java.util.Random; + +import com.hbm.blocks.BlockEnumMulti; +import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class BlockOreBasalt extends BlockEnumMulti { + + public BlockOreBasalt() { + super(Material.rock, EnumBasaltOreType.class, true, true); + } + + public static enum EnumBasaltOreType { + SULFUR, + FLUORITE, + ASBESTOS, + GEM, + MOLYSITE + } + + public String getTextureMultiName(Enum num) { + return this.getTextureName() + "_" + num.name().toLowerCase(Locale.US); + } + + public String getUnlocalizedMultiName(Enum num) { + return super.getUnlocalizedName() + "_" + num.name().toLowerCase(Locale.US); + } + + @Override + public Item getItemDropped(int meta, Random rand, int fortune) { + if(meta == EnumBasaltOreType.SULFUR.ordinal()) return ModItems.sulfur; + if(meta == EnumBasaltOreType.FLUORITE.ordinal()) return ModItems.fluorite; + if(meta == EnumBasaltOreType.ASBESTOS.ordinal()) return ModItems.ingot_asbestos; + if(meta == EnumBasaltOreType.GEM.ordinal()) return ModItems.gem_volcanic; + if(meta == EnumBasaltOreType.MOLYSITE.ordinal()) return ModItems.powder_molysite; + return super.getItemDropped(meta, rand, fortune); + } + + @Override + public int damageDropped(int meta) { + return 0; + } + + @Override + public void onEntityWalking(World world, int x, int y, int z, Entity entity) { + int meta = world.getBlockMetadata(x, y, z); + if(meta == EnumBasaltOreType.ASBESTOS.ordinal() && world.getBlock(x, y + 1, z) == Blocks.air) { + if(world.rand.nextInt(10) == 0) world.setBlock(x, y + 1, z, ModBlocks.gas_asbestos); + for(int i = 0; i < 5; i++) world.spawnParticle("townaura", x + world.rand.nextFloat(), y + 1.1, z + world.rand.nextFloat(), 0.0D, 0.0D, 0.0D); + } + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + int meta = world.getBlockMetadata(x, y, z); + if(meta == EnumBasaltOreType.ASBESTOS.ordinal()) for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) == Blocks.air) { + world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.gas_asbestos); + } + } + } + + @Override + public void dropBlockAsItemWithChance(World world, int x, int y, int z, int meta, float chance, int fortune) { + if(meta == EnumBasaltOreType.ASBESTOS.ordinal()) world.setBlock(x, y, z, ModBlocks.gas_asbestos); + super.dropBlockAsItemWithChance(world, x, y, z, meta, chance, fortune); + } +} diff --git a/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java b/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java index a923c5343..262b2e60e 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java +++ b/src/main/java/com/hbm/blocks/generic/BlockSellafieldOre.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.IBlockMultiPass; import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; import com.hbm.render.block.RenderBlockMultipass; import cpw.mods.fml.relauncher.Side; @@ -69,6 +70,7 @@ public class BlockSellafieldOre extends BlockSellafieldSlaked implements IBlockM public Item getItemDropped(int meta, Random rand, int fortune) { if(this == ModBlocks.ore_sellafield_diamond) return Items.diamond; if(this == ModBlocks.ore_sellafield_emerald) return Items.emerald; + if(this == ModBlocks.ore_sellafield_radgem) return ModItems.gem_rad; return Item.getItemFromBlock(this); } @@ -97,6 +99,7 @@ public class BlockSellafieldOre extends BlockSellafieldSlaked implements IBlockM if(this == ModBlocks.ore_sellafield_diamond) j1 = MathHelper.getRandomIntegerInRange(rand, 3, 7); if(this == ModBlocks.ore_sellafield_emerald) j1 = MathHelper.getRandomIntegerInRange(rand, 3, 7); + if(this == ModBlocks.ore_sellafield_radgem) j1 = MathHelper.getRandomIntegerInRange(rand, 3, 7); return j1; } diff --git a/src/main/java/com/hbm/config/FalloutConfigJSON.java b/src/main/java/com/hbm/config/FalloutConfigJSON.java index 645a12413..b962781da 100644 --- a/src/main/java/com/hbm/config/FalloutConfigJSON.java +++ b/src/main/java/com/hbm/config/FalloutConfigJSON.java @@ -87,6 +87,7 @@ public class FalloutConfigJSON { entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_emerald, m, 1)) .max(i * 5).sol(true).mB(ModBlocks.ore_beryllium)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 99)) .max(i * 5).sol(true).mB(ModBlocks.ore_uranium)); entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_schrabidium, m, 1), new Triplet(ModBlocks.ore_sellafield_uranium_scorched, m, 99)) .max(i * 5).sol(true).mB(ModBlocks.ore_gneiss_uranium)); + entries.add(new FalloutEntry().prim(new Triplet(ModBlocks.ore_sellafield_radgem, m, 1)) .max(i * 5).sol(true).mB(Blocks.diamond_ore)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.rock)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.sand)); entries.add(new FalloutEntry() .prim(new Triplet(ModBlocks.sellafield_slaked, m, 1)).max(i * 5).sol(true).mMa(Material.ground)); diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index d820dd9dc..885ec1a96 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -379,7 +379,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.tnt, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_tnt, 'S', ModItems.safety_fuse }); CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.semtex, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_semtex, 'S', ModItems.safety_fuse }); CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.c4, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_c4, 'S', ModItems.safety_fuse }); - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.fissure_bomb, 1), new Object[] { "SUS", "RPR", "SUS", 'S', ModBlocks.semtex, 'U', U238.block(), 'R', OreDictManager.getReflector(), 'P', PU239.billet() }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.fissure_bomb, 1), new Object[] { "SUS", "RPR", "SUS", 'S', ModBlocks.semtex, 'U', U238.block(), 'R', TA.ingot(), 'P', PU239.billet() }); //IF Grenades diff --git a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java index 40bae46eb..458419d3d 100644 --- a/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java +++ b/src/main/java/com/hbm/entity/effect/EntityFalloutRain.java @@ -164,10 +164,15 @@ public class EntityFalloutRain extends Entity { if(b.getMaterial() == Material.air) continue; if(b == Blocks.bedrock) return; + if(b == ModBlocks.volcano_core) { + worldObj.setBlock(x, y, z, ModBlocks.volcano_rad_core, worldObj.getBlockMetadata(x, y, z), 3); + continue; + } + Block ab = worldObj.getBlock(x, y + 1, z); int meta = worldObj.getBlockMetadata(x, y, z); - if(b != ModBlocks.fallout && (ab == Blocks.air || (ab.isReplaceable(worldObj, x, y + 1, z) && !ab.getMaterial().isLiquid()))) { + if(depth == 0 && b != ModBlocks.fallout && (ab == Blocks.air || (ab.isReplaceable(worldObj, x, y + 1, z) && !ab.getMaterial().isLiquid()))) { double d = dist / 100; diff --git a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java index 8959e0685..628416174 100644 --- a/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java +++ b/src/main/java/com/hbm/entity/effect/EntityNukeTorex.java @@ -2,6 +2,7 @@ package com.hbm.entity.effect; import java.util.ArrayList; +import com.hbm.util.BobMathUtil; import com.hbm.util.TrackerUtil; import cpw.mods.fml.relauncher.Side; @@ -53,7 +54,7 @@ public class EntityNukeTorex extends Entity { @Override public void onUpdate() { - double s = this.getScale(); + double s = 1.5; //this.getScale(); double cs = 1.5; int maxAge = this.getMaxAge(); @@ -84,61 +85,61 @@ public class EntityNukeTorex extends Entity { double x = posX + rand.nextGaussian() * range; double z = posZ + rand.nextGaussian() * range; Cloudlet cloud = new Cloudlet(x, lastSpawnY, z, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime); - cloud.setScale(1F + this.ticksExisted * 0.005F * (float) s, 5F * (float) cs); + cloud.setScale(1F + this.ticksExisted * 0.005F * (float) cs, 5F * (float) cs); cloudlets.add(cloud); } // spawn shock clouds - if(ticksExisted < 100) { + if(ticksExisted < 150) { int cloudCount = ticksExisted * 5; int shockLife = Math.max(300 - ticksExisted * 20, 50); for(int i = 0; i < cloudCount; i++) { - Vec3 vec = Vec3.createVectorHelper((ticksExisted * 2 + rand.nextDouble()) * 2, 0, 0); + Vec3 vec = Vec3.createVectorHelper((ticksExisted * 1.5 + rand.nextDouble()) * 1.5, 0, 0); float rot = (float) (Math.PI * 2 * rand.nextDouble()); vec.rotateAroundY(rot); - this.cloudlets.add(new Cloudlet(vec.xCoord + posX, worldObj.getHeightValue((int) (vec.xCoord + posX) + 1, (int) (vec.zCoord + posZ)), vec.zCoord + posZ, rot, 0, shockLife) - .setScale(5F, 2F) - .setMotion(0)); + this.cloudlets.add(new Cloudlet(vec.xCoord + posX, worldObj.getHeightValue((int) (vec.xCoord + posX) + 1, (int) (vec.zCoord + posZ)), vec.zCoord + posZ, rot, 0, shockLife, TorexType.SHOCK) + .setScale(7F, 2F) + .setMotion(ticksExisted > 15 ? 0.75 : 0)); } } // spawn ring clouds - if(ticksExisted < 200) { + if(ticksExisted < 130 * s) { lifetime *= s; for(int i = 0; i < 2; i++) { Cloudlet cloud = new Cloudlet(posX, posY + coreHeight, posZ, (float)(rand.nextDouble() * 2D * Math.PI), 0, lifetime, TorexType.RING); - cloud.setScale(1F + this.ticksExisted * 0.0025F * (float) (cs * s), 3F * (float) (cs * s)); + cloud.setScale(1F + this.ticksExisted * 0.0025F * (float) (cs * cs), 3F * (float) (cs * cs)); cloudlets.add(cloud); } } // spawn condensation clouds - if(ticksExisted > 200 && ticksExisted < 600) { + if(ticksExisted > 130 * s && ticksExisted < 600 * s) { for(int i = 0; i < 20; i++) { for(int j = 0; j < 4; j++) { float angle = (float) (Math.PI * 2 * rand.nextDouble()); - Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * 3, 0, 0); + Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * (3 + rand.nextDouble()), 0, 0); vec.rotateAroundZ((float) (Math.PI / 45 * j)); vec.rotateAroundY(angle); Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + coreHeight - 5 + j * s, posZ + vec.zCoord, angle, 0, (int) ((20 + ticksExisted / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); - cloud.setScale(0.125F * (float) (cs * s), 3F * (float) (cs * s)); + cloud.setScale(0.125F * (float) (cs), 3F * (float) (cs)); cloudlets.add(cloud); } } } - if(ticksExisted > 300 && ticksExisted < 600) { + if(ticksExisted > 200 * s && ticksExisted < 600 * s) { for(int i = 0; i < 20; i++) { for(int j = 0; j < 4; j++) { float angle = (float) (Math.PI * 2 * rand.nextDouble()); - Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * 2, 0, 0); + Vec3 vec = Vec3.createVectorHelper(torusWidth + rollerSize * (3 + rand.nextDouble() * 0.5), 0, 0); vec.rotateAroundZ((float) (Math.PI / 45 * j)); vec.rotateAroundY(angle); - Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + coreHeight + 25 + j * s, posZ + vec.zCoord, angle, 0, (int) ((20 + ticksExisted / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); - cloud.setScale(0.125F * (float) (cs * s), 3F * (float) (cs * s)); + Cloudlet cloud = new Cloudlet(posX + vec.xCoord, posY + coreHeight + 25 + j * cs, posZ + vec.zCoord, angle, 0, (int) ((20 + ticksExisted / 10) * (1 + rand.nextDouble() * 0.1)), TorexType.CONDENSATION); + cloud.setScale(0.125F * (float) (cs), 3F * (float) (cs)); cloudlets.add(cloud); } } @@ -147,12 +148,12 @@ public class EntityNukeTorex extends Entity { for(Cloudlet cloud : cloudlets) { cloud.update(); } - coreHeight += 0.15/* * s*/; - torusWidth += 0.05/* * s*/; + coreHeight += 0.15 / s; + torusWidth += 0.05 / s; rollerSize = torusWidth * 0.35; convectionHeight = coreHeight + rollerSize; - int maxHeat = (int) (50 * s); + int maxHeat = (int) (50 * cs); heat = maxHeat - Math.pow((maxHeat * this.ticksExisted) / maxAge, 1); cloudlets.removeIf(x -> x.isDead); @@ -298,6 +299,14 @@ public class EntityNukeTorex extends Entity { this.motionX = convection.xCoord * factor + lift.xCoord * (1D - factor); this.motionY = convection.yCoord * factor + lift.yCoord * (1D - factor); this.motionZ = convection.zCoord * factor + lift.zCoord * (1D - factor); + } else if(this.type == TorexType.SHOCK) { + + double factor = MathHelper.clamp_double((this.posY - EntityNukeTorex.this.posY) / EntityNukeTorex.this.coreHeight, 0, 1); + Vec3 motion = Vec3.createVectorHelper(1, 0, 0); + motion.rotateAroundY(this.angle); + this.motionX = motion.xCoord * factor; + this.motionY = motion.yCoord * factor; + this.motionZ = motion.zCoord * factor; } else if(this.type == TorexType.RING) { Vec3 motion = getRingMotion(simPosX, simPosZ); this.motionX = motion.xCoord; @@ -321,30 +330,14 @@ public class EntityNukeTorex extends Entity { private Vec3 getCondensationMotion() { Vec3 delta = Vec3.createVectorHelper(posX - EntityNukeTorex.this.posX, 0, posZ - EntityNukeTorex.this.posZ); - double speed = 0.00002 * EntityNukeTorex.this.getScale() * EntityNukeTorex.this.ticksExisted; + double speed = 0.00002 * EntityNukeTorex.this.ticksExisted; delta.xCoord *= speed; - //delta.yCoord *= speed * 0.75 * EntityNukeTorex.this.getScale(); delta.zCoord *= speed; return delta; } private Vec3 getRingMotion(double simPosX, double simPosZ) { - /*Vec3 targetPos = Vec3.createVectorHelper( - (EntityNukeTorex.this.posX + torusWidth * 1), - (EntityNukeTorex.this.posY + coreHeight * 0.5), - EntityNukeTorex.this.posZ); - - Vec3 delta = Vec3.createVectorHelper(targetPos.xCoord - simPosX, targetPos.yCoord - this.posY, targetPos.zCoord - simPosZ); - - double speed = 0.125D; - delta.xCoord *= speed; - delta.yCoord *= speed; - delta.zCoord *= speed; - - delta.rotateAroundY(this.angle); - return delta;*/ - if(simPosX > EntityNukeTorex.this.posX + torusWidth * 2) return Vec3.createVectorHelper(0, 0, 0); @@ -392,9 +385,6 @@ public class EntityNukeTorex extends Entity { /* simulated on a 2D-plane along the X/Y axis */ private Vec3 getConvectionMotion(double simPosX, double simPosZ) { - if(simPosX > EntityNukeTorex.this.posX + torusWidth * 2) - return Vec3.createVectorHelper(0, 0, 0); - /* the position of the torus' outer ring center */ Vec3 torusPos = Vec3.createVectorHelper( (EntityNukeTorex.this.posX + torusWidth), @@ -480,10 +470,19 @@ public class EntityNukeTorex extends Entity { } public Vec3 getInterpPos(float interp) { - return Vec3.createVectorHelper( + float scale = (float) EntityNukeTorex.this.getScale(); + Vec3 base = Vec3.createVectorHelper( prevPosX + (posX - prevPosX) * interp, prevPosY + (posY - prevPosY) * interp, prevPosZ + (posZ - prevPosZ) * interp); + + if(this.type != TorexType.SHOCK) { //no rescale for the shockwave as this messes with the positions + base.xCoord = ((base.xCoord) - EntityNukeTorex.this.posX) * scale + EntityNukeTorex.this.posX; + base.yCoord = ((base.yCoord) - EntityNukeTorex.this.posY) * scale + EntityNukeTorex.this.posY; + base.zCoord = ((base.zCoord) - EntityNukeTorex.this.posZ) * scale + EntityNukeTorex.this.posZ; + } + + return base; } public Vec3 getInterpColor(float interp) { @@ -514,7 +513,9 @@ public class EntityNukeTorex extends Entity { private float growingScale = 5F; public float getScale() { - return startingScale + ((float)age / (float)cloudletLife) * growingScale; + float base = startingScale + ((float)age / (float)cloudletLife) * growingScale; + if(this.type != TorexType.SHOCK) base *= (float) EntityNukeTorex.this.getScale(); + return base; } public Cloudlet setScale(float start, float grow) { @@ -533,6 +534,7 @@ public class EntityNukeTorex extends Entity { public static enum TorexType { STANDARD, + SHOCK, RING, CONDENSATION } @@ -548,14 +550,14 @@ public class EntityNukeTorex extends Entity { } public static void statFac(World world, double x, double y, double z, float scale) { - EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float(scale * 0.01F, 0.5F, 5F)); + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)); torex.setPosition(x, y, z); world.spawnEntityInWorld(torex); TrackerUtil.setTrackingRange(world, torex, 1000); } public static void statFacBale(World world, double x, double y, double z, float scale) { - EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float(scale * 0.01F, 0.5F, 5F)).setType(1); + EntityNukeTorex torex = new EntityNukeTorex(world).setScale(MathHelper.clamp_float((float) BobMathUtil.squirt(scale * 0.01) * 1.5F, 0.5F, 5F)).setType(1); torex.setPosition(x, y, z); world.spawnEntityInWorld(torex); TrackerUtil.setTrackingRange(world, torex, 1000); diff --git a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java index c7cc1a674..a847e7e96 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java +++ b/src/main/java/com/hbm/entity/projectile/EntityShrapnel.java @@ -52,13 +52,14 @@ public class EntityShrapnel extends EntityThrowable { if(!worldObj.isRemote) this.setDead(); - if(this.dataWatcher.getWatchableObjectByte(16) == 2) { + int b = this.dataWatcher.getWatchableObjectByte(16); + if(b == 2 || b == 4) { if(!worldObj.isRemote) { if(motionY < -0.2D) { if(worldObj.getBlock(mop.blockX, mop.blockY + 1, mop.blockZ).isReplaceable(worldObj, mop.blockX, mop.blockY + 1, mop.blockZ)) - worldObj.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, ModBlocks.volcanic_lava_block); + worldObj.setBlock(mop.blockX, mop.blockY + 1, mop.blockZ, b == 2 ? ModBlocks.volcanic_lava_block : ModBlocks.rad_lava_block); for(int x = mop.blockX - 1; x <= mop.blockX + 1; x++) { for(int y = mop.blockY; y <= mop.blockY + 2; y++) { @@ -73,7 +74,7 @@ public class EntityShrapnel extends EntityThrowable { if(motionY > 0) { ExplosionNT explosion = new ExplosionNT(worldObj, null, mop.blockX + 0.5, mop.blockY + 0.5, mop.blockZ + 0.5, 7); explosion.addAttrib(ExAttrib.NODROP); - explosion.addAttrib(ExAttrib.LAVA_V); + explosion.addAttrib(b == 2 ? ExAttrib.LAVA_V : ExAttrib.LAVA_R); explosion.addAttrib(ExAttrib.NOSOUND); explosion.addAttrib(ExAttrib.ALLMOD); explosion.addAttrib(ExAttrib.NOHURT); @@ -108,6 +109,10 @@ public class EntityShrapnel extends EntityThrowable { this.dataWatcher.updateObject(16, (byte) (b ? 3 : 0)); } + public void setRadVolcano(boolean b) { + this.dataWatcher.updateObject(16, (byte) (b ? 4 : 0)); + } + @Override public boolean writeToNBTOptional(NBTTagCompound nbt) { return false; diff --git a/src/main/java/com/hbm/explosion/ExplosionChaos.java b/src/main/java/com/hbm/explosion/ExplosionChaos.java index 820f3df46..ea23952ef 100644 --- a/src/main/java/com/hbm/explosion/ExplosionChaos.java +++ b/src/main/java/com/hbm/explosion/ExplosionChaos.java @@ -538,7 +538,7 @@ public class ExplosionChaos { if(entity.getDistance(x, y, z) > range) continue; - if(ArmorRegistry.hasAnyProtection(entity, 3, HazardClass.GAS_CHLORINE, HazardClass.GAS_CORROSIVE)) { + if(ArmorRegistry.hasAnyProtection(entity, 3, HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING)) { ArmorUtil.damageGasMaskFilter(entity, 1); } else { entity.addPotionEffect(new PotionEffect(Potion.blindness.getId(), 5 * 20, 0)); diff --git a/src/main/java/com/hbm/explosion/ExplosionNT.java b/src/main/java/com/hbm/explosion/ExplosionNT.java index 1f56cc251..5de3072b3 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNT.java +++ b/src/main/java/com/hbm/explosion/ExplosionNT.java @@ -273,6 +273,8 @@ public class ExplosionNT extends Explosion { } } else if(has(ExAttrib.LAVA_V)) { this.worldObj.setBlock(i, j, k, ModBlocks.volcanic_lava_block); + } else if(has(ExAttrib.LAVA_R)) { + this.worldObj.setBlock(i, j, k, ModBlocks.rad_lava_block); } } } @@ -327,7 +329,8 @@ public class ExplosionNT extends Explosion { DIGAMMA, DIGAMMA_CIRCUIT, LAVA, //again the same thing but lava - LAVA_V, //again the same thing but volcaniclava + LAVA_V, //again the same thing but volcanic lava + LAVA_R, //again the same thing but radioactive lava ERRODE, //will turn select blocks into gravel or sand ALLMOD, //block placer attributes like fire are applied for all destroyed blocks ALLDROP, //miner TNT! diff --git a/src/main/java/com/hbm/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index b9ec033e7..61e96b2b2 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -528,7 +528,7 @@ public class EntityEffectHandler { if(!RadiationConfig.enablePollution) return; - if(RadiationConfig.enablePoison && !ArmorRegistry.hasProtection(entity, 3, HazardClass.GAS_CORROSIVE) && entity.ticksExisted % 60 == 0) { + if(RadiationConfig.enablePoison && !ArmorRegistry.hasProtection(entity, 3, HazardClass.GAS_BLISTERING) && entity.ticksExisted % 60 == 0) { float poison = PollutionHandler.getPollution(entity.worldObj, (int) Math.floor(entity.posX), (int) Math.floor(entity.posY + entity.getEyeHeight()), (int) Math.floor(entity.posZ), PollutionType.POISON); diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index 9e1e8bc13..5dac19082 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -376,7 +376,7 @@ public class BulletConfigFactory { EntityLivingBase entity = (EntityLivingBase) e; - if(ArmorRegistry.hasAllProtection(entity, 3, HazardClass.GAS_CHLORINE)) + if(ArmorRegistry.hasAllProtection(entity, 3, HazardClass.GAS_LUNG)) continue; PotionEffect eff0 = new PotionEffect(Potion.poison.id, duration, 2, true); diff --git a/src/main/java/com/hbm/hazard/HazardRegistry.java b/src/main/java/com/hbm/hazard/HazardRegistry.java index 4b0476d24..4a3516112 100644 --- a/src/main/java/com/hbm/hazard/HazardRegistry.java +++ b/src/main/java/com/hbm/hazard/HazardRegistry.java @@ -223,6 +223,9 @@ public class HazardRegistry { HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 3), makeData(RADIATION, 4F)); HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 4), makeData(RADIATION, 5F)); HazardSystem.register(new ItemStack(ModBlocks.sellafield, 1, 5), makeData(RADIATION, 10F)); + + HazardSystem.register(new ItemStack(ModBlocks.ore_sellafield_radgem), makeData(RADIATION, 25F)); + HazardSystem.register(new ItemStack(ModItems.gem_rad), makeData(RADIATION, 25F)); registerOtherFuel(rod_zirnox, EnumZirnoxType.NATURAL_URANIUM_FUEL.ordinal(), u * rod_dual, wst * rod_dual * 11.5F, false); registerOtherFuel(rod_zirnox, EnumZirnoxType.URANIUM_FUEL.ordinal(), uf * rod_dual, wst * rod_dual * 10F, false); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index 4995290e8..930675550 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -12,6 +12,7 @@ import static com.hbm.inventory.OreDictManager.DictFrame.*; import static com.hbm.inventory.OreNames.*; import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.BlockOreBasalt.EnumBasaltOreType; import com.hbm.blocks.BlockEnums.EnumStoneType; import com.hbm.config.GeneralConfig; import com.hbm.hazard.HazardData; @@ -216,6 +217,7 @@ public class OreDictManager { public static final DictFrame CINNABAR = new DictFrame("Cinnabar"); public static final DictFrame BORAX = new DictFrame("Borax"); public static final DictFrame CHLOROCALCITE = new DictFrame("Chlorocalcite"); + public static final DictFrame MOLYSITE = new DictFrame("Molysite"); public static final DictFrame SODALITE = new DictFrame("Sodalite"); public static final DictFrame VOLCANIC = new DictFrame("Volcanic"); public static final DictFrame HEMATITE = new DictFrame("Hematite"); @@ -390,15 +392,15 @@ public class OreDictManager { EUPH .nugget(nugget_euphemium) .ingot(ingot_euphemium) .dust(powder_euphemium) .block(block_euphemium); DNT .nugget(nugget_dineutronium) .ingot(ingot_dineutronium) .dust(powder_dineutronium) .block(block_dineutronium); FIBER .ingot(ingot_fiberglass) .block(block_fiberglass); - ASBESTOS .asbestos(1F) .ingot(ingot_asbestos) .dust(powder_asbestos) .block(block_asbestos) .ore(ore_asbestos, ore_gneiss_asbestos, basalt_asbestos, DictFrame.fromOne(stone_resource, EnumStoneType.ASBESTOS)); + ASBESTOS .asbestos(1F) .ingot(ingot_asbestos) .dust(powder_asbestos) .block(block_asbestos) .ore(ore_asbestos, ore_gneiss_asbestos, basalt_asbestos, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.ASBESTOS), DictFrame.fromOne(stone_resource, EnumStoneType.ASBESTOS)); OSMIRIDIUM .nugget(nugget_osmiridium) .ingot(ingot_osmiridium); /* * DUST AND GEM ORES */ - S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, basalt_sulfur, ore_meteor_sulfur, DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur); + S .dust(sulfur) .block(block_sulfur) .ore(ore_sulfur, ore_nether_sulfur, basalt_sulfur, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.SULFUR), ore_meteor_sulfur, DictFrame.fromOne(stone_resource, EnumStoneType.SULFUR)) .oreNether(ore_nether_sulfur); KNO .dust(niter) .block(block_niter) .ore(ore_niter); - F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, basalt_fluorite); + F .dust(fluorite) .block(block_fluorite) .ore(ore_fluorite, basalt_fluorite, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.FLUORITE)); LIGNITE .gem(lignite) .dust(powder_lignite) .ore(ore_lignite); COALCOKE .gem(fromOne(coke, EnumCokeType.COAL)) .block(fromOne(block_coke, EnumCokeType.COAL)); PETCOKE .gem(fromOne(coke, EnumCokeType.PETROLEUM)) .block(fromOne(block_coke, EnumCokeType.PETROLEUM)); @@ -406,8 +408,9 @@ public class OreDictManager { CINNABAR .crystal(cinnebar) .gem(cinnebar) .ore(ore_cinnebar, ore_depth_cinnebar); BORAX .dust(powder_borax) .ore(ore_depth_borax); CHLOROCALCITE .dust(powder_chlorocalcite); + MOLYSITE .dust(powder_molysite) .ore(DictFrame.fromOne(ore_basalt, EnumBasaltOreType.MOLYSITE)); SODALITE .gem(gem_sodalite); - VOLCANIC .gem(gem_volcanic) .ore(basalt_gem); + VOLCANIC .gem(gem_volcanic) .ore(basalt_gem, DictFrame.fromOne(ore_basalt, EnumBasaltOreType.GEM)); HEMATITE .ore(fromOne(stone_resource, EnumStoneType.HEMATITE)); MALACHITE .ore(fromOne(stone_resource, EnumStoneType.MALACHITE)); SLAG .block(block_slag); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 2669476ed..527133b66 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -496,12 +496,12 @@ public class Fluids { metaOrder.add(PHEROMONE_M); for(FluidType custom : customFluids) metaOrder.add(custom); - CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_CHLORINE, false))); - PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_CHLORINE, false))); - MUSTARDGAS.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 10, HazardClass.GAS_CORROSIVE, false)) - .addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, true).add(new PotionEffect(Potion.wither.id, 100, 1), new PotionEffect(Potion.confusion.id, 100, 0)))); + CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_LUNG, false))); + PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_LUNG, false))); + MUSTARDGAS.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 10, HazardClass.GAS_BLISTERING, false)) + .addEntry(new ToxinEffects(HazardClass.GAS_BLISTERING, true).add(new PotionEffect(Potion.wither.id, 100, 1), new PotionEffect(Potion.confusion.id, 100, 0)))); ESTRADIOL.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.PARTICLE_FINE, false).add(new PotionEffect(HbmPotion.death.id, 60 * 60 * 20, 0)))); - REDMUD.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.GAS_CORROSIVE, false).add(new PotionEffect(Potion.wither.id, 30 * 20, 2)))); + REDMUD.addTraits(new FT_Toxin().addEntry(new ToxinEffects(HazardClass.GAS_BLISTERING, false).add(new PotionEffect(Potion.wither.id, 30 * 20, 2)))); double eff_steam_boil = 1.0D; double eff_steam_heatex = 0.25D; diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java index 8228afc44..9113bdfff 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderFillableItem.java @@ -16,6 +16,8 @@ public class FluidLoaderFillableItem extends FluidLoadingHandler { public boolean fill(ItemStack stack, FluidTank tank) { + if(tank.pressure != 0) return false; + if(stack == null) return false; diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java index 8ceac7946..adc4c49d9 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderInfinite.java @@ -18,6 +18,7 @@ public class FluidLoaderInfinite extends FluidLoadingHandler { ItemInfiniteFluid item = (ItemInfiniteFluid) slots[in].getItem(); + if(!item.allowPressure(tank.pressure)) return false; if(item.getType() != null && tank.type != item.getType()) return false; if(item.getChance() <= 1 || rand.nextInt(item.getChance()) == 0) { diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java index d4c784396..c8fcecbb4 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidLoaderStandard.java @@ -10,6 +10,8 @@ public class FluidLoaderStandard extends FluidLoadingHandler { @Override public boolean fillItem(ItemStack[] slots, int in, int out, FluidTank tank) { + if(tank.pressure != 0) return false; + if(slots[in] == null) return true; diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 508f94c01..5f093bc66 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -126,8 +126,6 @@ public class FluidTank { if(slots[in] == null) return false; - if(this.pressure != 0) return false; //for now, canisters can only be loaded from high-pressure tanks, not unloaded - int prev = this.getFill(); for(FluidLoadingHandler handler : loadingHandlers) { diff --git a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java index 2b70c1359..3c5b8bdd2 100644 --- a/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/CombinationRecipes.java @@ -45,6 +45,7 @@ public class CombinationRecipes extends SerializableRecipe { recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100))); //recipes.put(CHLOROCALCITE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CHLORINE, 250))); + recipes.put(MOLYSITE.dust(), new Pair(new ItemStack(Items.iron_ingot), new FluidStack(Fluids.CHLORINE, 250))); recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(SODALITE.gem(), new Pair(new ItemStack(ModItems.powder_sodium), new FluidStack(Fluids.CHLORINE, 100))); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index a640258bd..d2ad9d3b1 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -425,6 +425,7 @@ public class ModItems { public static Item gem_sodalite; public static Item gem_tantalium; public static Item gem_volcanic; + public static Item gem_rad; public static Item gem_alexandrite; public static Item powder_lead; @@ -523,6 +524,7 @@ public class ModItems { public static Item powder_impure_osmiridium; public static Item powder_borax; public static Item powder_chlorocalcite; + public static Item powder_molysite; public static Item powder_lanthanium; public static Item powder_actinium; @@ -1853,6 +1855,8 @@ public class ModItems { /*public static Item factory_core_titanium; public static Item factory_core_advanced;*/ + public static Item upgrade_muffler; + public static Item upgrade_template; public static Item upgrade_speed_1; public static Item upgrade_speed_2; @@ -2205,6 +2209,8 @@ public class ModItems { public static Item defuser_gold; public static Item ballistic_gauntlet; public static Item night_vision; + public static Item card_aos; + public static Item card_qos; public static Item hazmat_helmet; public static Item hazmat_plate; @@ -2859,6 +2865,7 @@ public class ModItems { gem_sodalite = new ItemCustomLore().setUnlocalizedName("gem_sodalite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_sodalite"); gem_tantalium = new ItemCustomLore().setUnlocalizedName("gem_tantalium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_tantalium"); gem_volcanic = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_volcanic").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_volcanic"); + gem_rad = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("gem_rad").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_rad"); gem_alexandrite = new ItemAlexandrite().setUnlocalizedName("gem_alexandrite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":gem_alexandrite"); powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lead"); @@ -2965,6 +2972,7 @@ public class ModItems { powder_impure_osmiridium = new Item().setUnlocalizedName("powder_impure_osmiridium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_impure_osmiridium"); powder_borax = new Item().setUnlocalizedName("powder_borax").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_borax"); powder_chlorocalcite = new Item().setUnlocalizedName("powder_chlorocalcite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_chlorocalcite"); + powder_molysite = new Item().setUnlocalizedName("powder_molysite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_molysite"); fragment_neodymium = new Item().setUnlocalizedName("fragment_neodymium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_neodymium"); fragment_cobalt = new Item().setUnlocalizedName("fragment_cobalt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":fragment_cobalt"); @@ -3448,6 +3456,8 @@ public class ModItems { defuser_gold = new ItemModDefuser().setUnlocalizedName("defuser_gold").setTextureName(RefStrings.MODID + ":defuser_gold"); ballistic_gauntlet = new ItemModTwoKick().setUnlocalizedName("ballistic_gauntlet").setTextureName(RefStrings.MODID + ":ballistic_gauntlet"); night_vision = new ItemModNightVision().setUnlocalizedName("night_vision").setTextureName(RefStrings.MODID + ":night_vision"); + card_aos = new ItemModCard().setUnlocalizedName("card_aos").setTextureName(RefStrings.MODID + ":card_aos"); + card_qos = new ItemModCard().setUnlocalizedName("card_qos").setTextureName(RefStrings.MODID + ":card_qos"); cap_nuka = new Item().setUnlocalizedName("cap_nuka").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_nuka"); cap_quantum = new Item().setUnlocalizedName("cap_quantum").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cap_quantum"); @@ -4480,6 +4490,8 @@ public class ModItems { fusion_shield_chlorophyte = new ItemFusionShield(60 * 60 * 60 * 15, 9000).setUnlocalizedName("fusion_shield_chlorophyte").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_chlorophyte"); fusion_shield_vaporwave = new ItemFusionShield(60 * 60 * 60 * 10, 1916169).setUnlocalizedName("fusion_shield_vaporwave").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":fusion_shield_vaporwave"); + upgrade_muffler = new ItemMuffler().setUnlocalizedName("upgrade_muffler").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":upgrade_muffler"); + upgrade_template = new ItemCustomLore().setUnlocalizedName("upgrade_template").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":upgrade_template"); upgrade_speed_1 = new ItemMachineUpgrade(UpgradeType.SPEED, 1).setUnlocalizedName("upgrade_speed_1").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_1"); upgrade_speed_2 = new ItemMachineUpgrade(UpgradeType.SPEED, 2).setUnlocalizedName("upgrade_speed_2").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":upgrade_speed_2"); @@ -5819,6 +5831,7 @@ public class ModItems { GameRegistry.registerItem(powder_impure_osmiridium, powder_impure_osmiridium.getUnlocalizedName()); GameRegistry.registerItem(powder_borax, powder_borax.getUnlocalizedName()); GameRegistry.registerItem(powder_chlorocalcite, powder_chlorocalcite.getUnlocalizedName()); + GameRegistry.registerItem(powder_molysite, powder_molysite.getUnlocalizedName()); GameRegistry.registerItem(powder_yellowcake, powder_yellowcake.getUnlocalizedName()); GameRegistry.registerItem(powder_beryllium, powder_beryllium.getUnlocalizedName()); GameRegistry.registerItem(powder_dura_steel, powder_dura_steel.getUnlocalizedName()); @@ -5944,6 +5957,7 @@ public class ModItems { GameRegistry.registerItem(gem_sodalite, gem_sodalite.getUnlocalizedName()); GameRegistry.registerItem(gem_tantalium, gem_tantalium.getUnlocalizedName()); GameRegistry.registerItem(gem_volcanic, gem_volcanic.getUnlocalizedName()); + GameRegistry.registerItem(gem_rad, gem_rad.getUnlocalizedName()); GameRegistry.registerItem(gem_alexandrite, gem_alexandrite.getUnlocalizedName()); //Fragments @@ -6507,6 +6521,7 @@ public class ModItems { GameRegistry.registerItem(scraps, scraps.getUnlocalizedName()); //Machine Upgrades + GameRegistry.registerItem(upgrade_muffler, upgrade_muffler.getUnlocalizedName()); GameRegistry.registerItem(upgrade_template, upgrade_template.getUnlocalizedName()); GameRegistry.registerItem(upgrade_speed_1, upgrade_speed_1.getUnlocalizedName()); GameRegistry.registerItem(upgrade_speed_2, upgrade_speed_2.getUnlocalizedName()); @@ -7720,6 +7735,8 @@ public class ModItems { GameRegistry.registerItem(defuser_gold, defuser_gold.getUnlocalizedName()); GameRegistry.registerItem(ballistic_gauntlet, ballistic_gauntlet.getUnlocalizedName()); GameRegistry.registerItem(night_vision, night_vision.getUnlocalizedName()); + GameRegistry.registerItem(card_aos, card_aos.getUnlocalizedName()); + GameRegistry.registerItem(card_qos, card_qos.getUnlocalizedName()); //Chaos GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorGasMask.java b/src/main/java/com/hbm/items/armor/ArmorGasMask.java index 5cb086925..1359848e8 100644 --- a/src/main/java/com/hbm/items/armor/ArmorGasMask.java +++ b/src/main/java/com/hbm/items/armor/ArmorGasMask.java @@ -148,9 +148,9 @@ public class ArmorGasMask extends ItemArmor implements IGasMask { public ArrayList getBlacklist(ItemStack stack, EntityLivingBase entity) { if(this == ModItems.gas_mask_mono) { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CHLORINE, HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT, HazardClass.BACTERIA})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING, HazardClass.BACTERIA})); } else { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_BLISTERING})); } } diff --git a/src/main/java/com/hbm/items/armor/ArmorHEV.java b/src/main/java/com/hbm/items/armor/ArmorHEV.java index b1fd292db..df2666d68 100644 --- a/src/main/java/com/hbm/items/armor/ArmorHEV.java +++ b/src/main/java/com/hbm/items/armor/ArmorHEV.java @@ -3,6 +3,7 @@ package com.hbm.items.armor; import org.lwjgl.opengl.GL11; import com.hbm.extprop.HbmLivingProps; +import com.hbm.items.ModItems; import com.hbm.render.model.ModelArmorHEV; import cpw.mods.fml.relauncher.Side; @@ -45,7 +46,7 @@ public class ArmorHEV extends ArmorFSBPowered { @Override public void handleOverlay(RenderGameOverlayEvent.Pre event, EntityPlayer player) { - if(this.hasFSBArmorIgnoreCharge(player)) { + if(this.hasFSBArmorIgnoreCharge(player) && player.inventory.armorInventory[2].getItem() == ModItems.hev_plate) { if(event.type == ElementType.ARMOR) { event.setCanceled(true); diff --git a/src/main/java/com/hbm/items/armor/ItemModCard.java b/src/main/java/com/hbm/items/armor/ItemModCard.java new file mode 100644 index 000000000..4249d0591 --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModCard.java @@ -0,0 +1,49 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.extprop.HbmPlayerProps; +import com.hbm.handler.ArmorModHandler; +import com.hbm.items.ModItems; + +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +public class ItemModCard extends ItemArmorMod { + + public ItemModCard() { + super(ArmorModHandler.helmet_only, true, false, false, false); + this.setCreativeTab(null); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + if(this == ModItems.card_aos) { + list.add(EnumChatFormatting.RED + "Top of the line!"); + list.add(EnumChatFormatting.RED + "Guns now have a 33% chance to not consume ammo."); + } + if(this == ModItems.card_qos) { + list.add(EnumChatFormatting.RED + "Power!"); + list.add(EnumChatFormatting.RED + "Adds a 33% chance to tank damage with no cap."); + } + list.add(""); + super.addInformation(itemstack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.YELLOW + I18n.format("item.night_vision.description.in_armor", stack.getDisplayName())); + } + + @Override + public void modDamage(LivingHurtEvent event, ItemStack armor) { + if(this == ModItems.card_qos && event.entityLiving.getRNG().nextInt(3) == 0 && event.entityLiving instanceof EntityPlayer) { + HbmPlayerProps.plink((EntityPlayer) event.entityLiving, "random.break", 0.5F, 1.0F + event.entityLiving.getRNG().nextFloat() * 0.5F); + event.ammount = 0; + event.setCanceled(true); + } + } +} diff --git a/src/main/java/com/hbm/items/armor/ItemModGasmask.java b/src/main/java/com/hbm/items/armor/ItemModGasmask.java index 7c8fd77f6..cacecfc27 100644 --- a/src/main/java/com/hbm/items/armor/ItemModGasmask.java +++ b/src/main/java/com/hbm/items/armor/ItemModGasmask.java @@ -99,9 +99,9 @@ public class ItemModGasmask extends ItemArmorMod implements IGasMask { public ArrayList getBlacklist(ItemStack stack, EntityLivingBase entity) { if(this == ModItems.attachment_mask_mono) { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CHLORINE, HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT, HazardClass.BACTERIA})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_LUNG, HazardClass.GAS_BLISTERING, HazardClass.BACTERIA})); } else { - return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_CORROSIVE, HazardClass.NERVE_AGENT})); + return new ArrayList(Arrays.asList(new HazardClass[] {HazardClass.GAS_BLISTERING})); } } diff --git a/src/main/java/com/hbm/items/armor/ItemModNightVision.java b/src/main/java/com/hbm/items/armor/ItemModNightVision.java index 6df89d2a6..96af954c3 100644 --- a/src/main/java/com/hbm/items/armor/ItemModNightVision.java +++ b/src/main/java/com/hbm/items/armor/ItemModNightVision.java @@ -12,30 +12,30 @@ import net.minecraft.util.EnumChatFormatting; import java.util.List; public class ItemModNightVision extends ItemArmorMod { - public ItemModNightVision() { - super(ArmorModHandler.helmet_only, true, false, false, false); - } + public ItemModNightVision() { + super(ArmorModHandler.helmet_only, true, false, false, false); + } - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { - list.add(EnumChatFormatting.AQUA + I18n.format("item.night_vision.description.item")); - list.add(""); - super.addInformation(itemstack, player, list, bool); - } + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + list.add(EnumChatFormatting.AQUA + I18n.format("item.night_vision.description.item")); + list.add(""); + super.addInformation(itemstack, player, list, bool); + } - @Override - public void addDesc(List list, ItemStack stack, ItemStack armor) { - list.add(EnumChatFormatting.YELLOW + I18n.format("item.night_vision.description.in_armor", stack.getDisplayName())); - } + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.YELLOW + I18n.format("item.night_vision.description.in_armor", stack.getDisplayName())); + } - @Override - public void modUpdate(EntityLivingBase entity, ItemStack armor) { - if(!entity.worldObj.isRemote && entity instanceof EntityPlayer && armor.getItem() instanceof ArmorFSBPowered && ArmorFSBPowered.hasFSBArmor((EntityPlayer)entity)) { - entity.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); + @Override + public void modUpdate(EntityLivingBase entity, ItemStack armor) { + if(!entity.worldObj.isRemote && entity instanceof EntityPlayer && armor.getItem() instanceof ArmorFSBPowered && ArmorFSBPowered.hasFSBArmor((EntityPlayer) entity)) { + entity.addPotionEffect(new PotionEffect(Potion.nightVision.id, 15 * 20, 0)); - if(entity.getRNG().nextInt(50) == 0) { - armor.damageItem(1, entity); - } - } - } + if(entity.getRNG().nextInt(50) == 0) { + armor.damageItem(1, entity); + } + } + } } diff --git a/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java b/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java index 011b596b6..2223059ee 100644 --- a/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java +++ b/src/main/java/com/hbm/items/machine/ItemInfiniteFluid.java @@ -1,6 +1,7 @@ package com.hbm.items.machine; import com.hbm.inventory.fluid.FluidType; +import com.hbm.items.ModItems; import net.minecraft.item.Item; @@ -23,4 +24,5 @@ public class ItemInfiniteFluid extends Item { public FluidType getType() { return this.type; } public int getAmount() { return this.amount; } public int getChance() { return this.chance; } + public boolean allowPressure(int pressure) { return this == ModItems.fluid_barrel_infinite || pressure == 0; } } diff --git a/src/main/java/com/hbm/items/machine/ItemMuffler.java b/src/main/java/com/hbm/items/machine/ItemMuffler.java new file mode 100644 index 000000000..915fd65d7 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemMuffler.java @@ -0,0 +1,31 @@ +package com.hbm.items.machine; + +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.CompatExternal; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class ItemMuffler extends Item { + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) { + TileEntity te = CompatExternal.getCoreFromPos(world, x, y, z); + + if(te != null && te instanceof TileEntityMachineBase) { + TileEntityMachineBase tile = (TileEntityMachineBase) te; + if(!tile.muffled) { + tile.muffled = true; + world.playSoundAtEntity(player, "hbm:item.upgradePlug", 1.0F, 1.0F); + stack.stackSize--; + tile.markDirty(); + return true; + } + } + + return false; + } +} diff --git a/src/main/java/com/hbm/items/tool/ItemLock.java b/src/main/java/com/hbm/items/tool/ItemLock.java index 0672f90a7..083d6b13a 100644 --- a/src/main/java/com/hbm/items/tool/ItemLock.java +++ b/src/main/java/com/hbm/items/tool/ItemLock.java @@ -1,7 +1,7 @@ package com.hbm.items.tool; -import com.hbm.tileentity.machine.TileEntityDummy; import com.hbm.tileentity.machine.TileEntityLockableBase; +import com.hbm.util.CompatExternal; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -17,51 +17,29 @@ public class ItemLock extends ItemKeyPin { } @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) - { + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int i, float f0, float f1, float f2) { + if(this.getPins(stack) != 0) { - TileEntity te = world.getTileEntity(x, y, z); - + TileEntity te = CompatExternal.getCoreFromPos(world, x, y, z); + if(te != null && te instanceof TileEntityLockableBase) { - TileEntityLockableBase tile = (TileEntityLockableBase)te; - + TileEntityLockableBase tile = (TileEntityLockableBase) te; + if(tile.isLocked()) return false; - + tile.setPins(this.getPins(stack)); tile.lock(); tile.setMod(lockMod); - world.playSoundAtEntity(player, "hbm:block.lockHang", 1.0F, 1.0F); + world.playSoundAtEntity(player, "hbm:block.lockHang", 1.0F, 1.0F); stack.stackSize--; - + return true; } - - if(te != null && te instanceof TileEntityDummy) { - - TileEntityDummy dummy = (TileEntityDummy)te; - TileEntity target = world.getTileEntity(dummy.targetX, dummy.targetY, dummy.targetZ); - - if(target != null && target instanceof TileEntityLockableBase) { - TileEntityLockableBase tile = (TileEntityLockableBase)target; - - if(tile.isLocked()) - return false; - - tile.setPins(this.getPins(stack)); - tile.lock(); - tile.setMod(lockMod); - - world.playSoundAtEntity(player, "hbm:block.lockHang", 1.0F, 1.0F); - stack.stackSize--; - - return true; - } - } } - + return false; - } + } } diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index c8dcbbe19..6f98fa17c 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -4,11 +4,13 @@ import java.util.List; import com.hbm.entity.effect.EntityNukeTorex; import com.hbm.lib.Library; +import com.hbm.util.BobMathUtil; import com.hbm.util.TrackerUtil; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -78,11 +80,17 @@ public class ItemWandD extends Item { tom.destructionRange = 600; world.spawnEntityInWorld(tom);*/ - EntityNukeTorex torex = new EntityNukeTorex(world); - torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); - torex.setScale(1.5F); - world.spawnEntityInWorld(torex); - TrackerUtil.setTrackingRange(world, torex, 1000); + List del = world.getEntitiesWithinAABB(EntityNukeTorex.class, AxisAlignedBB.getBoundingBox(pos.blockX, pos.blockY + 1, pos.blockZ, pos.blockX, pos.blockY + 1, pos.blockZ).expand(50, 50, 50)); + + if(!del.isEmpty()) { + for(EntityNukeTorex torex : del) torex.setDead(); + } else { + EntityNukeTorex torex = new EntityNukeTorex(world); + torex.setPositionAndRotation(pos.blockX, pos.blockY + 1, pos.blockZ, 0, 0); + torex.setScale((float) BobMathUtil.squirt( 1.5 ) * 1.5F); + world.spawnEntityInWorld(torex); + TrackerUtil.setTrackingRange(world, torex, 1000); + } /*EntityTracker entitytracker = ((WorldServer) world).getEntityTracker(); IntHashMap map = ReflectionHelper.getPrivateValue(EntityTracker.class, entitytracker, "trackedEntityIDs", "field_72794_c"); diff --git a/src/main/java/com/hbm/items/weapon/ItemGunBase.java b/src/main/java/com/hbm/items/weapon/ItemGunBase.java index 58671762f..640c35e93 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGunBase.java +++ b/src/main/java/com/hbm/items/weapon/ItemGunBase.java @@ -6,6 +6,7 @@ import org.lwjgl.input.Mouse; import com.hbm.config.GeneralConfig; import com.hbm.entity.projectile.EntityBulletBaseNT; +import com.hbm.handler.ArmorModHandler; import com.hbm.handler.BulletConfigSyncingUtil; import com.hbm.handler.BulletConfiguration; import com.hbm.handler.CasingEjector; @@ -580,6 +581,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu if(hasInfinity(stack, config)) return; if(isTrenchMaster(player) && player.getRNG().nextInt(3) == 0) return; + if(hasAoS(player) && player.getRNG().nextInt(3) == 0) return; if(config.reloadType != GunConfiguration.RELOAD_NONE) { setMag(stack, getMag(stack) - 1); @@ -831,4 +833,13 @@ public class ItemGunBase extends Item implements IHoldableWeapon, IItemHUD, IEqu public static boolean isTrenchMaster(EntityPlayer player) { return player.inventory.armorInventory[2] != null && player.inventory.armorInventory[2].getItem() == ModItems.trenchmaster_plate && ArmorFSB.hasFSBArmor(player); } + + public static boolean hasAoS(EntityPlayer player) { + if(player.inventory.armorInventory[3] != null) { + ItemStack[] mods = ArmorModHandler.pryMods(player.inventory.armorInventory[3]); + ItemStack helmet = mods[ArmorModHandler.helmet_only]; + return helmet != null && helmet.getItem() == ModItems.card_aos; + } + return false; + } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index df5d5a653..49b97021c 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 (4845)"; + public static final String VERSION = "1.0.27 BETA (4851)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index b22fa676f..73d321015 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -329,7 +329,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.fan), new Object[] { "BPB", "PRP", "BPB", 'B', STEEL.bolt(), 'P', IRON.plate(), 'R', REDSTONE.dust() }); addRecipeAuto(new ItemStack(ModBlocks.piston_inserter), new Object[] { "ITI", "TPT", "ITI", 'P', DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC), 'I', IRON.plate(), 'T', STEEL.bolt() }); - addRecipeAuto(new ItemStack(ModBlocks.muffler, 1), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.wool }); + addRecipeAuto(new ItemStack(ModItems.upgrade_muffler, 16), new Object[] { "III", "IWI", "III", 'I', ANY_RUBBER.ingot(), 'W', Blocks.wool }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_titanium_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', TI.plate(), 'I', TI.ingot() }); addRecipeAuto(new ItemStack(Item.getItemFromBlock(ModBlocks.factory_advanced_hull), 8), new Object[] { "PIP", "I I", "PIP", 'P', ALLOY.plate(), 'I', ALLOY.ingot() }); @@ -988,7 +988,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.field_disturber), new Object[] { "ICI", "CAC", "ICI", 'I', STAR.ingot(), 'C', KEY_CIRCUIT_BISMUTH, 'A', ModItems.gem_alexandrite }); addShapelessAuto(new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_RESTORED.ordinal()), new Object[] { new ItemStack(ModItems.holotape_image, 1, EnumHoloImage.HOLO_DIGAMMA.ordinal()), KEY_TOOL_SCREWDRIVER, ModItems.ducttape, ModItems.armor_polish }); - addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModBlocks.muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ }); + addShapelessAuto(new ItemStack(ModItems.holotape_damaged), new Object[] { DictFrame.fromOne(ModItems.holotape_image, EnumHoloImage.HOLO_RESTORED), ModItems.upgrade_muffler, ModItems.crt_display, ModItems.gem_alexandrite /* placeholder for amplifier */ }); addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_PNEUMATIC, 4), new Object[] { " I ", "CPC", " I ", 'I', IRON.ingot(), 'C', CU.ingot(), 'P', IRON.plate() }); addRecipeAuto(DictFrame.fromOne(ModItems.part_generic, EnumPartType.PISTON_HYDRAULIC, 4), new Object[] { " I ", "CPC", " I ", 'I', STEEL.ingot(), 'C', TI.ingot(), 'P', Fluids.LUBRICANT.getDict(1000) }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 5809ea4ee..6ed8c16ab 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1210,6 +1210,7 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.reactor_conductor"); ignoreMappings.add("hbm:tile.reactor_computer"); ignoreMappings.add("hbm:tile.ff"); + ignoreMappings.add("hbm:tile.muffler"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java index 10094d1ad..809f403f4 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderTorex.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderTorex.java @@ -77,7 +77,10 @@ public class RenderTorex extends Render { for(Cloudlet cloudlet : cloudlets) { Vec3 vec = cloudlet.getInterpPos(interp); - tessellateCloudlet(tess, vec.xCoord - cloud.posX, vec.yCoord - cloud.posY, vec.zCoord - cloud.posZ, cloudlet, interp); + double x = vec.xCoord - cloud.posX; + double y = vec.yCoord - cloud.posY; + double z = vec.zCoord - cloud.posZ; + tessellateCloudlet(tess, x, y, z, cloudlet, interp); } tess.draw(); @@ -114,7 +117,7 @@ public class RenderTorex extends Render { float x = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); float y = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); float z = (float) (rand.nextGaussian() * 0.5F * cloud.rollerSize); - tessellateFlash(tess, x, y + cloud.coreHeight, z, (float) (10 * cloud.rollerSize), alpha, interp); + tessellateFlash(tess, x, y + cloud.coreHeight, z, (float) (25 * cloud.rollerSize), alpha, interp); } tess.draw(); diff --git a/src/main/java/com/hbm/sound/AudioDynamic.java b/src/main/java/com/hbm/sound/AudioDynamic.java index 3799b7d05..db13d09b3 100644 --- a/src/main/java/com/hbm/sound/AudioDynamic.java +++ b/src/main/java/com/hbm/sound/AudioDynamic.java @@ -62,7 +62,7 @@ public class AudioDynamic extends MovingSound { } public void setVolume(float volume) { - this.volume = volume; + this.maxVolume = volume; } public void setRange(float range) { diff --git a/src/main/java/com/hbm/tileentity/DoorDecl.java b/src/main/java/com/hbm/tileentity/DoorDecl.java index c0fcadc02..584f23d2c 100644 --- a/src/main/java/com/hbm/tileentity/DoorDecl.java +++ b/src/main/java/com/hbm/tileentity/DoorDecl.java @@ -870,6 +870,7 @@ public abstract class DoorDecl { @Override public String getCloseSoundStart() { return null; }; @Override public String getCloseSoundEnd() { return "hbm:door.wgh_big_stop"; }; @Override public float getSoundVolume() { return 2; } + @Override public boolean remoteControllable() { return true; } @Override @SideOnly(Side.CLIENT) @@ -1012,6 +1013,10 @@ public abstract class DoorDecl { return 0; } + public boolean remoteControllable() { + return false; + } + public float getDoorRangeOpenTime(int ticks, int idx) { return getNormTime(ticks); } diff --git a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java index 68e49db3f..526b9ce5c 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java +++ b/src/main/java/com/hbm/tileentity/TileEntityDoorGeneric.java @@ -175,6 +175,8 @@ public class TileEntityDoorGeneric extends TileEntityLockableBase implements IAn public boolean tryToggle(EntityPlayer player){ + if(this.isLocked() && player == null) return false; + if(state == 0 && redstonePower > 0){ //Redstone "power locks" doors, just like minecraft iron doors return false; diff --git a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java index f2ab912aa..cb529b2d9 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityLoadedBase.java @@ -3,11 +3,13 @@ package com.hbm.tileentity; import com.hbm.sound.AudioWrapper; import api.hbm.energy.ILoadedTile; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; public class TileEntityLoadedBase extends TileEntity implements ILoadedTile { public boolean isLoaded = true; + public boolean muffled = false; @Override public boolean isLoaded() { @@ -28,4 +30,20 @@ public class TileEntityLoadedBase extends TileEntity implements ILoadedTile { audio.startSound(); return audio; } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.muffled = nbt.getBoolean("muffled"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("muffled", muffled); + } + + public float getVolume(float baseVolume) { + return muffled ? baseVolume * 0.1F : baseVolume; + } } diff --git a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java index f826dd3e3..a76902ab9 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java +++ b/src/main/java/com/hbm/tileentity/TileEntityMachineBase.java @@ -1,6 +1,5 @@ package com.hbm.tileentity; -import com.hbm.blocks.ModBlocks; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.BufPacket; import com.hbm.packet.NBTPacket; @@ -157,17 +156,28 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme @Deprecated public void processGauge(int val, int id) { } @Deprecated public void networkPack(NBTTagCompound nbt, int range) { + nbt.setBoolean("muffled", muffled); if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new NBTPacket(nbt, xCoord, yCoord, zCoord), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } - @Deprecated public void networkUnpack(NBTTagCompound nbt) { } + + @Deprecated + public void networkUnpack(NBTTagCompound nbt) { + this.muffled = nbt.getBoolean("muffled"); + } /** Sends a sync packet that uses ByteBuf for efficient information-cramming */ public void networkPackNT(int range) { if(!worldObj.isRemote) PacketDispatcher.wrapper.sendToAllAround(new BufPacket(xCoord, yCoord, zCoord, this), new TargetPoint(this.worldObj.provider.dimensionId, xCoord, yCoord, zCoord, range)); } - @Override public void serialize(ByteBuf buf) { } - @Override public void deserialize(ByteBuf buf) { } + @Override + public void serialize(ByteBuf buf) { + buf.writeBoolean(muffled); + } + + @Override public void deserialize(ByteBuf buf) { + this.muffled = buf.readBoolean(); + } @Deprecated public void handleButtonPacket(int value, int meta) { } @@ -206,24 +216,6 @@ public abstract class TileEntityMachineBase extends TileEntityLoadedBase impleme nbt.setTag("items", list); } - public int countMufflers() { - - int count = 0; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - if(worldObj.getBlock(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ) == ModBlocks.muffler) - count++; - - return count; - } - - public float getVolume(int toSilence) { - - float volume = 1 - (countMufflers() / (float)toSilence); - - return Math.max(volume, 0); - } - public void updateRedstoneConnection(DirPos pos) { int x = pos.getX(); diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 709db4fdb..164046197 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -261,7 +261,7 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide public boolean canLaunch() { - if(power >= maxPower * 0.75 && isMissileValid() && hasDesignator() && hasFuel()) + if(power >= maxPower * 0.75 && isMissileValid() && hasFuel()) return true; return false; diff --git a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java index 4044d26df..829898ae3 100644 --- a/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java +++ b/src/main/java/com/hbm/tileentity/bomb/TileEntityNukeBalefire.java @@ -64,7 +64,7 @@ public class TileEntityNukeBalefire extends TileEntityMachineBase implements IGU } public void networkUnpack(NBTTagCompound data) { - + super.networkUnpack(data); timer = data.getInteger("timer"); started = data.getBoolean("started"); loaded = data.getBoolean("loaded"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java index cd78eb206..183c48ad6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityAshpit.java @@ -109,6 +109,7 @@ public class TileEntityAshpit extends TileEntityMachineBase implements IGUIProvi @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.playersUsing = nbt.getInteger("playersUsing"); this.isFull = nbt.getBoolean("isFull"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java index c4f7eaf9f..982b55616 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityConveyorPress.java @@ -163,7 +163,7 @@ public class TileEntityConveyorPress extends TileEntityMachineBase implements IE } } - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", getVolume(1.5F), 1.0F); if(slots[0].getMaxDamage() != 0) { slots[0].setItemDamage(slots[0].getItemDamage() + 1); @@ -180,6 +180,7 @@ public class TileEntityConveyorPress extends TileEntityMachineBase implements IE @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.power = nbt.getLong("power"); this.syncPress = nbt.getInteger("press"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java index 24817d855..3b12f505b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCore.java @@ -156,8 +156,9 @@ public class TileEntityCore extends TileEntityMachineBase implements IGUIProvide } } - + public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); tanks[0].setTankType(Fluids.fromID(data.getInteger("tank0"))); tanks[1].setTankType(Fluids.fromID(data.getInteger("tank1"))); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java index 92a83d81b..7346c6168 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -177,6 +177,7 @@ public class TileEntityCoreEmitter extends TileEntityMachineBase implements IEne } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); power = data.getLong("power"); watts = data.getInteger("watts"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java index b0fb0c484..e5862e2ab 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -110,8 +110,9 @@ public class TileEntityCoreInjector extends TileEntityMachineBase implements IFl this.networkPack(data, 250); } } - + public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); beam = data.getInteger("beam"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java index c3fbf28d6..565c9a6ee 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -78,6 +78,7 @@ public class TileEntityCoreReceiver extends TileEntityMachineBase implements IEn } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); joules = data.getLong("joules"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java index 6e6413032..437d9cfa6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCoreStabilizer.java @@ -105,6 +105,7 @@ public class TileEntityCoreStabilizer extends TileEntityMachineBase implements I } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); power = data.getLong("power"); watts = data.getInteger("watts"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java index e486b7a60..7894a916c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java @@ -235,6 +235,7 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.recipeStack.clear(); this.wasteStack.clear(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java index 9c906623d..ca7ce6f0e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCustomMachine.java @@ -364,6 +364,8 @@ public class TileEntityCustomMachine extends TileEntityMachineBase implements IF @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.machineType = nbt.getString("type"); if(this.config == null) this.init(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java index b902dfd3e..268ca8277 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDeuteriumExtractor.java @@ -61,6 +61,8 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); tanks[0].readFromNBT(data, "water"); tanks[1].readFromNBT(data, "heavyWater"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java index 7c7891802..224beb56d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityDiFurnaceRTG.java @@ -79,6 +79,8 @@ public class TileEntityDiFurnaceRTG extends TileEntityMachineBase implements IGU @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + progress = nbt.getShort("progress"); processSpeed = nbt.getShort("speed"); byte[] modes = nbt.getByteArray("modes"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java index 04b147c79..c999c9a5a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityElectrolyser.java @@ -242,6 +242,8 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progressFluid = nbt.getInteger("progressFluid"); this.progressOre = nbt.getInteger("progressOre"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index f1b1c1a28..5619478c3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -202,6 +202,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, audio = rebootAudio(audio); } + audio.updateVolume(getVolume(2F)); audio.updatePitch((audioDuration - 10) / 100F + 0.5F); } else { @@ -226,6 +227,8 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.mode = EnumWavelengths.valueOf(nbt.getString("mode")); this.isOn = nbt.getBoolean("isOn"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java index 5a52abb70..c52d0270d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFireboxBase.java @@ -109,7 +109,7 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i } this.wasOn = true; - if(worldObj.rand.nextInt(15) == 0) { + if(worldObj.rand.nextInt(15) == 0 && !this.muffled) { worldObj.playSoundEffect(xCoord, yCoord, zCoord, "fire.fire", 1.0F, 0.5F + worldObj.rand.nextFloat() * 0.5F); } } @@ -184,6 +184,8 @@ public abstract class TileEntityFireboxBase extends TileEntityMachinePolluting i @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.maxBurnTime = nbt.getInteger("maxBurnTime"); this.burnTime = nbt.getInteger("burnTime"); this.burnHeat = nbt.getInteger("burnHeat"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java index 4b6c42214..81fb4c1c3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceCombination.java @@ -168,6 +168,8 @@ public class TileEntityFurnaceCombination extends TileEntityMachinePolluting imp @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.wasOn = nbt.getBoolean("wasOn"); this.heat = nbt.getInteger("heat"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java index 9a00a9bba..b30350152 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceIron.java @@ -93,7 +93,7 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI this.progress++; this.burnTime--; - if(this.progress % 15 == 0) { + if(this.progress % 15 == 0 && !this.muffled) { worldObj.playSoundEffect(xCoord, yCoord, zCoord, "fire.fire", 1.0F, 0.5F + worldObj.rand.nextFloat() * 0.5F); } @@ -142,6 +142,8 @@ public class TileEntityFurnaceIron extends TileEntityMachineBase implements IGUI @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.maxBurnTime = nbt.getInteger("maxBurnTime"); this.burnTime = nbt.getInteger("burnTime"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java index 77d212d9e..4d6d7cbab 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFurnaceSteel.java @@ -123,6 +123,8 @@ public class TileEntityFurnaceSteel extends TileEntityMachineBase implements IGU @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.progress = nbt.getIntArray("progress"); this.bonus = nbt.getIntArray("bonus"); this.heat = nbt.getInteger("heat"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java index fed73cb60..173feb6de 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHadron.java @@ -193,6 +193,8 @@ public class TileEntityHadron extends TileEntityMachineBase implements IEnergyUs @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.isOn = data.getBoolean("isOn"); this.power = data.getLong("power"); this.analysisOnly = data.getBoolean("analysis"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java index 39b72b06c..312210f98 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoiler.java @@ -94,6 +94,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid data.setBoolean("exploded", this.hasExploded); data.setBoolean("isOn", this.isOn); + data.setBoolean("muffled", this.muffled); INBTPacketReceiver.networkPack(this, data, 25); } else { @@ -109,7 +110,8 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -150,6 +152,7 @@ public class TileEntityHeatBoiler extends TileEntityLoadedBase implements IFluid @Override public void networkUnpack(NBTTagCompound nbt) { this.hasExploded = nbt.getBoolean("exploded"); + this.muffled = nbt.getBoolean("muffled"); this.heat = nbt.getInteger("heat"); this.tanks[0].readFromNBT(nbt, "0"); this.tanks[1].readFromNBT(nbt, "1"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java index fa447da65..fe337615f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeatBoilerIndustrial.java @@ -75,6 +75,7 @@ public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase impleme } data.setBoolean("isOn", this.isOn); + data.setBoolean("muffled", this.muffled); INBTPacketReceiver.networkPack(this, data, 25); } else { @@ -90,7 +91,8 @@ public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase impleme } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -134,6 +136,7 @@ public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase impleme this.tanks[0].readFromNBT(nbt, "0"); this.tanks[1].readFromNBT(nbt, "1"); this.isOn = nbt.getBoolean("isOn"); + this.muffled = nbt.getBoolean("muffled"); } protected void tryPullHeat() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java index 35569da50..11e57b625 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterElectric.java @@ -49,6 +49,7 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH data.setByte("s", (byte) this.setting); data.setInteger("h", this.heatEnergy); data.setBoolean("o", isOn); + data.setBoolean("muffled", muffled); INBTPacketReceiver.networkPack(this, data, 25); } else { @@ -60,7 +61,8 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -103,6 +105,7 @@ public class TileEntityHeaterElectric extends TileEntityLoadedBase implements IH this.setting = nbt.getByte("s"); this.heatEnergy = nbt.getInteger("h"); this.isOn = nbt.getBoolean("o"); + this.muffled = nbt.getBoolean("muffled"); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java index 964ef74fd..254d8d027 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityHeaterOilburner.java @@ -108,6 +108,8 @@ public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implem @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + tank.readFromNBT(nbt, "tank"); isOn = nbt.getBoolean("isOn"); heatEnergy = nbt.getInteger("h"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index f7a078115..59f759c71 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -356,6 +356,8 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyUser @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.isOn = data.getBoolean("isOn"); this.power = data.getLong("power"); this.blanket = data.getInteger("blanket"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java index 7e32bc7b7..5e65220a5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityLockableBase.java @@ -68,6 +68,7 @@ public abstract class TileEntityLockableBase extends TileEntity { if(!isLocked) { return true; } else { + if(player == null) return false; ItemStack stack = player.getHeldItem(); if(stack != null && stack.getItem() instanceof ItemKey && diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java index 6a4d19226..f42fd7b9d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcWelder.java @@ -197,6 +197,8 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.maxPower = nbt.getLong("maxPower"); this.consumption = nbt.getLong("consumption"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index b549a6335..d0bd26ea0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -120,7 +120,7 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i this.networkPack(data, 150); } else { - float volume = this.getVolume(2); + float volume = this.getVolume(2F); if(isProgressing && volume > 0) { @@ -145,6 +145,8 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getIntArray("progress"); this.maxProgress = nbt.getIntArray("maxProgress"); @@ -247,18 +249,6 @@ public class TileEntityMachineAssembler extends TileEntityMachineAssemblerBase i public double getMaxRenderDistanceSquared() { return 65536.0D; } - - public int countMufflers() { - - int count = 0; - - for(int x = xCoord - 1; x <= xCoord + 1; x++) - for(int z = zCoord - 1; z <= zCoord + 1; z++) - if(worldObj.getBlock(x, yCoord - 1, z) == ModBlocks.muffler) - count++; - - return count; - } @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java index 009bc53e7..a44f0e996 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssemfac.java @@ -117,6 +117,8 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getIntArray("progress"); this.maxProgress = nbt.getIntArray("maxProgress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index b93815fdb..f3abfb2ba 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -207,6 +207,8 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); modes = new String[9]; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index 835324307..73e60b196 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -218,7 +218,8 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.updatePitch((audioDuration - 10) / 100F + 0.5F); } else { @@ -233,6 +234,8 @@ public class TileEntityMachineCentrifuge extends TileEntityMachineBase implement @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); this.progress = data.getInteger("progress"); this.isProgressing = data.getBoolean("isProgressing"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java index 7f8a84d03..4fbfdfab9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemfac.java @@ -159,6 +159,8 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase imp @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getIntArray("progress"); this.maxProgress = nbt.getIntArray("maxProgress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 1c7fe4c47..00318242c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -183,7 +183,7 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements worldObj.spawnParticle("cloud", x, y, z, 0.0, 0.1, 0.0); } - float volume = 1;//this.getVolume(2); + float volume = this.getVolume(1F); if(isProgressing && volume > 0) { @@ -213,6 +213,8 @@ public class TileEntityMachineChemplant extends TileEntityMachineBase implements @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); this.maxProgress = nbt.getInteger("maxProgress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java index 38fce4e2a..9cad71b9d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCombustionEngine.java @@ -142,8 +142,9 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + audio.keepAlive(); + audio.updateVolume(this.getVolume(1F)); } else { @@ -203,6 +204,7 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.playersUsing = nbt.getInteger("playersUsing"); this.setting = nbt.getInteger("setting"); this.power = nbt.getLong("power"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java index 9a05a00b5..0d9c557d2 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCompressor.java @@ -146,7 +146,7 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement if(this.pistonDir) { this.piston -= randSpeed; if(this.piston <= 0) { - MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:item.boltgun", 0.5F, 0.75F); + MainRegistry.proxy.playSoundClient(xCoord, yCoord, zCoord, "hbm:item.boltgun", this.getVolume(0.5F), 0.75F); this.pistonDir = !this.pistonDir; } } else { @@ -165,6 +165,8 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement private float randSpeed = 0.1F; public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.progress = nbt.getInteger("progress"); this.processTime = nbt.getInteger("processTime"); this.powerRequirement = nbt.getInteger("powerRequirement"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index bac1b5928..5e6d51bbe 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -155,6 +155,7 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); this.power = data.getLong("power"); this.progress = data.getShort("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java index f5a489a8c..618ce4f80 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineCyclotron.java @@ -201,6 +201,8 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.isOn = data.getBoolean("isOn"); this.power = data.getLong("power"); this.progress = data.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index f1c7097e7..be79c3f6e 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -162,6 +162,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); power = data.getInteger("power"); powerCap = data.getInteger("powerCap"); @@ -197,7 +198,7 @@ public class TileEntityMachineDiesel extends TileEntityMachinePolluting implemen if(!shutUp) { if (soundCycle == 0) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", 0.75F * this.getVolume(3), 0.5F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", this.getVolume(0.75F), 0.5F); } soundCycle++; } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java index 7e6b2c4cb..d75431102 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineEPress.java @@ -86,7 +86,7 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE this.press += stampSpeed; if(this.press >= this.maxPress) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", getVolume(1.5F), 1.0F); ItemStack output = PressRecipes.getOutput(slots[2], slots[1]); if(slots[3] == null) { slots[3] = output.copy(); @@ -142,6 +142,8 @@ public class TileEntityMachineEPress extends TileEntityMachineBase implements IE @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.syncPress = nbt.getInteger("press"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index 8626dcf6c..a790d6265 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -236,6 +236,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.maxProgress = nbt.getInteger("MaxProgress"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java index 04064d367..321ea65dc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExcavator.java @@ -214,6 +214,8 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.enableDrill = nbt.getBoolean("d"); this.enableCrusher = nbt.getBoolean("c"); this.enableWalling = nbt.getBoolean("w"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java index e8f98a245..160a35b0b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineExposureChamber.java @@ -25,6 +25,7 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; @@ -45,6 +46,22 @@ public class TileEntityMachineExposureChamber extends TileEntityMachineBase impl public boolean isOn = false; public float rotation; public float prevRotation; + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.progress = nbt.getInteger("progress"); + this.power = nbt.getLong("power"); + this.savedParticles = nbt.getInteger("savedParticles"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setInteger("progress", progress); + nbt.setLong("power", power); + nbt.setInteger("savedParticles", savedParticles); + } public TileEntityMachineExposureChamber() { /* diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java index 3a1933554..3b7a8f6fd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFunnel.java @@ -69,11 +69,13 @@ public class TileEntityMachineFunnel extends TileEntityMachineBase implements IG @Override public void serialize(ByteBuf buf) { + super.serialize(buf); buf.writeInt(this.mode); } @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); this.mode = buf.readInt(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java index eb993e4f7..dbfc389bd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineGasCent.java @@ -167,6 +167,8 @@ public class TileEntityMachineGasCent extends TileEntityMachineBase implements I } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); this.progress = data.getInteger("progress"); this.isProgressing = data.getBoolean("isProgressing"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java index 7cf0c451f..6d68a4c76 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineIGenerator.java @@ -262,6 +262,8 @@ public class TileEntityMachineIGenerator extends TileEntityMachineBase implement @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.spin = nbt.getInteger("spin"); this.burn = nbt.getIntArray("burn"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java index acdc7ee38..1d8eefaa0 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLargeTurbine.java @@ -149,6 +149,8 @@ public class TileEntityMachineLargeTurbine extends TileEntityMachineBase impleme } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); this.shouldTurn = data.getBoolean("operational"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java index 89bfd1028..fd4e39243 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMiningLaser.java @@ -202,6 +202,7 @@ public class TileEntityMachineMiningLaser extends TileEntityMachineBase implemen } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); this.power = data.getLong("power"); this.lastTargetX = data.getInteger("lastX"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java index ffd1deccb..d4d8c40cc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineMixer.java @@ -140,6 +140,8 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.processTime = nbt.getInteger("processTime"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java index 2ddf52c34..583aa45ee 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePlasmaHeater.java @@ -151,6 +151,8 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java index c049d696e..58a31e5bd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePress.java @@ -91,7 +91,7 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU this.press += stampSpeed; if(this.press >= this.maxPress) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", 1.5F, 1.0F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.pressOperate", getVolume(1.5F), 1.0F); ItemStack output = PressRecipes.getOutput(slots[2], slots[1]); if(slots[3] == null) { slots[3] = output.copy(); @@ -161,6 +161,8 @@ public class TileEntityMachinePress extends TileEntityMachineBase implements IGU @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.speed = nbt.getInteger("speed"); this.burnTime = nbt.getInteger("burnTime"); this.syncPress = nbt.getInteger("press"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java index c9a3fe5b5..e44e62e8a 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadGen.java @@ -18,6 +18,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -117,6 +118,8 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.progress = nbt.getIntArray("progress"); this.maxProgress = nbt.getIntArray("maxProgress"); this.production = nbt.getIntArray("production"); @@ -212,15 +215,16 @@ public class TileEntityMachineRadGen extends TileEntityMachineBase implements IE static { for(int i = 0; i < ItemWasteShort.WasteClass.values().length; i++) { - fuels.put( new ComparableStack(ModItems.nuclear_waste_short, 1, i), new Triplet(1500, 30 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted, 1, i))); - fuels.put( new ComparableStack(ModItems.nuclear_waste_short_tiny, 1, i), new Triplet(150, 3 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_short, 1, i), new Triplet(1500, 30 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_short_tiny, 1, i), new Triplet(150, 3 * 60 * 20, new ItemStack(ModItems.nuclear_waste_short_depleted_tiny, 1, i))); } for(int i = 0; i < ItemWasteLong.WasteClass.values().length; i++) { - fuels.put( new ComparableStack(ModItems.nuclear_waste_long, 1, i), new Triplet(500, 2 * 60 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted, 1, i))); - fuels.put( new ComparableStack(ModItems.nuclear_waste_long_tiny, 1, i), new Triplet(50, 12 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_long, 1, i), new Triplet(500, 2 * 60 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted, 1, i))); + fuels.put( new ComparableStack(ModItems.nuclear_waste_long_tiny, 1, i), new Triplet(50, 12 * 60 * 20, new ItemStack(ModItems.nuclear_waste_long_depleted_tiny, 1, i))); } - - fuels.put( new ComparableStack(ModItems.scrap_nuclear), new Triplet(50, 5 * 60 * 20, null)); + + fuels.put( new ComparableStack(ModItems.scrap_nuclear), new Triplet(50, 5 * 60 * 20, null)); + fuels.put( new ComparableStack(ModItems.gem_rad), new Triplet(25_000, 30 * 60 * 20, new ItemStack(Items.diamond))); } private Triplet grabResult(ItemStack stack) { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java index b29d37ea4..f43773020 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadarNT.java @@ -7,7 +7,6 @@ import java.util.function.Function; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; -import com.hbm.blocks.ModBlocks; import com.hbm.extprop.HbmLivingProps; import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.container.ContainerMachineRadarNT; @@ -155,7 +154,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I } lastPower = getRedPower(); - if(worldObj.getBlock(xCoord, yCoord - 1, zCoord) != ModBlocks.muffler) { + if(!this.muffled) { pingTimer++; @@ -237,6 +236,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I @Override public void serialize(ByteBuf buf) { + super.serialize(buf); buf.writeLong(this.power); buf.writeBoolean(this.scanMissiles); buf.writeBoolean(this.scanShells); @@ -266,6 +266,7 @@ public class TileEntityMachineRadarNT extends TileEntityMachineBase implements I @Override public void deserialize(ByteBuf buf) { + super.deserialize(buf); this.power = buf.readLong(); this.scanMissiles = buf.readBoolean(); this.scanShells = buf.readBoolean(); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java index 1cbe50ab4..1e63bd80f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineRadiolysis.java @@ -105,6 +105,8 @@ public class TileEntityMachineRadiolysis extends TileEntityMachineBase implement } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.power = data.getLong("power"); this.heat = data.getInteger("heat"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java index 3a8cec7ca..42ac92f71 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineReactorBreeding.java @@ -72,6 +72,8 @@ public class TileEntityMachineReactorBreeding extends TileEntityMachineBase impl } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + flux = data.getInteger("flux"); progress = data.getFloat("progress"); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java index bed920b68..83b516c43 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java @@ -183,6 +183,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } + audio.updateVolume(getVolume(1F)); } else { if(audio != null) { @@ -226,6 +227,7 @@ public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineB @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); this.power = data.getLong("power"); this.process = data.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index c55778131..d366b287f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -305,7 +305,7 @@ public class TileEntityMachineSeleniumEngine extends TileEntityLoadedBase implem if(!shutUp) { if (soundCycle == 0) { - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", 1.0F, 0.5F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "fireworks.blast", this.getVolume(1.0F), 0.5F); } soundCycle++; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java index ee1e8fb32..ab6c81d37 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineShredder.java @@ -249,7 +249,7 @@ public class TileEntityMachineShredder extends TileEntityLoadedBase implements I flag1 = true; } if(soundCycle == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "minecart.base", 1.0F, 0.75F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "minecart.base", getVolume(1.0F), 0.75F); soundCycle++; if(soundCycle >= 50) diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java index 21bb03777..9a92c3db8 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbineGas.java @@ -176,17 +176,17 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement if(audio == null) { //if there is no sound playing, start it - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 2.0F); audio.startSound(); } else if(!audio.isPlaying()) { audio.stopSound(); - audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 1.0F); + audio = MainRegistry.proxy.getLoopedSound("hbm:block.turbinegasRunning", xCoord, yCoord, zCoord, 1.0F, 20F, 2.0F); audio.startSound(); } audio.updatePitch((float) (0.55 + 0.1 * rpm / 10)); //dynamic pitch update based on rpm - audio.updateVolume(100F); //yeah i need this + audio.updateVolume(getVolume(2F)); //yeah i need this } else { @@ -378,6 +378,7 @@ public class TileEntityMachineTurbineGas extends TileEntityMachineBase implement @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.power = nbt.getLong("power"); this.rpm = nbt.getInteger("rpm"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 4c7e068b3..01c4cc7ce 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -318,7 +318,7 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem } audio.keepAlive(); - audio.updateVolume(momentum); + audio.updateVolume(getVolume(momentum / 50F)); audio.updatePitch(momentum / 200F + 0.5F + this.afterburner * 0.16F); } else { @@ -382,6 +382,8 @@ public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implem } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.afterburner = nbt.getByte("after"); this.wasOn = nbt.getBoolean("wasOn"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java index 42510532f..d4a1f7700 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineWoodBurner.java @@ -150,6 +150,8 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.burnTime = nbt.getInteger("burnTime"); this.maxBurnTime = nbt.getInteger("maxBurnTime"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java index 5253e4aec..baf799651 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java @@ -81,6 +81,8 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + power = data.getLong("power"); time = data.getInteger("time"); speed = data.getInteger("speed"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java index 03e34f0fe..974c78122 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityPWRController.java @@ -292,7 +292,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -376,6 +377,8 @@ public class TileEntityPWRController extends TileEntityMachineBase implements IG } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + tanks[0].readFromNBT(nbt, "t0"); tanks[1].readFromNBT(nbt, "t1"); rodCount = nbt.getInteger("rodCount"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java index 63ea4818e..7169ce7f4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorControl.java @@ -151,6 +151,8 @@ public class TileEntityReactorControl extends TileEntityMachineBase implements I } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.heat = data.getInteger("heat"); this.level = data.getDouble("level"); this.flux = data.getInteger("flux"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java index 0bc646eee..8e1816775 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorResearch.java @@ -161,6 +161,8 @@ public class TileEntityReactorResearch extends TileEntityMachineBase implements } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.heat = data.getInteger("heat"); this.water = data.getByte("water"); this.level = data.getDouble("level"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java index 43536fedb..2064b13f9 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityReactorZirnox.java @@ -133,6 +133,8 @@ public class TileEntityReactorZirnox extends TileEntityMachineBase implements IF } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + this.heat = data.getInteger("heat"); this.pressure = data.getInteger("pressure"); this.isOn = data.getBoolean("isOn"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java index 454714695..7148b06b1 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySILEX.java @@ -101,6 +101,7 @@ public class TileEntitySILEX extends TileEntityMachineBase implements IFluidAcce } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.currentFill = nbt.getInteger("fill"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index 6f85b34fd..01a399e72 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -193,6 +193,8 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + power = data.getLong("power"); mode = data.getByte("mode"); starting = data.getBoolean("starting"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java index 2d70dc4c6..3c0f29220 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySteamEngine.java @@ -109,7 +109,7 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IFlui if(this.rotor >= 360D) { this.rotor -= 360D; - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", 1.0F, 0.5F + (acceleration / 80F)); + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:block.steamEngineOperate", getVolume(1.0F), 0.5F + (acceleration / 80F)); } data.setLong("power", this.powerBuffer); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java b/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java index f3c930d3e..664327e1f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityTesla.java @@ -147,6 +147,7 @@ public class TileEntityTesla extends TileEntityMachineBase implements IEnergyUse } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); int s = data.getShort("length"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java index 32ec41b3e..9168d4387 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityWatz.java @@ -293,6 +293,8 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.heat = nbt.getInteger("heat"); this.isOn = nbt.getBoolean("isOn"); this.isLocked = nbt.getBoolean("lock"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java index 04e534de5..5ef5ed3c2 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticReformer.java @@ -83,6 +83,8 @@ public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase im @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); for(int i = 0; i < 4; i++) tanks[i].readFromNBT(nbt, "" + i); } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java index f2adcb771..8e812e5ac 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java @@ -175,6 +175,8 @@ public class TileEntityMachineCoker extends TileEntityMachineBase implements IFl @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.wasOn = nbt.getBoolean("wasOn"); this.heat = nbt.getInteger("heat"); this.progress = nbt.getInteger("progress"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java index 25d5f4029..c73041b75 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineGasFlare.java @@ -129,7 +129,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements tank.getTankType().onFluidRelease(this, tank, eject); if(worldObj.getTotalWorldTime() % 7 == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "random.fizz", 1.5F, 0.5F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "random.fizz", getVolume(1.5F), 0.5F); } } else { @@ -159,7 +159,7 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements } if(worldObj.getTotalWorldTime() % 3 == 0) - this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", 1.5F, 0.75F); + this.worldObj.playSoundEffect(this.xCoord, this.yCoord + 11, this.zCoord, "hbm:weapon.flamethrowerShoot", getVolume(1.5F), 0.75F); if(worldObj.getTotalWorldTime() % 20 == 0) { PollutionHandler.incrementPollution(worldObj, xCoord, yCoord, zCoord, PollutionType.SOOT, PollutionHandler.SOOT_PER_SECOND * 5); @@ -234,6 +234,8 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.isOn = nbt.getBoolean("isOn"); this.doesBurn = nbt.getBoolean("doesBurn"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 01b59adc8..2cd37bd61 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -169,6 +169,8 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); this.usage = nbt.getInteger("usage"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index dd11a3431..9788943a9 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -123,8 +123,8 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { @Override public void networkUnpack(NBTTagCompound nbt) { - this.power = nbt.getLong("power"); - this.indicator = nbt.getInteger("indicator"); + super.networkUnpack(nbt); + this.speed = nbt.getFloat("speed"); } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index 27e48d4a1..4ee78cd48 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -231,7 +231,8 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -271,6 +272,8 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "" + i); this.hasExploded = nbt.getBoolean("exploded"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index 1677a5321..1f900c83b 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -172,6 +172,8 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); this.usage = nbt.getInteger("usage"); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index 9fc45de36..326608afc 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -98,7 +98,8 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem } else if(!audio.isPlaying()) { audio = rebootAudio(audio); } - + + audio.updateVolume(getVolume(1F)); audio.keepAlive(); } else { @@ -138,6 +139,8 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.isOn = nbt.getBoolean("isOn"); for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "" + i); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index 4c785a486..940cb14d5 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -177,6 +177,8 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.power = nbt.getLong("power"); this.indicator = nbt.getInteger("indicator"); } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 49db2fe90..37ea7fbfb 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -261,6 +261,8 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc } public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + mode = data.getShort("mode"); } diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index c27670d37..f20d2f7fb 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -322,7 +322,8 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } @Override - public void networkUnpack(NBTTagCompound nbt) { + public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.power = nbt.getLong("power"); this.delta = nbt.getLong("delta"); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java index 2996d102a..a634dcc79 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneBoxer.java @@ -151,6 +151,8 @@ public class TileEntityCraneBoxer extends TileEntityCraneBase implements IGUIPro } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.mode = nbt.getByte("mode"); } diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java index d947f9922..8f08fa356 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneExtractor.java @@ -172,6 +172,8 @@ public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGU } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.isWhitelist = nbt.getBoolean("isWhitelist"); this.matcher.modes = new String[this.matcher.modes.length]; this.matcher.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java index e6dc6b48b..cec453cd8 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneGrabber.java @@ -137,6 +137,8 @@ public class TileEntityCraneGrabber extends TileEntityCraneBase implements IGUIP } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.isWhitelist = nbt.getBoolean("isWhitelist"); this.matcher.modes = new String[this.matcher.modes.length]; this.matcher.readFromNBT(nbt); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java b/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java index 68db57165..603e839e4 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityCraneRouter.java @@ -57,6 +57,8 @@ public class TileEntityCraneRouter extends TileEntityMachineBase implements IGUI @Override public void networkUnpack(NBTTagCompound data) { + super.networkUnpack(data); + for(int i = 0; i < patterns.length; i++) { NBTTagCompound compound = data.getCompoundTag("pattern" + i); patterns[i].readFromNBT(compound); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java index 809fec28f..90328882b 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityRadioTorchCounter.java @@ -75,6 +75,8 @@ public class TileEntityRadioTorchCounter extends TileEntityMachineBase implement } public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); + this.polling = nbt.getBoolean("polling"); this.lastCount = nbt.getIntArray("last"); this.matcher.modes = new String[this.matcher.modes.length]; diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java index 53496d00a..4420667ba 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretBaseNT.java @@ -291,6 +291,7 @@ public abstract class TileEntityTurretBaseNT extends TileEntityMachineBase imple @Override public void networkUnpack(NBTTagCompound nbt) { + super.networkUnpack(nbt); this.power = nbt.getLong("power"); this.isOn = nbt.getBoolean("isOn"); diff --git a/src/main/java/com/hbm/util/ArmorRegistry.java b/src/main/java/com/hbm/util/ArmorRegistry.java index fc1a20601..c098d6a89 100644 --- a/src/main/java/com/hbm/util/ArmorRegistry.java +++ b/src/main/java/com/hbm/util/ArmorRegistry.java @@ -100,14 +100,14 @@ public class ArmorRegistry { } public static enum HazardClass { - GAS_CHLORINE("hazard.gasChlorine"), //also attacks eyes -> no half mask + GAS_LUNG("hazard.gasChlorine"), //also attacks eyes -> no half mask GAS_MONOXIDE("hazard.gasMonoxide"), //only affects lungs GAS_INERT("hazard.gasInert"), //SA PARTICLE_COARSE("hazard.particleCoarse"), //only affects lungs PARTICLE_FINE("hazard.particleFine"), //only affects lungs BACTERIA("hazard.bacteria"), //no half masks - NERVE_AGENT("hazard.nerveAgent"), //aggressive nerve agent, also attacks skin - GAS_CORROSIVE("hazard.corrosive"), //corrosive substance, also attacks skin + //NERVE_AGENT("hazard.nerveAgent"), //aggressive nerve agent, also attacks skin + GAS_BLISTERING("hazard.corrosive"), //corrosive substance, also attacks skin SAND("hazard.sand"), //blinding sand particles LIGHT("hazard.light"); //blinding light diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index ddf3d89dd..5d84f1d3d 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -30,16 +30,16 @@ public class ArmorUtil { */ public static void register() { - ArmorRegistry.registerHazard(ModItems.gas_mask_filter, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.NERVE_AGENT); + ArmorRegistry.registerHazard(ModItems.gas_mask_filter, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA); ArmorRegistry.registerHazard(ModItems.gas_mask_filter_mono, HazardClass.PARTICLE_COARSE, HazardClass.GAS_MONOXIDE); - ArmorRegistry.registerHazard(ModItems.gas_mask_filter_combo, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.NERVE_AGENT); + ArmorRegistry.registerHazard(ModItems.gas_mask_filter_combo, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE); ArmorRegistry.registerHazard(ModItems.gas_mask_filter_rag, HazardClass.PARTICLE_COARSE); - ArmorRegistry.registerHazard(ModItems.gas_mask_filter_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_CHLORINE); + ArmorRegistry.registerHazard(ModItems.gas_mask_filter_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_LUNG); ArmorRegistry.registerHazard(ModItems.gas_mask, HazardClass.SAND, HazardClass.LIGHT); ArmorRegistry.registerHazard(ModItems.gas_mask_m65, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.mask_rag, HazardClass.PARTICLE_COARSE); - ArmorRegistry.registerHazard(ModItems.mask_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_CHLORINE); + ArmorRegistry.registerHazard(ModItems.mask_piss, HazardClass.PARTICLE_COARSE, HazardClass.GAS_LUNG); ArmorRegistry.registerHazard(ModItems.goggles, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.ashglasses, HazardClass.LIGHT, HazardClass.SAND); @@ -52,23 +52,23 @@ public class ArmorUtil { ArmorRegistry.registerHazard(ModItems.hazmat_helmet_grey, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.hazmat_paa_helmet, HazardClass.LIGHT, HazardClass.SAND); ArmorRegistry.registerHazard(ModItems.liquidator_helmet, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.t45_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.ajr_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.ajro_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.steamsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.hev_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.fau_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.dns_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.schrabidium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.euphemium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.rpa_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.envsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - ArmorRegistry.registerHazard(ModItems.trenchmaster_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.t45_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.ajr_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.ajro_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.steamsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.hev_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.fau_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.dns_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.schrabidium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.euphemium_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.rpa_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.envsuit_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + ArmorRegistry.registerHazard(ModItems.trenchmaster_helmet, HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); //Ob ihr wirklich richtig steht, seht ihr wenn das Licht angeht! - registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.biochemgas.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); - registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.radiation.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_CHLORINE, HazardClass.BACTERIA, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.universal.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.biochemgas.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); + registerIfExists(Compat.MOD_GT6, "gt.armor.hazmat.radiation.head", HazardClass.PARTICLE_COARSE, HazardClass.PARTICLE_FINE, HazardClass.GAS_LUNG, HazardClass.BACTERIA, HazardClass.GAS_BLISTERING, HazardClass.GAS_MONOXIDE, HazardClass.LIGHT, HazardClass.SAND); } private static void registerIfExists(String domain, String name, HazardClass... classes) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a4220206f..3a7ac08cf 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -567,6 +567,7 @@ flare.valve=Flussventil fluid.acid_fluid=Säure fluid.corium_fluid=Corium fluid.mud_fluid=Giftiger Schlamm +fluid.rad_lava_fluid=Vulkanische Lava fluid.schrabidic_fluid=Schrabidische Säure fluid.toxic_fluid=Stereotypischer grüner Schleim fluid.volcanic_lava_fluid=Vulkanische Lava @@ -1412,6 +1413,8 @@ item.cape_nostalgia.name=DrNostalgias Cape item.cape_radiation.name=Cape (Radioaktiv) item.cape_schrabidium.name=Cape (Schrabidisch) item.cape_vertice.name=Lord Vertices Cape +item.card_aos.name=Pik-Ass +item.card_qos.name=Pik-Königin item.cart.crate.name=Stahlkistenlore item.cart.destroyer.name=Schuttzerstörende Lore item.cart.empty.name=Lore @@ -1853,6 +1856,7 @@ item.gear_large.name=Großes Zahnrad item.gear_large_steel.name=Großes Stahlzahnrad item.geiger_counter.name=Mobiler Geigerzähler item.gem_alexandrite.name=Alexandrit +item.gem_rad.name=Radioaktiver Edelstein item.gem_sodalite.name=Sodalith item.gem_tantalium.name=Tantal-Polykristall item.gem_volcanic.name=Vulkanischer Edelstein @@ -2795,6 +2799,7 @@ item.powder_magic.name=Pulverisierte Verzauberung item.powder_magnetized_tungsten.name=Magnetisierter Wolframstaub item.powder_meteorite.name=Meteoritenstaub item.powder_meteorite_tiny.name=Kleiner Haufen Meteoritenstaub +item.powder_molysite.name=Molysit item.powder_neodymium.name=Neodymstaub item.powder_neodymium_tiny.name=Kleiner Haufen Neodymstaub item.powder_neptunium.name=Neptuniumstaub @@ -3332,6 +3337,7 @@ item.upgrade_fortune_2.name=Glückupgrade Mk.II item.upgrade_fortune_3.name=Glückupgrade Mk.III item.upgrade_gc_speed.name=Gaszentrifugen-Geschwindigkeitsupgrade item.upgrade_health.name=Kraftfeld-Resistenzupgrade +item.upgrade_muffler.name=Schalldämpfer item.upgrade_nullifier.name=Müllvernichter-Upgrade item.upgrade_overdrive_1.name=Overdrive-Upgrade Mk.I item.upgrade_overdrive_2.name=Overdrive-Upgrade Mk.II @@ -3541,13 +3547,9 @@ tile.barrel_steel.name=Stahlfass tile.barrel_tcalloy.name=Technetiumstahlfass tile.barricade.name=Sandsäcke tile.basalt.name=Basalt -tile.basalt_asbestos.name=Asbestreicher Basalt tile.basalt_brick.name=Basaltziegel -tile.basalt_fluorite.name=Fluoritreicher Basalt -tile.basalt_gem.name=Edelsteinreicher Basalt tile.basalt_polished.name=Polierter Basalt tile.basalt_smooth.name=Glatter Basalt -tile.basalt_sulfur.name=Schwefelreicher Basalt tile.basalt_tiles.name=Basaltfliesen tile.blast_door.name=Abschluss-Sprengtür tile.block_actinium.name=Actiniumblock @@ -4244,6 +4246,11 @@ tile.ore_alexandrite.name=Alexandriterz tile.ore_aluminium.name=Aluminiumerz tile.ore_asbestos.name=Asbesterz tile.ore_australium.name=Australisches Erz +tile.ore_basalt_asbestos.name=Asbestreicher Basalt +tile.ore_basalt_fluorite.name=Fluoritreicher Basalt +tile.ore_basalt_gem.name=Edelsteinreicher Basalt +tile.ore_basalt_molysite.name=Molysitreicher Basalt +tile.ore_basalt_sulfur.name=Schwefelreicher Basalt tile.ore_bedrock.name=Bedrock-Erz tile.ore_bedrock_coltan.name=Bedrock-Coltanerz tile.ore_bedrock_oil.name=Bedrock-Ölvorkommen @@ -4302,6 +4309,7 @@ tile.ore_reiium.name=Reiit tile.ore_schrabidium.name=Schrabidiumerz tile.ore_sellafield_diamond.name=Sellafit-Diamanterz tile.ore_sellafield_emerald.name=Sellafit-Smaragderz +tile.ore_sellafield_radgem.name=Sellafite-Edelsteinerz tile.ore_sellafield_schrabidium.name=Sellafit-Schrabidiumerz tile.ore_sellafield_uranium_scorched.name=Verschmortes Sellafit-Uranerz tile.ore_sulfur.name=Schwefelerz @@ -4368,6 +4376,7 @@ tile.pwr_port.name=PWR Zugangsport tile.pwr_port.desc=Erlaubt IO für Items und Flüssigkeiten$Platzierung: Hülle tile.pwr_reflector.name=PWR Neutronenreflektor tile.pwr_reflector.desc=Reflektier Neutronen auf Brennstäbe zurück$Platzierung: Hülle, für höhere Reaktivität$Gültiger Block für Hülle +tile.volcanic_lava_block.name=Vulkanische Lava tile.radar_screen.name=Radarbildschirm tile.radio_telex.name=Telex-Maschine tile.radio_torch_counter.name=Redstone-over-Radio Itemzähler @@ -4556,6 +4565,7 @@ tile.vent_cloud.name=Wolken-Auslass tile.vent_pink_cloud.name=Pinker Wolken-Auslass tile.vitrified_barrel.name=Fass voll vitrifiziertem Atommüll tile.volcano_core.name=Vulkankern +tile.volcano_rad_core.name=Rad-Vulkankern tile.volcanic_lava_block.name=Vulkanische Lava tile.waste_earth.name=Totes Gras tile.waste_leaves.name=Tote Blätter diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 05365875c..1ca85dd75 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1081,6 +1081,7 @@ flare.valve=Flow Valve fluid.acid_fluid=Acid fluid.corium_fluid=Corium fluid.mud_fluid=Poisonous Mud +fluid.rad_lava_fluid=Volcanic Lava fluid.schrabidic_fluid=Schrabidic Acid fluid.toxic_fluid=Stereotypical Green Ooze fluid.volcanic_lava_fluid=Volcanic Lava @@ -2108,6 +2109,8 @@ item.cape_nostalgia.name=DrNostalgia's Cape item.cape_radiation.name=Cape (Radiation) item.cape_schrabidium.name=Cape (Schrabidic) item.cape_vertice.name=Lord Vertice's Cape +item.card_aos.name=Ace of Spades +item.card_qos.name=Queen of Spades item.cart.crate.name=Crate Cart item.cart.destroyer.name=Scrap Destroying Cart item.cart.empty.name=Minecart @@ -2513,8 +2516,8 @@ item.fluid_barrel_infinite.name=Infinite Fluid Barrel item.fluid_duct.name=Fluid Duct: item.fluid_identifier.name=Fluid Identifier item.fluid_identifier.info=Universal fluid identifier for: -item.fluid_identifier.usage0=Right click fluid ducts to designate them for that fluid. -item.fluid_identifier.usage1=Shift right click fluid ducts to designate adjacent ducts +item.fluid_identifier.usage0=Right click fluid ducts to set their fluid type. +item.fluid_identifier.usage1=Shift right click fluid ducts to set adjacent ducts item.fluid_identifier.usage2=up to a maximum range of 64 ducts. item.fluid_identifier_multi.name=Multi Fluid Identifier item.fluid_identifier_multi.info=Universal fluid identifier for: @@ -2574,6 +2577,7 @@ item.gear_large.name=Large Gear item.gear_large_steel.name=Large Steel Gear item.geiger_counter.name=Handheld Geiger Counter item.gem_alexandrite.name=Alexandrite +item.gem_rad.name=Radioactive Gem item.gem_sodalite.name=Sodalite item.gem_tantalium.name=Tantalium Polycrystal item.gem_tantalium.desc='Tantalum' @@ -3604,6 +3608,7 @@ item.powder_magic.name=Pulverized Enchantment item.powder_magnetized_tungsten.name=Magnetized Tungsten Powder item.powder_meteorite.name=Meteorite Powder item.powder_meteorite_tiny.name=Tiny Pile of Meteorite Powder +item.powder_molysite.name=Molysite item.powder_neodymium.name=Neodymium Powder item.powder_neodymium_tiny.name=Tiny Pile of Neodymium Powder item.powder_neptunium.name=Neptunium Powder @@ -4256,6 +4261,7 @@ item.upgrade_fortune_2.name=Fortune Upgrade Mk.II item.upgrade_fortune_3.name=Fortune Upgrade Mk.III item.upgrade_gc_speed.name=Gas Centrifuge Overclocking Upgrade item.upgrade_health.name=Emitter Health Upgrade +item.upgrade_muffler.name=Muffler item.upgrade_nullifier.name=Scrap Destroyer Upgrade item.upgrade_overdrive_1.name=Overdrive Upgrade Mk.I item.upgrade_overdrive_2.name=Overdrive Upgrade Mk.II @@ -4502,13 +4508,9 @@ tile.barrel_steel.name=Steel Barrel tile.barrel_tcalloy.name=Technetium Steel Barrel tile.barricade.name=Sand Bags tile.basalt.name=Basalt -tile.basalt_asbestos.name=Asbestos-Rich Basalt tile.basalt_brick.name=Basalt Bricks -tile.basalt_fluorite.name=Fluorite-Rich Basalt -tile.basalt_gem.name=Gem-Rich Basalt tile.basalt_polished.name=Polished Basalt tile.basalt_smooth.name=Smooth Basalt -tile.basalt_sulfur.name=Sulfur-Rich Basalt tile.basalt_tiles.name=Basalt Tiles tile.blast_door.name=Sliding Blast Door tile.block_actinium.name=Block of Actinium @@ -5244,6 +5246,11 @@ tile.ore_alexandrite.name=Alexandrite Ore tile.ore_aluminium.name=Aluminium Ore tile.ore_asbestos.name=Asbestos Ore tile.ore_australium.name=Australian Ore +tile.ore_basalt_asbestos.name=Asbestos-Rich Basalt +tile.ore_basalt_fluorite.name=Fluorite-Rich Basalt +tile.ore_basalt_gem.name=Gem-Rich Basalt +tile.ore_basalt_molysite.name=Molysite-Rich Basalt +tile.ore_basalt_sulfur.name=Sulfur-Rich Basalt tile.ore_bedrock.name=Bedrock Ore tile.ore_bedrock_coltan.name=Bedrock Coltan Ore tile.ore_bedrock_oil.name=Bedrock Oil Deposit @@ -5302,6 +5309,7 @@ tile.ore_reiium.name=Reiite tile.ore_schrabidium.name=Schrabidium Ore tile.ore_sellafield_diamond.name=Sellafite Diamond Ore tile.ore_sellafield_emerald.name=Sellafite Emerald Ore +tile.ore_sellafield_radgem.name=Sellafite Radioactive Gem Ore tile.ore_sellafield_schrabidium.name=Sellafite Schrabidium Ore tile.ore_sellafield_uranium_scorched.name=Scorched Sellafite Uranium Ore tile.ore_sulfur.name=Sulfur Ore @@ -5369,6 +5377,7 @@ tile.pwr_port.name=PWR Access Port tile.pwr_port.desc=Allows item and fluid IO$Placement: Casing tile.pwr_reflector.name=PWR Neutron Reflector tile.pwr_reflector.desc=Reflects neutrons back to fuel rods$Placement: Grid, for increased reactivity$Valid casing material +tile.rad_lava_block.name=Volcanic Lava tile.radar_screen.name=Radar Screen tile.radio_telex.name=Telex Machine tile.radio_torch_counter.name=Redstone-over-Radio Item Counter @@ -5563,6 +5572,7 @@ tile.vinyl_tile.small.name=Small Vinyl Tiles tile.vitrified_barrel.name=Vitrified Nuclear Waste Drum tile.volcanic_lava_block.name=Volcanic Lava tile.volcano_core.name=Volcano Core +tile.volcano_rad_core.name=Rad Volcano Core tile.waste_earth.name=Dead Grass tile.waste_leaves.name=Dead Leaves tile.waste_log.name=Charred Log diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_asbestos.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_asbestos.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/basalt_asbestos.png rename to src/main/resources/assets/hbm/textures/blocks/ore_basalt_asbestos.png diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_fluorite.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_fluorite.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/basalt_fluorite.png rename to src/main/resources/assets/hbm/textures/blocks/ore_basalt_fluorite.png diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_gem.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_gem.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/basalt_gem.png rename to src/main/resources/assets/hbm/textures/blocks/ore_basalt_gem.png diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite.png new file mode 100644 index 000000000..e688aeaac Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_molysite.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_overlay.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_overlay.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/basalt_overlay.png rename to src/main/resources/assets/hbm/textures/blocks/ore_basalt_overlay.png diff --git a/src/main/resources/assets/hbm/textures/blocks/basalt_sulfur.png b/src/main/resources/assets/hbm/textures/blocks/ore_basalt_sulfur.png similarity index 100% rename from src/main/resources/assets/hbm/textures/blocks/basalt_sulfur.png rename to src/main/resources/assets/hbm/textures/blocks/ore_basalt_sulfur.png diff --git a/src/main/resources/assets/hbm/textures/blocks/ore_overlay_radgem.png b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_radgem.png new file mode 100644 index 000000000..bb30dc075 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/ore_overlay_radgem.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png new file mode 100644 index 000000000..022cf119b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png.mcmeta new file mode 100755 index 000000000..df9c61a80 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/rad_lava_flowing.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 3 + } +} diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png b/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png new file mode 100644 index 000000000..41cb6cd13 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png.mcmeta new file mode 100755 index 000000000..55438bf34 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/rad_lava_still.png.mcmeta @@ -0,0 +1,45 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9, + 8, + 7, + 6, + 5, + 4, + 3, + 2, + 1 + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png b/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png new file mode 100644 index 000000000..f804bda85 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png.mcmeta new file mode 100644 index 000000000..fc4bc9855 --- /dev/null +++ b/src/main/resources/assets/hbm/textures/blocks/volcano_rad_core.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 4 + } +} diff --git a/src/main/resources/assets/hbm/textures/items/card_aos.png b/src/main/resources/assets/hbm/textures/items/card_aos.png new file mode 100644 index 000000000..ac561fc53 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/card_aos.png differ diff --git a/src/main/resources/assets/hbm/textures/items/card_qos.png b/src/main/resources/assets/hbm/textures/items/card_qos.png new file mode 100644 index 000000000..bb254cd8b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/card_qos.png differ diff --git a/src/main/resources/assets/hbm/textures/items/gem_rad.png b/src/main/resources/assets/hbm/textures/items/gem_rad.png new file mode 100644 index 000000000..d177e51f9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/gem_rad.png differ diff --git a/src/main/resources/assets/hbm/textures/items/powder_molysite.png b/src/main/resources/assets/hbm/textures/items/powder_molysite.png new file mode 100644 index 000000000..578d26ced Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_molysite.png differ diff --git a/src/main/resources/assets/hbm/textures/items/upgrade_muffler.png b/src/main/resources/assets/hbm/textures/items/upgrade_muffler.png new file mode 100644 index 000000000..423195122 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/upgrade_muffler.png differ