From 3d66c79ad1746aec79c032aae46f1b691e4848c8 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Sat, 24 Nov 2018 20:00:24 +0100 Subject: [PATCH] new rad system now for blocks, bomber sound loop --- assets/hbm/sounds.json | 5 +- assets/hbm/sounds/entity/planeCrash.ogg | Bin 0 -> 41119 bytes assets/hbm/sounds/entity/planeShotDown.ogg | Bin 0 -> 37459 bytes com/hbm/blocks/ModBlocks.java | 35 +++--- com/hbm/blocks/generic/BlockFallingRad.java | 46 ++++++++ com/hbm/blocks/generic/BlockOre.java | 54 ++++----- com/hbm/blocks/generic/WasteEarth.java | 49 ++++++-- com/hbm/blocks/generic/YellowBarrel.java | 27 ++++- com/hbm/entity/logic/EntityBomber.java | 19 ++- com/hbm/entity/particle/EntitySSmokeFX.java | 14 ++- com/hbm/entity/particle/EntityTSmokeFX.java | 7 +- com/hbm/items/special/ItemStarterKit.java | 1 + com/hbm/items/tool/ItemGeigerCounter.java | 33 +++++- com/hbm/main/CraftingManager.java | 1 + com/hbm/main/ModEventHandler.java | 111 ++++++++++++------ com/hbm/main/ModEventHandlerClient.java | 12 ++ com/hbm/packet/LoopedEntitySoundPacket.java | 81 +++++++++++++ com/hbm/packet/PacketDispatcher.java | 2 + com/hbm/sound/MovingSoundBomber.java | 76 ++++++++++++ com/hbm/sound/SoundLoopCentrifuge.java | 5 + .../deco/TileEntityYellowBarrel.java | 4 +- .../machine/TileEntityMachineTurbofan.java | 33 +++--- 22 files changed, 492 insertions(+), 123 deletions(-) create mode 100644 assets/hbm/sounds/entity/planeCrash.ogg create mode 100644 assets/hbm/sounds/entity/planeShotDown.ogg create mode 100644 com/hbm/blocks/generic/BlockFallingRad.java create mode 100644 com/hbm/packet/LoopedEntitySoundPacket.java create mode 100644 com/hbm/sound/MovingSoundBomber.java diff --git a/assets/hbm/sounds.json b/assets/hbm/sounds.json index 20ef72648..4aede01f1 100644 --- a/assets/hbm/sounds.json +++ b/assets/hbm/sounds.json @@ -85,7 +85,7 @@ "weapon.ciwsFiringLoop": {"category": "player", "sounds": [{"name": "weapon/ciwsFiringLoop", "stream": false}]}, "weapon.ciwsSpinup": {"category": "player", "sounds": [{"name": "weapon/ciwsSpinup", "stream": false}]}, "weapon.ciwsSpindown": {"category": "player", "sounds": [{"name": "weapon/ciwsSpindown", "stream": false}]}, - "weapon.laserBang": {"category": "player", "sounds": ["weapon/laserBang1", "weapon/laserBang2", "weapon/laserBang3"]}, + "weapon.laserBang": {"category": "player", "sounds": ["weapon/laserBang1", "weapon/laserBang2", "weapon/laserBang3", "weapon/laserBang4"]}, "weapon.uziShoot": {"category": "player", "sounds": [{"name": "weapon/uziShoot", "stream": false}]}, "weapon.silencerShoot": {"category": "player", "sounds": [{"name": "weapon/silencerShoot", "stream": false}]}, "weapon.gBounce": {"category": "player", "sounds": ["weapon/gBounce1", "weapon/gBounce2", "weapon/gBounce3"]}, @@ -105,6 +105,9 @@ "entity.rocketTakeoff": {"category": "player", "sounds": [{"name": "entity/rocketTakeoff", "stream": false}]}, "entity.bombDet": {"category": "player", "sounds": ["entity/bombDet1", "entity/bombDet2", "entity/bombDet3"]}, "entity.bombWhistle": {"category": "player", "sounds": [{"name": "entity/bombWhistle", "stream": false}]}, + "entity.bomberLoop": {"category": "player", "sounds": [{"name": "entity/bomber1", "stream": false}]}, + "entity.planeCrash": {"category": "player", "sounds": [{"name": "entity/planeCrash", "stream": false}]}, + "entity.planeShotDown": {"category": "player", "sounds": [{"name": "entity/planeShotDown", "stream": false}]}, "potatos.random": {"category": "player", "sounds": ["potatos/randResponse0", "potatos/randResponse1", "potatos/randResponse2", "potatos/randResponse3", "potatos/randResponse4", "potatos/randResponse5", "potatos/randResponse6", "potatos/randResponse7"]}, diff --git a/assets/hbm/sounds/entity/planeCrash.ogg b/assets/hbm/sounds/entity/planeCrash.ogg new file mode 100644 index 0000000000000000000000000000000000000000..be621cc12e1f74c2ec3a8c92d84968355ab26ddd GIT binary patch literal 41119 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 y@!QutE+Sw@pXf?8Ejqh$G$CtrsB>L3KxE=#Ga 0) { + + RadiationSavedData.incrementRad(world, x, z, radIn, radMax); world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); } @@ -307,13 +310,7 @@ public class BlockOre extends Block { @Override public int tickRate(World world) { - if(this == ModBlocks.block_meteor_molten) - return 30; - - if(this == ModBlocks.waste_trinitite - || this == ModBlocks.waste_trinitite_red - || this == ModBlocks.block_waste - || this == ModBlocks.block_trinitite) + if(this.radIn > 0) return 20; return 100; @@ -323,10 +320,7 @@ public class BlockOre extends Block { { super.onBlockAdded(world, x, y, z); - if(this == ModBlocks.waste_trinitite - || this == ModBlocks.waste_trinitite_red - || this == ModBlocks.block_waste - || this == ModBlocks.block_trinitite) + if(this.radIn > 0) world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); } diff --git a/com/hbm/blocks/generic/WasteEarth.java b/com/hbm/blocks/generic/WasteEarth.java index e00ed4fcf..4727dc780 100644 --- a/com/hbm/blocks/generic/WasteEarth.java +++ b/com/hbm/blocks/generic/WasteEarth.java @@ -7,6 +7,7 @@ import com.hbm.entity.mob.EntityNuclearCreeper; import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.saveddata.RadiationSavedData; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -31,14 +32,24 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; public class WasteEarth extends Block { + + private float radIn = 0.0F; + private float radMax = 0.0F; @SideOnly(Side.CLIENT) private IIcon iconTop; + @SideOnly(Side.CLIENT) private IIcon iconBottom; - public WasteEarth(Material p_i45394_1_) { - super(p_i45394_1_); - this.setTickRandomly(true); + public WasteEarth(Material mat) { + super(mat); + } + + public WasteEarth(Material mat, float rad, float max) { + super(mat); + this.setTickRandomly(true); + radIn = rad; + radMax = max; } @Override @@ -80,19 +91,19 @@ public class WasteEarth extends Block { @Override public void onEntityWalking(World p_149724_1_, int p_149724_2_, int p_149724_3_, int p_149724_4_, Entity entity) { - if (entity instanceof EntityLivingBase && this == ModBlocks.waste_earth) + /*if (entity instanceof EntityLivingBase && this == ModBlocks.waste_earth) { Library.applyRadiation((EntityLivingBase)entity, 4, 10, 0, 0); - } + }*/ if (entity instanceof EntityLivingBase && this == ModBlocks.frozen_grass) { ((EntityLivingBase) entity).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 2 * 60 * 20, 2)); } - if (entity instanceof EntityLivingBase && this == ModBlocks.waste_mycelium) + /*if (entity instanceof EntityLivingBase && this == ModBlocks.waste_mycelium) { Library.applyRadiation((EntityLivingBase)entity, 30, 14, 15, 9); - } + }*/ } @Override @@ -114,6 +125,13 @@ public class WasteEarth extends Block { @Override public void updateTick(World world, int x, int y, int z, Random rand) { + if(this.radIn > 0) { + + RadiationSavedData.incrementRad(world, x, z, radIn, radMax); + + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + if((this == ModBlocks.waste_earth || this == ModBlocks.waste_mycelium) && world.getBlock(x, y + 1, z) == Blocks.air && rand.nextInt(10) == 0 && MainRegistry.enableMycelium) { Block b0; @@ -182,5 +200,22 @@ public class WasteEarth extends Block { if(!world.isRemote) world.setBlock(x, y, z, Blocks.dirt); } + + @Override + public int tickRate(World world) { + + if(this.radIn > 0) + return 20; + + return 100; + } + + public void onBlockAdded(World world, int x, int y, int z) + { + super.onBlockAdded(world, x, y, z); + + if(this.radIn > 0) + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } } diff --git a/com/hbm/blocks/generic/YellowBarrel.java b/com/hbm/blocks/generic/YellowBarrel.java index ee1bc1a28..438d3285b 100644 --- a/com/hbm/blocks/generic/YellowBarrel.java +++ b/com/hbm/blocks/generic/YellowBarrel.java @@ -5,6 +5,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionNukeGeneric; import com.hbm.lib.RefStrings; +import com.hbm.saveddata.RadiationSavedData; import com.hbm.tileentity.deco.TileEntityYellowBarrel; import cpw.mods.fml.relauncher.Side; @@ -41,12 +42,14 @@ public class YellowBarrel extends BlockContainer { } public void explode(World p_149695_1_, int x, int y, int z) { - if(rand.nextInt(5) == 0) { + if(rand.nextInt(3) == 0) { p_149695_1_.setBlock(x, y, z, ModBlocks.toxic_block); } else { p_149695_1_.createExplosion(null, x, y, z, 18.0F, true); } ExplosionNukeGeneric.waste(p_149695_1_, x, y, z, 35); + + RadiationSavedData.incrementRad(p_149695_1_, x, z, 35, 1500); } @Override @@ -98,5 +101,27 @@ public class YellowBarrel extends BlockContainer { p_149734_1_.spawnParticle("townaura", p_149734_2_ + p_149734_5_.nextFloat(), p_149734_3_ + 1.1F, p_149734_4_ + p_149734_5_.nextFloat(), 0.0D, 0.0D, 0.0D); } + + @Override + public void updateTick(World world, int x, int y, int z, Random rand) + { + super.updateTick(world, x, y, z, rand); + + RadiationSavedData.incrementRad(world, x, z, 5, 75); + + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + + @Override + public int tickRate(World world) { + + return 20; + } + + public void onBlockAdded(World world, int x, int y, int z) + { + super.onBlockAdded(world, x, y, z); + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } } diff --git a/com/hbm/entity/logic/EntityBomber.java b/com/hbm/entity/logic/EntityBomber.java index 457fe4623..157f5cd46 100644 --- a/com/hbm/entity/logic/EntityBomber.java +++ b/com/hbm/entity/logic/EntityBomber.java @@ -10,6 +10,8 @@ import com.hbm.explosion.ExplosionChaos; import com.hbm.explosion.ExplosionLarge; import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; +import com.hbm.packet.LoopedEntitySoundPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.deco.TileEntityBomber; import com.hbm.tileentity.machine.TileEntityMachineRadar; @@ -74,6 +76,7 @@ public class EntityBomber extends Entity implements IChunkLoader { private void killBomber() { ExplosionLarge.explode(worldObj, posX, posY, posZ, 5, true, false, true); + worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:entity.planeShotDown", 25.0F, 1.0F); } @Override @@ -87,6 +90,16 @@ public class EntityBomber extends Entity implements IChunkLoader { this.setPosition(posX + motionX, posY + motionY, posZ + motionZ); + if(!worldObj.isRemote) { + + this.dataWatcher.updateObject(17, health); + + if(health > 0) + PacketDispatcher.wrapper.sendToAll(new LoopedEntitySoundPacket(this.getEntityId())); + } else { + health = this.dataWatcher.getWatchableObjectInt(17); + } + this.rotation(); if(this.health <= 0) { @@ -109,6 +122,7 @@ public class EntityBomber extends Entity implements IChunkLoader { }*/ ExplosionLarge.explodeFire(worldObj, posX, posY, posZ, 25, true, false, true); + worldObj.playSoundEffect((double)(posX + 0.5F), (double)(posY + 0.5F), (double)(posZ + 0.5F), "hbm:entity.planeCrash", 10.0F, 1.0F); return; } @@ -298,6 +312,7 @@ public class EntityBomber extends Entity implements IChunkLoader { public void entityInit() { init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY)); this.dataWatcher.addObject(16, Byte.valueOf((byte)0)); + this.dataWatcher.addObject(17, Integer.valueOf((int)50)); } @Override @@ -307,8 +322,9 @@ public class EntityBomber extends Entity implements IChunkLoader { bombStop = nbt.getInteger("bombStop"); bombRate = nbt.getInteger("bombRate"); type = nbt.getInteger("type"); - + this.getDataWatcher().updateObject(16, nbt.getByte("style")); + this.getDataWatcher().updateObject(17, nbt.getInteger("health")); this.setSize(8.0F, 4.0F); } @@ -320,6 +336,7 @@ public class EntityBomber extends Entity implements IChunkLoader { nbt.setInteger("bombRate", bombRate); nbt.setInteger("type", type); nbt.setByte("style", this.getDataWatcher().getWatchableObjectByte(16)); + nbt.setInteger("health", this.getDataWatcher().getWatchableObjectInt(17)); } protected void rotation() { diff --git a/com/hbm/entity/particle/EntitySSmokeFX.java b/com/hbm/entity/particle/EntitySSmokeFX.java index 1b0d87995..ae4eedf61 100644 --- a/com/hbm/entity/particle/EntitySSmokeFX.java +++ b/com/hbm/entity/particle/EntitySSmokeFX.java @@ -46,9 +46,9 @@ public class EntitySSmokeFX extends EntityModFX this.prevPosY = this.posY; this.prevPosZ = this.posZ; - if(maxAge < 100) + if(maxAge < 25) { - maxAge = rand.nextInt(21) + 65; + maxAge = rand.nextInt(6) + 25; } this.particleAge++; @@ -58,15 +58,19 @@ public class EntitySSmokeFX extends EntityModFX this.setDead(); } - this.motionX *= 0.9599999785423279D; - this.motionY *= 0.9599999785423279D; - this.motionZ *= 0.9599999785423279D; + this.motionX *= 0.7599999785423279D; + this.motionY *= 0.7599999785423279D; + this.motionZ *= 0.7599999785423279D; if (this.onGround) { this.motionX *= 0.699999988079071D; this.motionZ *= 0.699999988079071D; } + + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; } @Override diff --git a/com/hbm/entity/particle/EntityTSmokeFX.java b/com/hbm/entity/particle/EntityTSmokeFX.java index 799894d61..e0c5cc87d 100644 --- a/com/hbm/entity/particle/EntityTSmokeFX.java +++ b/com/hbm/entity/particle/EntityTSmokeFX.java @@ -4,9 +4,6 @@ import net.minecraft.world.World; public class EntityTSmokeFX extends EntityModFX { - float smokeParticleScale; - public int particleAge; - public int maxAge; private static final String __OBFID = "CL_00000924"; public EntityTSmokeFX(World world) { @@ -47,9 +44,9 @@ public class EntityTSmokeFX extends EntityModFX this.prevPosY = this.posY; this.prevPosZ = this.posZ; - if(maxAge < 100) + if(maxAge < 25) { - maxAge = rand.nextInt(21) + 65; + maxAge = rand.nextInt(6) + 25; } this.particleAge++; diff --git a/com/hbm/items/special/ItemStarterKit.java b/com/hbm/items/special/ItemStarterKit.java index 179daa038..4b146c141 100644 --- a/com/hbm/items/special/ItemStarterKit.java +++ b/com/hbm/items/special/ItemStarterKit.java @@ -412,6 +412,7 @@ public class ItemStarterKit extends Item { player.inventory.addItemStackToInventory(new ItemStack(ModItems.custom_dirty, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.custom_dirty, 1)); player.inventory.addItemStackToInventory(new ItemStack(ModItems.custom_schrab, 1)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.custom_fall, 1)); } if(this == ModItems.grenade_kit) diff --git a/com/hbm/items/tool/ItemGeigerCounter.java b/com/hbm/items/tool/ItemGeigerCounter.java index f7c3a8eb3..78d35052b 100644 --- a/com/hbm/items/tool/ItemGeigerCounter.java +++ b/com/hbm/items/tool/ItemGeigerCounter.java @@ -6,6 +6,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; +import com.hbm.saveddata.RadEntitySavedData; import com.hbm.saveddata.RadiationSavedData; import net.minecraft.block.Block; @@ -14,6 +15,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import scala.Int; @@ -36,7 +38,11 @@ public class ItemGeigerCounter extends Item { if(getInt(stack, "timer") % 5 == 0) { if(x > 0) { List list = new ArrayList(); - + + if(x < 1) + list.add(0); + if(x < 5) + list.add(0); if(x < 10) list.add(1); if(x > 5 && x < 15) @@ -50,7 +56,10 @@ public class ItemGeigerCounter extends Item { if(x > 25) list.add(6); - world.playSoundAtEntity(entity, "hbm:item.geiger" + list.get(rand.nextInt(list.size())), 1.0F, 1.0F); + int r = list.get(rand.nextInt(list.size())); + + if(r > 0) + world.playSoundAtEntity(entity, "hbm:item.geiger" + r, 1.0F, 1.0F); } else if(rand.nextInt(50) == 0) { world.playSoundAtEntity(entity, "hbm:item.geiger"+ (1 + rand.nextInt(1)), 1.0F, 1.0F); } @@ -93,4 +102,24 @@ public class ItemGeigerCounter extends Item { return false; } + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(!world.isRemote) { + world.playSoundAtEntity(player, "hbm:item.techBoop", 1.0F, 1.0F); + + RadEntitySavedData eData = RadEntitySavedData.getData(player.worldObj); + int eRad = (int)eData.getRadFromEntity(player); + + RadiationSavedData data = RadiationSavedData.getData(player.worldObj); + Chunk chunk = world.getChunkFromBlockCoords((int)player.posX, (int)player.posZ); + int rads = (int)Math.ceil(data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition)); + + player.addChatMessage(new ChatComponentText("Current chunk radiation: " + rads + " RAD/s")); + player.addChatMessage(new ChatComponentText("Player contamination: " + eRad + " RAD")); + } + + return stack; + } + } diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 7ca35e58f..d63d4c4f5 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -1319,6 +1319,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_calamity_dual, 1), new Object[] { "BBM", " PI", "BBM", 'P', "plateIron", 'B', ModItems.pipes_steel, 'M', ModItems.mechanism_rifle_1, 'I', "ingotSteel" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_calamity_ammo, 8), new Object[] { "S", "C", "G", 'S', "plateSteel", 'C', "plateCopper", 'G', Items.gunpowder })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.analyzer, 1), new Object[] { " S ", "SGS", " S ", 'S', "plateSteel", 'G', "paneGlassColorless" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ModItems.plate_polymer, 'P', "plateSaturnite", 'C', ModItems.circuit_red_copper, 'H', ModItems.hull_small_steel, 'W', ModItems.coil_copper })); GameRegistry.addShapelessRecipe(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.assembly_template, 1, OreDictionary.WILDCARD_VALUE) }); GameRegistry.addShapelessRecipe(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.chemistry_template, 1, OreDictionary.WILDCARD_VALUE) }); diff --git a/com/hbm/main/ModEventHandler.java b/com/hbm/main/ModEventHandler.java index 676c12cb9..aec3cd156 100644 --- a/com/hbm/main/ModEventHandler.java +++ b/com/hbm/main/ModEventHandler.java @@ -100,24 +100,6 @@ public class ModEventHandler //try { ///// - if(event.world != null && !event.world.isRemote) { - if(!event.world.playerEntities.isEmpty()) { - - RadiationSavedData data = RadiationSavedData.getData(event.world); - RadEntitySavedData eData = RadEntitySavedData.getData(event.world); - - for(Object o : event.world.playerEntities) { - - EntityPlayer player = (EntityPlayer)o; - PacketDispatcher.wrapper.sendTo(new RadSurveyPacket(eData.getRadFromEntity(player)), (EntityPlayerMP) player); - } - - if(event.world.getTotalWorldTime() % 20 == 0) { - data.updateSystem(); - } - } - } - if(event.world != null && !event.world.isRemote && event.world.provider.isSurfaceWorld() && MainRegistry.enableMeteorStrikes) { if(event.world.rand.nextInt(meteorShower > 0 ? MainRegistry.meteorShowerChance : MainRegistry.meteorStrikeChance) == 0) { if(!event.world.playerEntities.isEmpty()) { @@ -152,6 +134,19 @@ public class ModEventHandler if(event.world != null && !event.world.isRemote) { if(!event.world.loadedEntityList.isEmpty()) { + + RadiationSavedData data = RadiationSavedData.getData(event.world); + RadEntitySavedData eData = RadEntitySavedData.getData(event.world); + + for(Object o : event.world.playerEntities) { + + EntityPlayer player = (EntityPlayer)o; + PacketDispatcher.wrapper.sendTo(new RadSurveyPacket(eData.getRadFromEntity(player)), (EntityPlayerMP) player); + } + + if(event.world.getTotalWorldTime() % 20 == 0) { + data.updateSystem(); + } List oList = new ArrayList(); oList.addAll(event.world.loadedEntityList); @@ -161,7 +156,70 @@ public class ModEventHandler //effect for radiation EntityLivingBase entity = (EntityLivingBase) e; - PotionEffect effect = entity.getActivePotionEffect(HbmPotion.radiation); + + if(event.world.getTotalWorldTime() % 20 == 0) { + + Chunk chunk = entity.worldObj.getChunkFromBlockCoords((int)entity.posX, (int)entity.posZ); + float rad = data.getRadNumFromCoord(chunk.xPosition, chunk.zPosition); + + if(rad > 0) { + eData.setRadForEntity(entity, eData.getRadFromEntity(entity) + rad * 0.5F); + } + } + + float eRad = eData.getRadFromEntity(entity); + + if(eRad < 200) + continue; + + if(eRad >= 1000) { + entity.attackEntityFrom(ModDamageSource.radiation, 1000); + } else if(eRad >= 800) { + if(event.world.rand.nextInt(300) == 0) + entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 30, 0)); + if(event.world.rand.nextInt(300) == 0) + entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 10 * 20, 2)); + if(event.world.rand.nextInt(300) == 0) + entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 10 * 20, 2)); + if(event.world.rand.nextInt(500) == 0) + entity.addPotionEffect(new PotionEffect(Potion.poison.id, 3 * 20, 2)); + if(event.world.rand.nextInt(700) == 0) + entity.addPotionEffect(new PotionEffect(Potion.wither.id, 3 * 20, 1)); + if(event.world.rand.nextInt(300) == 0) + entity.addPotionEffect(new PotionEffect(Potion.hunger.id, 5 * 20, 3)); + + } else if(eRad >= 600) { + if(event.world.rand.nextInt(300) == 0) + entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 30, 0)); + if(event.world.rand.nextInt(300) == 0) + entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 10 * 20, 2)); + if(event.world.rand.nextInt(300) == 0) + entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 10 * 20, 2)); + if(event.world.rand.nextInt(500) == 0) + entity.addPotionEffect(new PotionEffect(Potion.poison.id, 3 * 20, 1)); + if(event.world.rand.nextInt(300) == 0) + entity.addPotionEffect(new PotionEffect(Potion.hunger.id, 3 * 20, 3)); + + } else if(eRad >= 400) { + if(event.world.rand.nextInt(300) == 0) + entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 30, 0)); + if(event.world.rand.nextInt(500) == 0) + entity.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 5 * 20, 0)); + if(event.world.rand.nextInt(300) == 0) + entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 5 * 20, 1)); + if(event.world.rand.nextInt(500) == 0) + entity.addPotionEffect(new PotionEffect(Potion.hunger.id, 3 * 20, 2)); + + } else if(eRad >= 200) { + if(event.world.rand.nextInt(300) == 0) + entity.addPotionEffect(new PotionEffect(Potion.confusion.id, 5 * 20, 0)); + if(event.world.rand.nextInt(500) == 0) + entity.addPotionEffect(new PotionEffect(Potion.weakness.id, 5 * 20, 0)); + if(event.world.rand.nextInt(700) == 0) + entity.addPotionEffect(new PotionEffect(Potion.hunger.id, 3 * 20, 2)); + } + + /*PotionEffect effect = entity.getActivePotionEffect(HbmPotion.radiation); if(effect != null && !entity.isDead && entity.getHealth() > 0) { @@ -266,23 +324,10 @@ public class ModEventHandler entity.removePotionEffect(Potion.digSlowdown.id); if(entity.isPotionActive(Potion.moveSlowdown)) entity.removePotionEffect(Potion.moveSlowdown.id); - } + }*/ //effect end //apply radiation - - if(event.world.getTotalWorldTime() % 20 == 0) { - - RadiationSavedData chunkData = RadiationSavedData.getData(event.world); - RadEntitySavedData entityData = RadEntitySavedData.getData(event.world); - - Chunk chunk = entity.worldObj.getChunkFromBlockCoords((int)entity.posX, (int)entity.posZ); - float rad = chunkData.getRadNumFromCoord(chunk.xPosition, chunk.zPosition); - - if(rad > 0) { - entityData.setRadForEntity(entity, entityData.getRadFromEntity(entity) + rad * 0.5F); - } - } } } } diff --git a/com/hbm/main/ModEventHandlerClient.java b/com/hbm/main/ModEventHandlerClient.java index 0963d4a94..e3a0fba16 100644 --- a/com/hbm/main/ModEventHandlerClient.java +++ b/com/hbm/main/ModEventHandlerClient.java @@ -18,12 +18,14 @@ import com.hbm.sound.MovingSoundPlayerLoop.EnumHbmSound; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.WorldClient; +import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.ResourceLocation; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; +import net.minecraftforge.client.event.RenderPlayerEvent; import net.minecraftforge.client.event.sound.PlaySoundEvent17; public class ModEventHandlerClient { @@ -47,6 +49,16 @@ public class ModEventHandlerClient { } } } + + /*@SubscribeEvent + public void renderGunPull(RenderPlayerEvent.Specials.Post event) { + + RenderPlayer renderer = event.renderer; + + //TESTING + renderer.modelBipedMain.bipedLeftArm.rotateAngleX += 90; + + }*/ @SubscribeEvent public void onPlaySound(PlaySoundEvent17 e) { diff --git a/com/hbm/packet/LoopedEntitySoundPacket.java b/com/hbm/packet/LoopedEntitySoundPacket.java new file mode 100644 index 000000000..2ceed5d8d --- /dev/null +++ b/com/hbm/packet/LoopedEntitySoundPacket.java @@ -0,0 +1,81 @@ +package com.hbm.packet; + +import com.hbm.entity.logic.EntityBomber; +import com.hbm.sound.MovingSoundBomber; +import com.hbm.sound.SoundLoopAssembler; +import com.hbm.sound.SoundLoopBroadcaster; +import com.hbm.sound.SoundLoopCentrifuge; +import com.hbm.sound.SoundLoopChemplant; +import com.hbm.sound.SoundLoopIGen; +import com.hbm.sound.SoundLoopMiner; +import com.hbm.sound.SoundLoopTurbofan; +import com.hbm.tileentity.machine.TileEntityBroadcaster; +import com.hbm.tileentity.machine.TileEntityMachineAssembler; +import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; +import com.hbm.tileentity.machine.TileEntityMachineChemplant; +import com.hbm.tileentity.machine.TileEntityMachineGasCent; +import com.hbm.tileentity.machine.TileEntityMachineIGenerator; +import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; +import com.hbm.tileentity.machine.TileEntityMachineTurbofan; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; + +public class LoopedEntitySoundPacket implements IMessage { + + int entityID; + + public LoopedEntitySoundPacket() + { + + } + + public LoopedEntitySoundPacket(int entityID) + { + this.entityID = entityID; + } + + @Override + public void fromBytes(ByteBuf buf) { + entityID = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(entityID); + } + + public static class Handler implements IMessageHandler { + + @Override + //Tamaized, I love you! + @SideOnly(Side.CLIENT) + public IMessage onMessage(LoopedEntitySoundPacket m, MessageContext ctx) { + + Entity e = Minecraft.getMinecraft().theWorld.getEntityByID(m.entityID); + + if(e instanceof EntityBomber) { + + boolean flag = true; + for(int i = 0; i < MovingSoundBomber.globalSoundList.size(); i++) { + if(MovingSoundBomber.globalSoundList.get(i).bomber == e && !MovingSoundBomber.globalSoundList.get(i).isDonePlaying()) + flag = false; + } + + if(flag) { + Minecraft.getMinecraft().getSoundHandler().playSound(new MovingSoundBomber(new ResourceLocation("hbm:entity.bomberLoop"), (EntityBomber)e)); + } + } + + return null; + } + } +} diff --git a/com/hbm/packet/PacketDispatcher.java b/com/hbm/packet/PacketDispatcher.java index 55a2a8f90..f41ebea3d 100644 --- a/com/hbm/packet/PacketDispatcher.java +++ b/com/hbm/packet/PacketDispatcher.java @@ -73,6 +73,8 @@ public class PacketDispatcher { wrapper.registerMessage(ParticleBurstPacket.Handler.class, ParticleBurstPacket.class, i++, Side.CLIENT); //Packet to send chunk radiation info to individual players wrapper.registerMessage(RadSurveyPacket.Handler.class, RadSurveyPacket.class, i++, Side.CLIENT); + //Entity sound packet that keeps client and server separated + wrapper.registerMessage(LoopedEntitySoundPacket.Handler.class, LoopedEntitySoundPacket.class, i++, Side.CLIENT); } } diff --git a/com/hbm/sound/MovingSoundBomber.java b/com/hbm/sound/MovingSoundBomber.java new file mode 100644 index 000000000..e27a49cee --- /dev/null +++ b/com/hbm/sound/MovingSoundBomber.java @@ -0,0 +1,76 @@ +package com.hbm.sound; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.logic.EntityBomber; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.ISound; +import net.minecraft.client.audio.MovingSound; +import net.minecraft.client.entity.EntityClientPlayerMP; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class MovingSoundBomber extends MovingSound { + + public static List globalSoundList = new ArrayList(); + public EntityBomber bomber; + + public MovingSoundBomber(ResourceLocation loc, EntityBomber bomber) { + super(loc); + this.bomber = bomber; + globalSoundList.add(this); + this.repeat = true; + this.field_147666_i = ISound.AttenuationType.NONE; + } + + @Override + public void update() { + + float iVolume = 150; + + if(this.bomber == null || this.bomber.isDead || this.bomber.health <= 0) { + this.stop(); + } else { + this.xPosF = (float)bomber.posX; + this.yPosF = (float)bomber.posY; + this.zPosF = (float)bomber.posZ; + + EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; + float f = 0; + + if(player != null) { + f = (float)Math.sqrt(Math.pow(xPosF - player.posX, 2) + Math.pow(yPosF - player.posY, 2) + Math.pow(zPosF - player.posZ, 2)); + volume = (f / iVolume) * -2 + 2; + } else { + volume = iVolume; + } + } + + if(!Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(this)) { + stop(); + } + + } + + public void stop() { + this.donePlaying = true; + this.repeat = false; + + globalSoundList.remove(this); + } + + public void setPitch(float f) { + this.field_147663_c = f; + } + + public void setVolume(float f) { + this.volume = f; + } + + public void setDone(boolean b) { + this.donePlaying = b; + } + +} diff --git a/com/hbm/sound/SoundLoopCentrifuge.java b/com/hbm/sound/SoundLoopCentrifuge.java index f906f6dd6..62eaa6d4d 100644 --- a/com/hbm/sound/SoundLoopCentrifuge.java +++ b/com/hbm/sound/SoundLoopCentrifuge.java @@ -8,6 +8,7 @@ import com.hbm.tileentity.machine.TileEntityMachineChemplant; import com.hbm.tileentity.machine.TileEntityMachineGasCent; import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; +import net.minecraft.client.Minecraft; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; @@ -43,6 +44,10 @@ public class SoundLoopCentrifuge extends SoundLoopMachine { if(!plant.isProgressing) this.donePlaying = true; } + + if(!Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(this)) { + stop(); + } } public TileEntity getTE() { diff --git a/com/hbm/tileentity/deco/TileEntityYellowBarrel.java b/com/hbm/tileentity/deco/TileEntityYellowBarrel.java index 017a421ac..b7b083afb 100644 --- a/com/hbm/tileentity/deco/TileEntityYellowBarrel.java +++ b/com/hbm/tileentity/deco/TileEntityYellowBarrel.java @@ -26,7 +26,7 @@ import net.minecraft.util.Vec3; public class TileEntityYellowBarrel extends TileEntity { - @Override + /*@Override public void updateEntity() { int strength = 4; float f = strength; @@ -71,7 +71,7 @@ public class TileEntityYellowBarrel extends TileEntity { } strength = (int)f; - } + }*/ @Override @SideOnly(Side.CLIENT) diff --git a/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 4c222f0c7..111a9b8ff 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -7,6 +7,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.particle.EntityDSmokeFX; import com.hbm.entity.particle.EntityGasFlameFX; +import com.hbm.entity.particle.EntitySSmokeFX; import com.hbm.entity.particle.EntityTSmokeFX; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IConsumer; @@ -280,14 +281,13 @@ public class TileEntityMachineTurbofan extends TileEntity implements ISidedInven for(int i = 0; i < afterburner * 5; i++) if(afterburner > 0 && rand.nextInt(2) == 0) { - EntityGasFlameFX smoke = new EntityGasFlameFX(worldObj); + EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 4.25; - //smoke.motionX = rand.nextGaussian() * 0.3; - //smoke.motionY = rand.nextGaussian() * 0.3; + smoke.motionX = rand.nextGaussian() * 0.3; + smoke.motionY = rand.nextGaussian() * 0.3; smoke.motionZ = 2.5 + (rand.nextFloat() * 3.5); - //smoke.isBurn = true; if(!worldObj.isRemote) worldObj.spawnEntityInWorld(smoke); } @@ -333,14 +333,13 @@ public class TileEntityMachineTurbofan extends TileEntity implements ISidedInven for(int i = 0; i < afterburner * 5; i++) if(afterburner > 0 && rand.nextInt(2) == 0) { - EntityGasFlameFX smoke = new EntityGasFlameFX(worldObj); + EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); smoke.posX = xCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord - 4.25; - //smoke.motionX = rand.nextGaussian() * 0.3; - //smoke.motionY = rand.nextGaussian() * 0.3; + smoke.motionX = rand.nextGaussian() * 0.3; + smoke.motionY = rand.nextGaussian() * 0.3; smoke.motionZ = -2.5 - (rand.nextFloat() * 3.5); - //smoke.isBurn = true; if(!worldObj.isRemote) worldObj.spawnEntityInWorld(smoke); } @@ -378,22 +377,21 @@ public class TileEntityMachineTurbofan extends TileEntity implements ISidedInven smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.motionX = 2.5 + (rand.nextFloat() * 3.5); - //smoke.motionY = rand.nextGaussian() * 0.3; - //smoke.motionZ = rand.nextGaussian() * 0.3; + smoke.motionY = rand.nextGaussian() * 0.3; + smoke.motionZ = rand.nextGaussian() * 0.3; if(!worldObj.isRemote) worldObj.spawnEntityInWorld(smoke); } for(int i = 0; i < afterburner * 5; i++) if(afterburner > 0 && rand.nextInt(2) == 0) { - EntityGasFlameFX smoke = new EntityGasFlameFX(worldObj); + EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); smoke.posX = xCoord + 4.25; smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.motionX = 2.5 + (rand.nextFloat() * 3.5); - //smoke.motionY = rand.nextGaussian() * 0.3; - //smoke.motionZ = rand.nextGaussian() * 0.3; - //smoke.isBurn = true; + smoke.motionY = rand.nextGaussian() * 0.3; + smoke.motionZ = rand.nextGaussian() * 0.3; if(!worldObj.isRemote) worldObj.spawnEntityInWorld(smoke); } @@ -439,14 +437,13 @@ public class TileEntityMachineTurbofan extends TileEntity implements ISidedInven for(int i = 0; i < afterburner * 5; i++) if(afterburner > 0 && rand.nextInt(2) == 0) { - EntityGasFlameFX smoke = new EntityGasFlameFX(worldObj); + EntitySSmokeFX smoke = new EntitySSmokeFX(worldObj); smoke.posX = xCoord - 4.25; smoke.posY = yCoord + 1.5 + (rand.nextGaussian() * 0.5); smoke.posZ = zCoord + 0.5 + (rand.nextGaussian() * 0.5); smoke.motionX = -2.5 - (rand.nextFloat() * 3.5); - //smoke.motionY = rand.nextGaussian() * 0.3; - //smoke.motionZ = rand.nextGaussian() * 0.3; - //smoke.isBurn = true; + smoke.motionY = rand.nextGaussian() * 0.3; + smoke.motionZ = rand.nextGaussian() * 0.3; if(!worldObj.isRemote) worldObj.spawnEntityInWorld(smoke); }