From 4d39d13703490cc62f4a1ef8d0eb9965c69f7af9 Mon Sep 17 00:00:00 2001 From: SenseiKiwi Date: Wed, 25 Jun 2014 14:04:08 -0400 Subject: [PATCH] Changes to Monolith Behavior 1. Stopped Monoliths from teleporting players while in Limbo. This was a serious issue on some modpacks if players got unlucky. 2. Decreased the required Monolith aggro level to start spawning particles around a target player. The required level was so high, combined with the current Monolith speed, that players would hardly see the particles. 3. Disabled Monolith sounds in Limbo. Some of the sounds were really annoying in Limbo. Usually they only get to play for a moment before a player is teleported, but since no teleports occur in Limbo and the area is full of Monoliths, the constant noise is aggravating. It would also drown out the background music. --- .../mod_pocketDim/ticking/MobMonolith.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/ticking/MobMonolith.java b/src/main/java/StevenDimDoors/mod_pocketDim/ticking/MobMonolith.java index e19aa65..f54f515 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/ticking/MobMonolith.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/ticking/MobMonolith.java @@ -145,9 +145,13 @@ public class MobMonolith extends EntityFlying implements IMob if (player != null) { this.facePlayer(player); - if (!this.worldObj.isRemote) + if (!this.worldObj.isRemote && !(this.worldObj.provider instanceof LimboProvider)) { - // Play sounds on the server side + // Play sounds on the server side, if the player isn't in Limbo. + // Limbo is excluded to avoid drowning out its background music. + // Also, since it's a large open area with many Monoliths, some + // of the sounds that would usually play for a moment would + // keep playing constantly and would get very annoying. this.playSounds(player); } @@ -161,7 +165,8 @@ public class MobMonolith extends EntityFlying implements IMob // Teleport the target player if various conditions are met if (aggro >= MAX_AGGRO && !this.worldObj.isRemote && - properties.MonolithTeleportationEnabled && !player.capabilities.isCreativeMode) + properties.MonolithTeleportationEnabled && !player.capabilities.isCreativeMode && + !(this.worldObj.provider instanceof LimboProvider)) { this.aggro = 0; Point4D destination = LimboProvider.getLimboSkySpawn(player, properties); @@ -239,7 +244,7 @@ public class MobMonolith extends EntityFlying implements IMob this.worldObj.playSoundEffect(entityPlayer.posX, entityPlayer.posY, entityPlayer.posZ, mod_pocketDim.modid + ":tearing", 1F, (float) (1 + this.rand.nextGaussian())); this.soundTime = 100 + this.rand.nextInt(75); } - if ((aggroPercent > 0.90) && this.soundTime < 200) + if ((aggroPercent > 0.80) && this.soundTime < 200) { this.worldObj.playSoundEffect(entityPlayer.posX, entityPlayer.posY, entityPlayer.posZ, mod_pocketDim.modid + ":tearing", 7, 1F); this.soundTime = 250;