@@ -48,8 +48,7 @@ private Fx() {}
4848 public static final Key THROW_SNOWBALL = Key .key ("polyp:throw_snowball" );
4949 public static final Key THROW_EGG = Key .key ("polyp:throw_egg" );
5050 public static final Key THROW_PEARL = Key .key ("polyp:throw_pearl" );
51- /** Pearl landed and moved its thrower. 1.8 has none ({@code EntityEnderPearl} is silent; {@code mob.endermen.portal}
52- * is the enderman's own), so this is a server addition there - unregistered in {@link #vanilla18()}. */
51+ /** Pearl landed and moved its thrower. 1.8 has no pearl sound, so {@link #vanilla18()} leaves it unregistered. */
5352 public static final Key PEARL_TELEPORT = Key .key ("polyp:pearl_teleport" );
5453 /** Fire charge thrown from the hand. */
5554 public static final Key THROW_FIREBALL = Key .key ("polyp:throw_fireball" );
@@ -62,6 +61,8 @@ private Fx() {}
6261 public static final Key ARROW_HIT = Key .key ("polyp:arrow_hit" );
6362 /** Arrow struck a target - the hit-marker "ding" to the SHOOTER only. Unregistered by default; a PvP preset registers it. */
6463 public static final Key ARROW_HIT_PLAYER = Key .key ("polyp:arrow_hit_player" );
64+ /** A burning entity doused by water (1.8 {@code random.fizz}); heard by viewers, never the doused player. */
65+ public static final Key FIRE_EXTINGUISH = Key .key ("polyp:fire_extinguish" );
6566 /** TNT ignited (primed TNT spawned). */
6667 public static final Key TNT_PRIME = Key .key ("polyp:tnt_prime" );
6768 /** The big explosion flash; played for power >= 2 (the 1.8 client's hugeexplosion-vs-explode gate). */
@@ -106,6 +107,9 @@ public static void play(@NotNull Services services, @NotNull Key key, @NotNull F
106107 // 1.8 item pickup
107108 .register (ITEM_PICKUP , ctx -> ctx .sound (SoundEvent .ENTITY_ITEM_PICKUP , Sound .Source .PLAYER , 0.2f ,
108109 jitterPitch (0.7f ) * 2.0f ))
110+ // 1.8 random.fizz 0.7F / 1.6F +- 0.4 dual-rand
111+ .register (FIRE_EXTINGUISH , ctx -> ctx .viewerSound (SoundEvent .ENTITY_GENERIC_EXTINGUISH_FIRE ,
112+ Sound .Source .NEUTRAL , 0.7f , 0.6f + jitterPitch (0.4f )))
109113 .register (THROW_SNOWBALL , throwSound (SoundEvent .ENTITY_SNOWBALL_THROW , Sound .Source .NEUTRAL ))
110114 .register (THROW_EGG , throwSound (SoundEvent .ENTITY_EGG_THROW , Sound .Source .PLAYER ))
111115 .register (THROW_PEARL , throwSound (SoundEvent .ENTITY_ENDER_PEARL_THROW , Sound .Source .NEUTRAL ))
@@ -136,11 +140,8 @@ public static void play(@NotNull Services services, @NotNull Key key, @NotNull F
136140 return ctx -> ctx .sound (SoundEvent .ENTITY_PLAYER_TELEPORT , Sound .Source .PLAYER , 1.0f , 1.0f );
137141 }
138142
139- /**
140- * Hypixel BEDWARS only: the pearl landing reaches the whole lobby at full volume, however far away the thrower
141- * is - an audible tell that someone pearled. SkyWars and their other modes keep the positional
142- * {@link #pearlTeleport()}, so this belongs on a per-mode registry, not the shared Hypixel one.
143- */
143+ /** Hypixel BEDWARS only (their other modes stay positional): the landing reaches the whole game at full
144+ * volume regardless of distance, so it rides a per-mode registry, not the shared Hypixel one. */
144145 public static @ NotNull FxHandler pearlTeleportGameWide () {
145146 return ctx -> ctx .globalSound (SoundEvent .ENTITY_PLAYER_TELEPORT , Sound .Source .PLAYER , 1.0f , 1.0f );
146147 }
0 commit comments