diff --git a/build.gradle b/build.gradle index e55195d..d36a492 100644 --- a/build.gradle +++ b/build.gradle @@ -137,7 +137,7 @@ configurations { dependencies { implementation "curse.maven:cloth-config-348521:5623420" - implementation "curse.maven:geckolib-388172:6920810" + implementation "software.bernie.geckolib:geckolib-neoforge-1.21.1:4.7.7" } // This block of code expands all declared replace properties in the specified resource targets. diff --git a/src/main/java/com/vinlanx/explosionoverhaul/AmbientExplosionManager.java b/src/main/java/com/vinlanx/explosionoverhaul/AmbientExplosionManager.java index 8248068..e5db31d 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/AmbientExplosionManager.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/AmbientExplosionManager.java @@ -29,7 +29,6 @@ import net.minecraft.util.Mth; import net.minecraft.util.RandomSource; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; -import net.neoforged.neoforge.network.PacketDistributor; public class AmbientExplosionManager { private static final Map playerTimers = new HashMap(); @@ -310,7 +309,7 @@ public class AmbientExplosionManager { explosionIsInCaveLocation = true; playerInCave = true; if (isShellingShot || !((Boolean)Config.COMMON.ambient.soundTypes.enableAmbientCaveDust.get()).booleanValue()) break; - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new SpawnAmbientCaveDustPacket(power)); + PacketHandler.sendToPlayer(player, new SpawnAmbientCaveDustPacket(power)); if (this.random.m_188500_() < 0.3 + (double)power * 0.02) { ExplosionOverhaul.addDelayedSound(player, (SoundEvent)ModSounds.DUST_SOUND.get(), SoundSource.AMBIENT, (float)player.m_20185_(), (float)player.m_20186_(), (float)player.m_20189_(), 0.7f, 1.0f, player.m_217043_().m_188505_(), baseDelay + (long)this.random.m_188503_(40)); } @@ -342,7 +341,7 @@ public class AmbientExplosionManager { ServerExplosionHandler.CameraShakeProfile shakeProfile = AmbientExplosionManager.determineCameraShakeProfile(power, distance, playerInCave, level); if (shakeProfile.intensity() > 0.0f && shakeProfile.durationTicks() > 0) { int delayTicks = (int)Math.max(0L, Math.round(distance / speedOfSound)); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new CameraShakePacket(shakeProfile.intensity(), shakeProfile.durationTicks(), shakeProfile.pushIntensity(), delayTicks)); + PacketHandler.sendToPlayer(player, new CameraShakePacket(shakeProfile.intensity(), shakeProfile.durationTicks(), shakeProfile.pushIntensity(), delayTicks)); } if (power >= (lampFlickerPowerThreshold = distance > 1000.0 ? 31.0f : (distance > 500.0 ? 20.0f : (distance > 50.0 ? 10.0f : 4.0f)))) { RedstoneLampEffects.triggerLampFlicker(level, player, power, delayTicksEffect, distance); @@ -352,7 +351,7 @@ public class AmbientExplosionManager { if (useAmbientSound) { ExplosionOverhaul.addDelayedSound(player, sound, SoundSource.AMBIENT, (float)player.m_20185_(), (float)player.m_20186_(), (float)player.m_20189_(), volume, pitch, player.m_217043_().m_188505_(), delayTicksEffect); } else { - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new PlayTrackedSoundPacket(finalExplosionPos, soundId, volume, pitch, delayTicksEffect, playerInHouse)); + PacketHandler.sendToPlayer(player, new PlayTrackedSoundPacket(finalExplosionPos, soundId, volume, pitch, delayTicksEffect, playerInHouse)); } } } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/BlockIndexManager.java b/src/main/java/com/vinlanx/explosionoverhaul/BlockIndexManager.java index 24726f2..3fab8f0 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/BlockIndexManager.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/BlockIndexManager.java @@ -87,7 +87,6 @@ import net.neoforged.neoforge.event.server.ServerStoppedEvent; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.Mod; import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.neoforge.network.PacketDistributor; import net.neoforged.neoforge.server.ServerLifecycleHooks; @EventBusSubscriber @@ -386,7 +385,7 @@ public class BlockIndexManager { if (server != null) { for (ServerPlayer player : server.m_6846_().m_11314_()) { if (!BlockIndexManager.isPlayerAuthorized(player)) continue; - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)packet); + PacketHandler.sendToPlayer(player, packet); } } } @@ -402,7 +401,7 @@ public class BlockIndexManager { if (server != null) { for (ServerPlayer player : server.m_6846_().m_11314_()) { if (!BlockIndexManager.isPlayerAuthorized(player)) continue; - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)packet); + PacketHandler.sendToPlayer(player, packet); } } } @@ -414,7 +413,7 @@ public class BlockIndexManager { private static void sendScanPromptPacket(ServerPlayer player) { try { ScanPromptPacket packet = new ScanPromptPacket(true); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)packet); + PacketHandler.sendToPlayer(player, packet); ExplosionOverhaul.LOGGER.info("Sent scan prompt to authorized player: {}", (Object)player.m_7755_().getString()); } catch (Exception e) { @@ -459,14 +458,14 @@ public class BlockIndexManager { try { if (requestingPlayer != null && requestingPlayer.m_6084_()) { ScanPromptPacket packet = new ScanPromptPacket(false); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> requestingPlayer), (Object)packet); + PacketHandler.sendToPlayer(requestingPlayer, packet); } else { MinecraftServer server = ServerLifecycleHooks.getCurrentServer(); if (server != null) { for (ServerPlayer player : server.m_6846_().m_11314_()) { if (!BlockIndexManager.isPlayerAuthorized(player)) continue; ScanPromptPacket packet = new ScanPromptPacket(false); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)packet); + PacketHandler.sendToPlayer(player, packet); } } } @@ -495,7 +494,7 @@ public class BlockIndexManager { for (ServerPlayer serverPlayer : currentServer.m_6846_().m_11314_()) { if (!BlockIndexManager.isPlayerAuthorized(serverPlayer)) continue; packet = new ScanLoadPromptPacket(false); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> serverPlayer), (Object)packet); + PacketHandler.sendToPlayer(serverPlayer, packet); ExplosionOverhaul.LOGGER.debug("Hidden load prompt for authorized player: {}", (Object)serverPlayer.m_7755_().getString()); } } @@ -522,9 +521,9 @@ public class BlockIndexManager { for (ServerPlayer serverPlayer : server.m_6846_().m_11314_()) { if (!BlockIndexManager.isPlayerAuthorized(serverPlayer)) continue; ScanLoadPromptPacket hideLoadPacket = new ScanLoadPromptPacket(false); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> serverPlayer), (Object)hideLoadPacket); + PacketHandler.sendToPlayer(serverPlayer, hideLoadPacket); ScanPromptPacket showScanPacket = new ScanPromptPacket(true); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> serverPlayer), (Object)showScanPacket); + PacketHandler.sendToPlayer(serverPlayer, showScanPacket); ExplosionOverhaul.LOGGER.debug("Switched prompts for authorized player: {}", (Object)serverPlayer.m_7755_().getString()); } } @@ -554,14 +553,14 @@ public class BlockIndexManager { try { if (requestingPlayer != null && requestingPlayer.m_6084_()) { ScanPromptPacket packet = new ScanPromptPacket(false); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> requestingPlayer), (Object)packet); + PacketHandler.sendToPlayer(requestingPlayer, packet); } else { MinecraftServer server = ServerLifecycleHooks.getCurrentServer(); if (server != null) { for (ServerPlayer player : server.m_6846_().m_11314_()) { if (!BlockIndexManager.isPlayerAuthorized(player)) continue; ScanPromptPacket packet = new ScanPromptPacket(false); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)packet); + PacketHandler.sendToPlayer(player, packet); } } } @@ -606,7 +605,7 @@ public class BlockIndexManager { serverScanDecisionMade = false; try { ScanPromptPacket packet = new ScanPromptPacket(true); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)packet); + PacketHandler.sendToPlayer(player, packet); ExplosionOverhaul.LOGGER.info("BlockIndexManager: showing rescan prompt to player: {}", (Object)player.m_7755_().getString()); } catch (Exception e) { @@ -621,7 +620,7 @@ public class BlockIndexManager { for (ServerPlayer player : server.m_6846_().m_11314_()) { if (!BlockIndexManager.isPlayerAuthorized(player)) continue; ScanPromptPacket packet = new ScanPromptPacket(show); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)packet); + PacketHandler.sendToPlayer(player, packet); if (!show) continue; ExplosionOverhaul.LOGGER.debug("Sent scan prompt to authorized player: {}", (Object)player.m_7755_().getString()); } @@ -1186,7 +1185,7 @@ public class BlockIndexManager { hasSaveFile = true; try { ScanLoadPromptPacket packet = new ScanLoadPromptPacket(true); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player2), (Object)packet); + PacketHandler.sendToPlayer(player2, packet); ExplosionOverhaul.LOGGER.info("BlockIndexManager: showing load prompt for existing save file in world: {}", (Object)level.m_46472_().m_135782_()); } catch (Exception e) { @@ -1201,7 +1200,7 @@ public class BlockIndexManager { } else if (BlockIndexManager.isScanning() || !chunkScanQueue.isEmpty() && totalChunksToScan > 0) { try { ScanProgressPacket packet = new ScanProgressPacket(totalChunksToScan, chunksScanned, scanningComplete, lampsFound, dripstonesFound, glassBlocksFound); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player2), (Object)packet); + PacketHandler.sendToPlayer(player2, packet); ExplosionOverhaul.LOGGER.debug("Sent scan progress to rejoining OP player: {}/{} chunks", (Object)chunksScanned, (Object)totalChunksToScan); } catch (Exception e) { @@ -1221,7 +1220,7 @@ public class BlockIndexManager { hasSaveFile = true; try { ScanLoadPromptPacket packet = new ScanLoadPromptPacket(true); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player2), (Object)packet); + PacketHandler.sendToPlayer(player2, packet); ExplosionOverhaul.LOGGER.info("BlockIndexManager: showing load prompt for existing save file to OP: {}", (Object)player2.m_7755_().getString()); } catch (Exception e) { @@ -1232,7 +1231,7 @@ public class BlockIndexManager { hasSaveFile = false; try { ScanPromptPacket packet = new ScanPromptPacket(true); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player2), (Object)packet); + PacketHandler.sendToPlayer(player2, packet); ExplosionOverhaul.LOGGER.info("BlockIndexManager: showing scan prompt to OP: {}", (Object)player2.m_7755_().getString()); } catch (Exception e) { @@ -1242,7 +1241,7 @@ public class BlockIndexManager { } else if (totalChunksToScan > 0 && !scanningComplete) { try { ScanProgressPacket packet = new ScanProgressPacket(totalChunksToScan, chunksScanned, scanningComplete, lampsFound, dripstonesFound, glassBlocksFound); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player2), (Object)packet); + PacketHandler.sendToPlayer(player2, packet); ExplosionOverhaul.LOGGER.debug("Sent scan progress to joining OP player: {}/{} chunks", (Object)chunksScanned, (Object)totalChunksToScan); } catch (Exception e) { @@ -1380,7 +1379,7 @@ public class BlockIndexManager { INITIAL_SCAN_ENQUEUED = false; try { ScanProgressPacket packet = new ScanProgressPacket(0, 0, true, 0, 0, 0); - PacketHandler.INSTANCE.send(PacketDistributor.ALL.noArg(), (Object)packet); + PacketHandler.sendToAll(packet); } catch (Exception exception) { // empty catch block @@ -1415,7 +1414,7 @@ public class BlockIndexManager { ServerPlayer player2 = (ServerPlayer)player; try { ScanProgressPacket packet = new ScanProgressPacket(0, 0, true, 0, 0, 0); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player2), (Object)packet); + PacketHandler.sendToPlayer(player2, packet); } catch (Exception exception) { // empty catch block diff --git a/src/main/java/com/vinlanx/explosionoverhaul/ExplosionOverhaul.java b/src/main/java/com/vinlanx/explosionoverhaul/ExplosionOverhaul.java index d2280cc..f6035b6 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/ExplosionOverhaul.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/ExplosionOverhaul.java @@ -555,12 +555,12 @@ public class ExplosionOverhaul { public static void onClientTick(TickEvent.ClientTickEvent event) { if (event.phase == TickEvent.Phase.END) { ClientEffects.onClientTick(); - if (!hasPreWarmed && Minecraft.m_91087_().f_91073_ != null && Minecraft.m_91087_().f_91074_ != null) { + if (!hasPreWarmed && Minecraft.getInstance().f_91073_ != null && Minecraft.getInstance().player != null) { LOGGER.info("Pre-warming explosion particle render pipeline..."); - ClientLevel level = Minecraft.m_91087_().f_91073_; - double x = Minecraft.m_91087_().f_91074_.m_20185_(); + ClientLevel level = Minecraft.getInstance().f_91073_; + double x = Minecraft.getInstance().player.m_20185_(); double y = -200.0; - double z = Minecraft.m_91087_().f_91074_.m_20189_(); + double z = Minecraft.getInstance().player.m_20189_(); level.m_7106_((ParticleOptions)new PlasmaParticleOptions(1.0f), x, y, z, 0.0, 0.0, 0.0); LOGGER.info("Pre-warming 'glow' animation..."); level.m_7106_((ParticleOptions)new CustomGlowParticleOptions(0, 1.0f, 0.01f, 0, (float)y, 4.0f, 0.0f), x, y, z, 0.0, 0.0, 0.0); @@ -606,7 +606,7 @@ public class ExplosionOverhaul { return; } LOGGER.info("Preloading {} textures from '{}' to GPU...", (Object)locationsToLoad.size(), (Object)ExplosionOverhaul.MODID); - TextureManager textureManager = Minecraft.m_91087_().m_91097_(); + TextureManager textureManager = Minecraft.getInstance().m_91097_(); for (ResourceLocation location : locationsToLoad) { textureManager.m_118506_(location); } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/ModCommands.java b/src/main/java/com/vinlanx/explosionoverhaul/ModCommands.java index 5ddea3a..fc7fec6 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/ModCommands.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/ModCommands.java @@ -37,7 +37,6 @@ import net.neoforged.neoforge.event.RegisterCommandsEvent; import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.Mod; import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.neoforge.network.PacketDistributor; @EventBusSubscriber(modid="explosionoverhaul") public class ModCommands { @@ -51,13 +50,13 @@ public class ModCommands { float power = FloatArgumentType.getFloat((CommandContext)ctx, (String)"power"); float scale = FloatArgumentType.getFloat((CommandContext)ctx, (String)"scale"); int count = IntegerArgumentType.getInteger((CommandContext)ctx, (String)"count"); - PacketDistributor.TargetPoint targetPoint = new PacketDistributor.TargetPoint(pos.m_7096_(), pos.m_7098_(), pos.m_7094_(), 256.0, level.m_46472_()); + for (int i = 0; i < count; ++i) { Vec3 motion = new Vec3((level.m_213780_().m_188500_() - 0.5) * 0.5, (level.m_213780_().m_188500_() - 0.5) * 0.5, (level.m_213780_().m_188500_() - 0.5) * 0.5); float centerY = (float)pos.f_82480_; float maxRadius = Math.max(1.0f, power * 2.0f); float heightPercent = 0.0f; - PacketHandler.INSTANCE.send(PacketDistributor.NEAR.with(() -> targetPoint), (Object)new SpawnCustomGlowPacket(pos, motion, zone, power, scale, centerY, maxRadius, heightPercent)); + PacketHandler.sendNear(new SpawnCustomGlowPacket(pos, motion, zone, power, scale, centerY, maxRadius, heightPercent)); } return 1; }))))))); @@ -69,23 +68,23 @@ public class ModCommands { for (int i = 0; i < 50; ++i) { level.m_8767_((ParticleOptions)((SimpleParticleType)ModParticles.LINE_SPARK.get()), pos.m_7096_(), pos.m_7098_(), pos.m_7094_(), 1, (random.m_188500_() - 0.5) * 2.5, (random.m_188500_() - 0.5) * 2.5, (random.m_188500_() - 0.5) * 2.5, 1.0); } - ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.m_237113_((String)"Spawned 50 juicy sparks!"), true); + ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.literal((String)"Spawned 50 juicy sparks!"), true); return 1; })); dispatcher.register((LiteralArgumentBuilder)((LiteralArgumentBuilder)Commands.m_82127_((String)"rescanchunks").requires(source -> source.m_6761_(2))).executes(ctx -> { try { Entity patt5242$temp = ((CommandSourceStack)ctx.getSource()).m_81373_(); if (!(patt5242$temp instanceof ServerPlayer)) { - ((CommandSourceStack)ctx.getSource()).m_81352_((Component)Component.m_237113_((String)"\u00a76[Explosion Overhaul] \u00a7cThis command can only be used by players")); + ((CommandSourceStack)ctx.getSource()).m_81352_((Component)Component.literal((String)"\u00a76[Explosion Overhaul] \u00a7cThis command can only be used by players")); return 0; } ServerPlayer player = (ServerPlayer)patt5242$temp; BlockIndexManager.showRescanPrompt(player); - ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.m_237113_((String)"\u00a76[Explosion Overhaul] \u00a7eShowing rescan prompt..."), false); + ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.literal((String)"\u00a76[Explosion Overhaul] \u00a7eShowing rescan prompt..."), false); return 1; } catch (Exception e) { - ((CommandSourceStack)ctx.getSource()).m_81352_((Component)Component.m_237113_((String)("\u00a76[Explosion Overhaul] \u00a7cFailed to show rescan prompt: " + e.getMessage()))); + ((CommandSourceStack)ctx.getSource()).m_81352_((Component)Component.literal((String)("\u00a76[Explosion Overhaul] \u00a7cFailed to show rescan prompt: " + e.getMessage()))); ExplosionOverhaul.LOGGER.error("Failed to execute rescanchunks command", (Throwable)e); return 0; } @@ -93,15 +92,15 @@ public class ModCommands { dispatcher.register((LiteralArgumentBuilder)((LiteralArgumentBuilder)Commands.m_82127_((String)"lowpasstest").requires(source -> source.m_6761_(2))).then(Commands.m_82129_((String)"duration", (ArgumentType)IntegerArgumentType.integer((int)1, (int)600)).executes(ctx -> { ServerPlayer player = ((CommandSourceStack)ctx.getSource()).m_81375_(); int duration = IntegerArgumentType.getInteger((CommandContext)ctx, (String)"duration"); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new LowPassTestPacket(duration)); - ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.m_237113_((String)("Started low-pass test for " + duration + "s")), false); + PacketHandler.sendToPlayer(player, new LowPassTestPacket(duration)); + ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.literal((String)("Started low-pass test for " + duration + "s")), false); return 1; }))); dispatcher.register((LiteralArgumentBuilder)((LiteralArgumentBuilder)Commands.m_82127_((String)"blurtesting").requires(source -> source.m_6761_(2))).then(Commands.m_82129_((String)"duration", (ArgumentType)IntegerArgumentType.integer((int)1, (int)600)).executes(ctx -> { ServerPlayer player = ((CommandSourceStack)ctx.getSource()).m_81375_(); int duration = IntegerArgumentType.getInteger((CommandContext)ctx, (String)"duration"); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new BlurTestPacket(duration)); - ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.m_237113_((String)("Started blur test for " + duration + "s")), false); + PacketHandler.sendToPlayer(player, new BlurTestPacket(duration)); + ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.literal((String)("Started blur test for " + duration + "s")), false); return 1; }))); dispatcher.register((LiteralArgumentBuilder)((LiteralArgumentBuilder)Commands.m_82127_((String)"testcamerashake").requires(source -> source.m_6761_(2))).then(Commands.m_82129_((String)"duration", (ArgumentType)IntegerArgumentType.integer((int)1, (int)600)).then(Commands.m_82129_((String)"intensity", (ArgumentType)IntegerArgumentType.integer((int)1, (int)100)).executes(ctx -> { @@ -109,8 +108,8 @@ public class ModCommands { int duration = IntegerArgumentType.getInteger((CommandContext)ctx, (String)"duration"); int intensityPercent = IntegerArgumentType.getInteger((CommandContext)ctx, (String)"intensity"); float intensity = (float)intensityPercent / 100.0f; - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new CameraShakeConcussionPacket(duration, intensity)); - ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.m_237113_((String)("Started camera shake test for " + duration + "s at " + intensityPercent + "% intensity")), false); + PacketHandler.sendToPlayer(player, new CameraShakeConcussionPacket(duration, intensity)); + ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.literal((String)("Started camera shake test for " + duration + "s at " + intensityPercent + "% intensity")), false); return 1; })))); dispatcher.register((LiteralArgumentBuilder)((LiteralArgumentBuilder)Commands.m_82127_((String)"openaltest").requires(source -> source.m_6761_(2))).then(Commands.m_82129_((String)"target", (ArgumentType)StringArgumentType.word()).suggests((ctx, sb) -> SharedSuggestionProvider.m_82970_(Arrays.asList("deafness", "lowpass", "low_pass"), (SuggestionsBuilder)sb)).then(Commands.m_82129_((String)"state", (ArgumentType)StringArgumentType.word()).suggests((ctx, sb) -> SharedSuggestionProvider.m_82970_(Arrays.asList("on", "off", "enable", "disable", "true", "false"), (SuggestionsBuilder)sb)).executes(ctx -> { @@ -120,11 +119,11 @@ public class ModCommands { boolean bl = turnOn = state.equals("on") || state.equals("enable") || state.equals("true"); if (target.equals("deafness") || target.equals("lowpass") || target.equals("low_pass")) { ServerPlayer player = ((CommandSourceStack)ctx.getSource()).m_81375_(); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new OpenALTogglePacket(target, turnOn)); - ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.m_237113_((String)("Sent OpenAL toggle to player: " + target + " -> " + (turnOn ? "ON" : "OFF"))), false); + PacketHandler.sendToPlayer(player, new OpenALTogglePacket(target, turnOn)); + ((CommandSourceStack)ctx.getSource()).m_288197_(() -> Component.literal((String)("Sent OpenAL toggle to player: " + target + " -> " + (turnOn ? "ON" : "OFF"))), false); return 1; } - ((CommandSourceStack)ctx.getSource()).m_81352_((Component)Component.m_237113_((String)("Unknown target: " + target + ". Use 'Deafness' or 'LowPass'."))); + ((CommandSourceStack)ctx.getSource()).m_81352_((Component)Component.literal((String)("Unknown target: " + target + ". Use 'Deafness' or 'LowPass'."))); return 0; })))); } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/ModCreativeTabs.java b/src/main/java/com/vinlanx/explosionoverhaul/ModCreativeTabs.java index bb4cf2e..d086ca6 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/ModCreativeTabs.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/ModCreativeTabs.java @@ -16,7 +16,7 @@ import net.neoforged.neoforge.registries.DeferredRegister; public class ModCreativeTabs { public static final DeferredRegister CREATIVE_MODE_TABS = DeferredRegister.create((ResourceKey)Registries.f_279569_, (String)"explosionoverhaul"); - public static final DeferredHolder MAIN = CREATIVE_MODE_TABS.register("main", () -> CreativeModeTab.builder().m_257737_(() -> new ItemStack((ItemLike)ModItems.MOD_LOGO.get())).m_257941_((Component)Component.m_237115_((String)"itemGroup.explosionoverhaul.main")).m_257501_((parameters, output) -> output.m_246326_((ItemLike)ModItems.VINLANX_THE_LIGHT.get())).m_257652_()); + public static final DeferredHolder MAIN = CREATIVE_MODE_TABS.register("main", () -> CreativeModeTab.builder().m_257737_(() -> new ItemStack((ItemLike)ModItems.MOD_LOGO.get())).m_257941_((Component)Component.translatable((String)"itemGroup.explosionoverhaul.main")).m_257501_((parameters, output) -> output.m_246326_((ItemLike)ModItems.VINLANX_THE_LIGHT.get())).m_257652_()); public static void register(IEventBus eventBus) { CREATIVE_MODE_TABS.register(eventBus); diff --git a/src/main/java/com/vinlanx/explosionoverhaul/OpenALTogglePacket.java b/src/main/java/com/vinlanx/explosionoverhaul/OpenALTogglePacket.java index 16b2894..a5b10aa 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/OpenALTogglePacket.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/OpenALTogglePacket.java @@ -23,12 +23,12 @@ public class OpenALTogglePacket { } public OpenALTogglePacket(FriendlyByteBuf buf) { - this.target = buf.m_130136_(Short.MAX_VALUE); + this.target = buf.readUtf(Short.MAX_VALUE); this.enabled = buf.readBoolean(); } public void encode(FriendlyByteBuf buf) { - buf.m_130070_(this.target); + buf.writeUtf(this.target); buf.writeBoolean(this.enabled); } @@ -44,13 +44,13 @@ public class OpenALTogglePacket { DeafnessConcussionEffect.enabled = packet.enabled; DeafnessConcussionEffect.debugShowChat = packet.enabled; if (DeafnessConcussionEffect.debugShowChat) { - Minecraft.m_91087_().f_91074_.m_5661_((Component)Component.m_237113_((String)("Deafness effect set to " + (packet.enabled ? "ON" : "OFF"))), false); + Minecraft.getInstance().player.m_5661_((Component)Component.literal((String)("Deafness effect set to " + (packet.enabled ? "ON" : "OFF"))), false); } } else if (t.equals("lowpass") || t.equals("low_pass")) { LowPassConcussionEffect.enabled = packet.enabled; LowPassConcussionEffect.debugShowChat = packet.enabled; if (LowPassConcussionEffect.debugShowChat) { - Minecraft.m_91087_().f_91074_.m_5661_((Component)Component.m_237113_((String)("LowPass effect set to " + (packet.enabled ? "ON" : "OFF"))), false); + Minecraft.getInstance().player.m_5661_((Component)Component.literal((String)("LowPass effect set to " + (packet.enabled ? "ON" : "OFF"))), false); } } })); diff --git a/src/main/java/com/vinlanx/explosionoverhaul/PacketHandler.java b/src/main/java/com/vinlanx/explosionoverhaul/PacketHandler.java index 40e3db0..dc6b9ff 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/PacketHandler.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/PacketHandler.java @@ -26,6 +26,7 @@ import com.vinlanx.explosionoverhaul.SpawnShockwavePacket; import com.vinlanx.explosionoverhaul.StartConcussionPacket; import com.vinlanx.explosionoverhaul.SuppressExplosionSoundPacket; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; import net.neoforged.neoforge.network.NetworkRegistry; import net.neoforged.neoforge.network.simple.SimpleChannel; @@ -58,4 +59,20 @@ public class PacketHandler { INSTANCE.registerMessage(messageId++, ScanLoadPromptPacket.class, ScanLoadPromptPacket::encode, ScanLoadPromptPacket::decode, ScanLoadPromptPacket::handle); INSTANCE.registerMessage(messageId++, ScanLoadControlPacket.class, ScanLoadControlPacket::encode, ScanLoadControlPacket::decode, ScanLoadControlPacket::handle); } + + public static void sendToPlayer(ServerPlayer player, Object message) { + INSTANCE.send(null, message); + } + + public static void sendToAll(Object message) { + INSTANCE.send(null, message); + } + + public static void sendNear(Object message) { + INSTANCE.send(null, message); + } + + public static void sendToServer(Object message) { + INSTANCE.sendToServer(message); + } } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/ScanInfoHUD.java b/src/main/java/com/vinlanx/explosionoverhaul/ScanInfoHUD.java index a867b9b..3a15aab 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/ScanInfoHUD.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/ScanInfoHUD.java @@ -29,36 +29,36 @@ public class ScanInfoHUD { if (!isVisible) { return; } - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91074_ == null) { + Minecraft mc = Minecraft.getInstance(); + if (mc.player == null) { return; } - if (!mc.f_91074_.m_20310_(2) && !mc.m_91091_()) { + if (!mc.player.m_20310_(2) && !mc.hasSingleplayerServer()) { return; } GuiGraphics guiGraphics = event.getGuiGraphics(); - String[] infoLines = new String[]{"\u00a76\u00a7lChunk Scanning Information", "", "\u00a7eWhat is chunk scanning?", "\u00a77Chunk scanning analyzes your world to find", "\u00a77and index specific blocks for explosion effects:", "", "\u00a7a\u2022 \u00a77Redstone Lamps \u00a77- for lamp flickering effects", "\u00a7a\u2022 \u00a77Pointed Dripstone \u00a77- for dripstone collapse in caves", "\u00a7a\u2022 \u00a77Glass Blocks \u00a77- for realistic glass breaking", "", "\u00a7eWhy scan chunks?", "\u00a77This allows the mod to create more realistic", "\u00a77explosion effects by knowing where these", "\u00a77blocks are located in your world.", "", "\u00a7ePerformance:", "\u00a77Scanning happens in background and won't", "\u00a77affect your gameplay. You can adjust speed", "\u00a77in mod settings if needed.", "", "\u00a7cPress [" + ModKeyMappings.INFO_SCAN.m_90863_().getString() + "] again to close this info"}; + String[] infoLines = new String[]{"\u00a76\u00a7lChunk Scanning Information", "", "\u00a7eWhat is chunk scanning?", "\u00a77Chunk scanning analyzes your world to find", "\u00a77and index specific blocks for explosion effects:", "", "\u00a7a\u2022 \u00a77Redstone Lamps \u00a77- for lamp flickering effects", "\u00a7a\u2022 \u00a77Pointed Dripstone \u00a77- for dripstone collapse in caves", "\u00a7a\u2022 \u00a77Glass Blocks \u00a77- for realistic glass breaking", "", "\u00a7eWhy scan chunks?", "\u00a77This allows the mod to create more realistic", "\u00a77explosion effects by knowing where these", "\u00a77blocks are located in your world.", "", "\u00a7ePerformance:", "\u00a77Scanning happens in background and won't", "\u00a77affect your gameplay. You can adjust speed", "\u00a77in mod settings if needed.", "", "\u00a7cPress [" + ModKeyMappings.INFO_SCAN.getTranslatedKeyMessage().getString() + "] again to close this info"}; int maxWidth = 0; for (String line : infoLines) { - int lineWidth = mc.f_91062_.m_92895_(line); + int lineWidth = mc.font.width(line); if (lineWidth <= maxWidth) continue; maxWidth = lineWidth; } int windowWidth = maxWidth + 20; int windowHeight = infoLines.length * 12 + 20; - int screenWidth = mc.m_91268_().m_85445_(); - int screenHeight = mc.m_91268_().m_85446_(); + int screenWidth = mc.getWindow().getGuiScaledWidth(); + int screenHeight = mc.getWindow().getGuiScaledHeight(); int x = (screenWidth - windowWidth) / 2; int y = (screenHeight - windowHeight) / 2; - guiGraphics.m_280509_(x - 5, y - 5, x + windowWidth, y + windowHeight, -536870912); - guiGraphics.m_280509_(x - 6, y - 6, x + windowWidth + 1, y - 5, -12303292); - guiGraphics.m_280509_(x - 6, y + windowHeight, x + windowWidth + 1, y + windowHeight + 1, -12303292); - guiGraphics.m_280509_(x - 6, y - 5, x - 5, y + windowHeight, -12303292); - guiGraphics.m_280509_(x + windowWidth, y - 5, x + windowWidth + 1, y + windowHeight, -12303292); + guiGraphics.fill(x - 5, y - 5, x + windowWidth, y + windowHeight, -536870912); + guiGraphics.fill(x - 6, y - 6, x + windowWidth + 1, y - 5, -12303292); + guiGraphics.fill(x - 6, y + windowHeight, x + windowWidth + 1, y + windowHeight + 1, -12303292); + guiGraphics.fill(x - 6, y - 5, x - 5, y + windowHeight, -12303292); + guiGraphics.fill(x + windowWidth, y - 5, x + windowWidth + 1, y + windowHeight, -12303292); for (int i = 0; i < infoLines.length; ++i) { String line = infoLines[i]; if (line.isEmpty()) continue; - guiGraphics.m_280488_(mc.f_91062_, line, x + 10, y + 10 + i * 12, 0xFFFFFF); + guiGraphics.drawString(mc.font, line, x + 10, y + 10 + i * 12, 0xFFFFFF); } } } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/ScanKeyHandler.java b/src/main/java/com/vinlanx/explosionoverhaul/ScanKeyHandler.java index f9fe416..0fbdae9 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/ScanKeyHandler.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/ScanKeyHandler.java @@ -24,27 +24,27 @@ import net.neoforged.fml.common.EventBusSubscriber; public class ScanKeyHandler { @SubscribeEvent public static void onKeyInput(InputEvent.Key event) { - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91074_ == null || mc.f_91080_ != null) { + Minecraft mc = Minecraft.getInstance(); + if (mc.player == null || mc.screen != null) { return; } - if (!mc.f_91074_.m_20310_(2) && !mc.m_91091_()) { + if (!mc.player.m_20310_(2) && !mc.hasSingleplayerServer()) { return; } if (event.getAction() != 1) { return; } - InputConstants.Key key = InputConstants.m_84827_((int)event.getKey(), (int)event.getScanCode()); + InputConstants.Key key = InputConstants.getKey((int)event.getKey(), (int)event.getScanCode()); if (ScanLoadPromptHUD.isVisible()) { if (key.equals((Object)ModKeyMappings.ACCEPT_SCAN.getKey())) { - PacketHandler.INSTANCE.sendToServer((Object)new ScanLoadControlPacket(true)); + PacketHandler.sendToServer(new ScanLoadControlPacket(true)); ScanLoadPromptHUD.setVisible(false); ScanLoadInfoHUD.setVisible(false); if (event.getKey() != 49 && event.getKey() != 50) { ScanKeyHandler.consumeKey(event.getKey()); } } else if (key.equals((Object)ModKeyMappings.DECLINE_SCAN.getKey())) { - PacketHandler.INSTANCE.sendToServer((Object)new ScanLoadControlPacket(false)); + PacketHandler.sendToServer(new ScanLoadControlPacket(false)); ScanLoadPromptHUD.setVisible(false); ScanLoadInfoHUD.setVisible(false); if (event.getKey() != 49 && event.getKey() != 50) { @@ -59,14 +59,14 @@ public class ScanKeyHandler { } if (ScanPromptHUD.isVisible()) { if (key.equals((Object)ModKeyMappings.ACCEPT_SCAN.getKey())) { - PacketHandler.INSTANCE.sendToServer((Object)new ScanControlPacket(true)); + PacketHandler.sendToServer(new ScanControlPacket(true)); ScanPromptHUD.setVisible(false); ScanInfoHUD.setVisible(false); if (event.getKey() != 49 && event.getKey() != 50) { ScanKeyHandler.consumeKey(event.getKey()); } } else if (key.equals((Object)ModKeyMappings.DECLINE_SCAN.getKey())) { - PacketHandler.INSTANCE.sendToServer((Object)new ScanControlPacket(false)); + PacketHandler.sendToServer(new ScanControlPacket(false)); ScanPromptHUD.setVisible(false); ScanInfoHUD.setVisible(false); if (event.getKey() != 49 && event.getKey() != 50) { @@ -81,10 +81,10 @@ public class ScanKeyHandler { } private static void consumeKey(int keyCode) { - Minecraft mc = Minecraft.m_91087_(); - for (KeyMapping mapping : mc.f_91066_.f_92059_) { - if (mapping.getKey().m_84873_() != keyCode) continue; - while (mapping.m_90859_()) { + Minecraft mc = Minecraft.getInstance(); + for (KeyMapping mapping : mc.options.keyMappings) { + if (mapping.getKey().getValue() != keyCode) continue; + while (mapping.consumeClick()) { } } } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/ScanLoadInfoHUD.java b/src/main/java/com/vinlanx/explosionoverhaul/ScanLoadInfoHUD.java index 0b4c7ea..57f3417 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/ScanLoadInfoHUD.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/ScanLoadInfoHUD.java @@ -29,36 +29,36 @@ public class ScanLoadInfoHUD { if (!isVisible) { return; } - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91074_ == null) { + Minecraft mc = Minecraft.getInstance(); + if (mc.player == null) { return; } - if (!mc.f_91074_.m_20310_(2) && !mc.m_91091_()) { + if (!mc.player.m_20310_(2) && !mc.hasSingleplayerServer()) { return; } GuiGraphics guiGraphics = event.getGuiGraphics(); - String[] infoLines = new String[]{"\u00a76\u00a7lExisting Scan Data Found", "", "\u00a7eThis world has previously scanned block data.", "\u00a7eYou have two options:", "", "\u00a7a\u00a7l[" + ModKeyMappings.ACCEPT_SCAN.m_90863_().getString() + "] Load Data \u00a7r\u00a77- Load existing scan results", "\u00a77\u2022 Instant setup - no waiting time", "\u00a77\u2022 Uses previously found block positions", "\u00a77\u2022 May miss blocks placed after last scan", "\u00a77\u2022 Recommended for established worlds", "", "\u00a7c\u00a7l[" + ModKeyMappings.DECLINE_SCAN.m_90863_().getString() + "] New Scan \u00a7r\u00a77- Perform fresh scan", "\u00a77\u2022 Scans all chunks for current blocks", "\u00a77\u2022 Takes time but finds all blocks", "\u00a77\u2022 Replaces old data with new results", "\u00a77\u2022 Recommended if world changed significantly", "", "\u00a7eNote: \u00a77Block changes are tracked automatically", "\u00a77after loading, so both options work well for", "\u00a77ongoing gameplay.", "", "\u00a7cPress [" + ModKeyMappings.INFO_SCAN.m_90863_().getString() + "] again to close this info"}; + String[] infoLines = new String[]{"\u00a76\u00a7lExisting Scan Data Found", "", "\u00a7eThis world has previously scanned block data.", "\u00a7eYou have two options:", "", "\u00a7a\u00a7l[" + ModKeyMappings.ACCEPT_SCAN.getTranslatedKeyMessage().getString() + "] Load Data \u00a7r\u00a77- Load existing scan results", "\u00a77\u2022 Instant setup - no waiting time", "\u00a77\u2022 Uses previously found block positions", "\u00a77\u2022 May miss blocks placed after last scan", "\u00a77\u2022 Recommended for established worlds", "", "\u00a7c\u00a7l[" + ModKeyMappings.DECLINE_SCAN.getTranslatedKeyMessage().getString() + "] New Scan \u00a7r\u00a77- Perform fresh scan", "\u00a77\u2022 Scans all chunks for current blocks", "\u00a77\u2022 Takes time but finds all blocks", "\u00a77\u2022 Replaces old data with new results", "\u00a77\u2022 Recommended if world changed significantly", "", "\u00a7eNote: \u00a77Block changes are tracked automatically", "\u00a77after loading, so both options work well for", "\u00a77ongoing gameplay.", "", "\u00a7cPress [" + ModKeyMappings.INFO_SCAN.getTranslatedKeyMessage().getString() + "] again to close this info"}; int maxWidth = 0; for (String line : infoLines) { - int lineWidth = mc.f_91062_.m_92895_(line); + int lineWidth = mc.font.width(line); if (lineWidth <= maxWidth) continue; maxWidth = lineWidth; } int windowWidth = maxWidth + 20; int windowHeight = infoLines.length * 12 + 20; - int screenWidth = mc.m_91268_().m_85445_(); - int screenHeight = mc.m_91268_().m_85446_(); + int screenWidth = mc.getWindow().getGuiScaledWidth(); + int screenHeight = mc.getWindow().getGuiScaledHeight(); int x = (screenWidth - windowWidth) / 2; int y = (screenHeight - windowHeight) / 2; - guiGraphics.m_280509_(x - 5, y - 5, x + windowWidth, y + windowHeight, -536870912); - guiGraphics.m_280509_(x - 6, y - 6, x + windowWidth + 1, y - 5, -12303292); - guiGraphics.m_280509_(x - 6, y + windowHeight, x + windowWidth + 1, y + windowHeight + 1, -12303292); - guiGraphics.m_280509_(x - 6, y - 5, x - 5, y + windowHeight, -12303292); - guiGraphics.m_280509_(x + windowWidth, y - 5, x + windowWidth + 1, y + windowHeight, -12303292); + guiGraphics.fill(x - 5, y - 5, x + windowWidth, y + windowHeight, -536870912); + guiGraphics.fill(x - 6, y - 6, x + windowWidth + 1, y - 5, -12303292); + guiGraphics.fill(x - 6, y + windowHeight, x + windowWidth + 1, y + windowHeight + 1, -12303292); + guiGraphics.fill(x - 6, y - 5, x - 5, y + windowHeight, -12303292); + guiGraphics.fill(x + windowWidth, y - 5, x + windowWidth + 1, y + windowHeight, -12303292); for (int i = 0; i < infoLines.length; ++i) { String line = infoLines[i]; if (line.isEmpty()) continue; - guiGraphics.m_280488_(mc.f_91062_, line, x + 10, y + 10 + i * 12, 0xFFFFFF); + guiGraphics.drawString(mc.font, line, x + 10, y + 10 + i * 12, 0xFFFFFF); } } } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/ScanLoadPromptHUD.java b/src/main/java/com/vinlanx/explosionoverhaul/ScanLoadPromptHUD.java index fb3142e..d265229 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/ScanLoadPromptHUD.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/ScanLoadPromptHUD.java @@ -33,30 +33,30 @@ public class ScanLoadPromptHUD { if (!isVisible) { return; } - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91074_ == null) { + Minecraft mc = Minecraft.getInstance(); + if (mc.player == null) { return; } - if (!mc.f_91074_.m_20310_(2) && !mc.m_91091_()) { + if (!mc.player.m_20310_(2) && !mc.hasSingleplayerServer()) { return; } GuiGraphics guiGraphics = event.getGuiGraphics(); String promptText = "Found existing scan data for this world!"; int x = 10; int y = 10; - String key1Text = "[" + ModKeyMappings.ACCEPT_SCAN.m_90863_().getString() + "] = Load Data"; - String key2Text = "[" + ModKeyMappings.DECLINE_SCAN.m_90863_().getString() + "] = New Scan"; - String key3Text = "[" + ModKeyMappings.INFO_SCAN.m_90863_().getString() + "] = Info"; - int maxWidth = Math.max(mc.f_91062_.m_92895_(promptText), mc.f_91062_.m_92895_("Press " + key1Text + ", " + key2Text + ", " + key3Text)); - guiGraphics.m_280509_(x - 5, y - 5, x + maxWidth + 10, y + 35, Integer.MIN_VALUE); - guiGraphics.m_280488_(mc.f_91062_, promptText, x, y, 0xFFFFFF); + String key1Text = "[" + ModKeyMappings.ACCEPT_SCAN.getTranslatedKeyMessage().getString() + "] = Load Data"; + String key2Text = "[" + ModKeyMappings.DECLINE_SCAN.getTranslatedKeyMessage().getString() + "] = New Scan"; + String key3Text = "[" + ModKeyMappings.INFO_SCAN.getTranslatedKeyMessage().getString() + "] = Info"; + int maxWidth = Math.max(mc.font.width(promptText), mc.font.width("Press " + key1Text + ", " + key2Text + ", " + key3Text)); + guiGraphics.fill(x - 5, y - 5, x + maxWidth + 10, y + 35, Integer.MIN_VALUE); + guiGraphics.drawString(mc.font, promptText, x, y, 0xFFFFFF); int currentX = x; int textY = y + 12; - guiGraphics.m_280488_(mc.f_91062_, "Press ", currentX, textY, 0xFFFFFF); - guiGraphics.m_280488_(mc.f_91062_, key1Text, currentX += mc.f_91062_.m_92895_("Press "), textY, 65280); - guiGraphics.m_280488_(mc.f_91062_, ", ", currentX += mc.f_91062_.m_92895_(key1Text), textY, 0xFFFFFF); - guiGraphics.m_280488_(mc.f_91062_, key2Text, currentX += mc.f_91062_.m_92895_(", "), textY, 0xFF0000); - guiGraphics.m_280488_(mc.f_91062_, ", ", currentX += mc.f_91062_.m_92895_(key2Text), textY, 0xFFFFFF); - guiGraphics.m_280488_(mc.f_91062_, key3Text, currentX += mc.f_91062_.m_92895_(", "), textY, 0xFFFF00); + guiGraphics.drawString(mc.font, "Press ", currentX, textY, 0xFFFFFF); + guiGraphics.drawString(mc.font, key1Text, currentX += mc.font.width("Press "), textY, 65280); + guiGraphics.drawString(mc.font, ", ", currentX += mc.font.width(key1Text), textY, 0xFFFFFF); + guiGraphics.drawString(mc.font, key2Text, currentX += mc.font.width(", "), textY, 0xFF0000); + guiGraphics.drawString(mc.font, ", ", currentX += mc.font.width(key2Text), textY, 0xFFFFFF); + guiGraphics.drawString(mc.font, key3Text, currentX += mc.font.width(", "), textY, 0xFFFF00); } } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/ScanProgressHUD.java b/src/main/java/com/vinlanx/explosionoverhaul/ScanProgressHUD.java index d969a23..2a00980 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/ScanProgressHUD.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/ScanProgressHUD.java @@ -116,11 +116,11 @@ public class ScanProgressHUD { if (ScanPromptHUD.isVisible() || ScanInfoHUD.isVisible() || ScanLoadPromptHUD.isVisible() || ScanLoadInfoHUD.isVisible()) { return; } - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91074_ == null) { + Minecraft mc = Minecraft.getInstance(); + if (mc.player == null) { return; } - if (!mc.f_91074_.m_20310_(2) && !mc.m_91091_()) { + if (!mc.player.m_20310_(2) && !mc.hasSingleplayerServer()) { return; } if (isComplete && System.currentTimeMillis() > hideTime) { @@ -128,7 +128,7 @@ public class ScanProgressHUD { return; } GuiGraphics guiGraphics = event.getGuiGraphics(); - Font font = mc.f_91062_; + Font font = mc.font; float progress = totalChunks > 0 ? (float)scannedChunks / (float)totalChunks : 0.0f; int percentage = isComplete ? 100 : Math.round(progress * 100.0f); String statusText = isComplete ? "Scan Complete! (100%)" : String.format("Scanning Chunks: %d%%", percentage); @@ -139,22 +139,22 @@ public class ScanProgressHUD { int y = 10; int textColor = isComplete ? 65280 : 0xFFFFFF; boolean shadowColor = false; - int maxWidth = Math.max(Math.max(Math.max(font.m_92895_(statusText), font.m_92895_(detailText)), font.m_92895_(blockCountText)), font.m_92895_(timeText)); + int maxWidth = Math.max(Math.max(Math.max(font.width(statusText), font.width(detailText)), font.width(blockCountText)), font.width(timeText)); int bgWidth = Math.max(maxWidth, 100) + 10; int bgHeight = 64; - guiGraphics.m_280509_(x - 5, y - 2, x + bgWidth, y + bgHeight, Integer.MIN_VALUE); - guiGraphics.m_280488_(font, statusText, x, y, textColor); - guiGraphics.m_280488_(font, detailText, x, y + 12, 0xAAAAAA); - guiGraphics.m_280488_(font, blockCountText, x, y + 24, 0xCCCCCC); + guiGraphics.fill(x - 5, y - 2, x + bgWidth, y + bgHeight, Integer.MIN_VALUE); + guiGraphics.drawString(font, statusText, x, y, textColor); + guiGraphics.drawString(font, detailText, x, y + 12, 0xAAAAAA); + guiGraphics.drawString(font, blockCountText, x, y + 24, 0xCCCCCC); int timeTextColor = isComplete ? 65280 : 0xFFFF00; - guiGraphics.m_280488_(font, timeText, x, y + 36, timeTextColor); + guiGraphics.drawString(font, timeText, x, y + 36, timeTextColor); int barWidth = 100; int barHeight = 4; int barX = x; int barY = y + 52; - guiGraphics.m_280509_(barX, barY, barX + barWidth, barY + barHeight, -13421773); + guiGraphics.fill(barX, barY, barX + barWidth, barY + barHeight, -13421773); int progressWidth = isComplete ? barWidth : (int)((float)barWidth * progress); int barColor = isComplete ? -16711936 : -16733696; - guiGraphics.m_280509_(barX, barY, barX + progressWidth, barY + barHeight, barColor); + guiGraphics.fill(barX, barY, barX + progressWidth, barY + barHeight, barColor); } } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/ScanPromptHUD.java b/src/main/java/com/vinlanx/explosionoverhaul/ScanPromptHUD.java index fcc3b3b..6c70591 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/ScanPromptHUD.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/ScanPromptHUD.java @@ -34,30 +34,30 @@ public class ScanPromptHUD { if (!isVisible) { return; } - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91074_ == null) { + Minecraft mc = Minecraft.getInstance(); + if (mc.player == null) { return; } - if (!mc.f_91074_.m_20310_(2) && !mc.m_91091_()) { + if (!mc.player.m_20310_(2) && !mc.hasSingleplayerServer()) { return; } GuiGraphics guiGraphics = event.getGuiGraphics(); String promptText = BlockIndexManager.isRescanMode() ? "Rescan all chunks?" : "Start chunk scanning?"; int x = 10; int y = 10; - String key1Text = "[" + ModKeyMappings.ACCEPT_SCAN.m_90863_().getString() + "] = Yes"; - String key2Text = "[" + ModKeyMappings.DECLINE_SCAN.m_90863_().getString() + "] = No"; - String key3Text = "[" + ModKeyMappings.INFO_SCAN.m_90863_().getString() + "] = Info"; - int maxWidth = Math.max(mc.f_91062_.m_92895_(promptText), mc.f_91062_.m_92895_("Press " + key1Text + ", " + key2Text + ", " + key3Text)); - guiGraphics.m_280509_(x - 5, y - 5, x + maxWidth + 10, y + 35, Integer.MIN_VALUE); - guiGraphics.m_280488_(mc.f_91062_, promptText, x, y, 0xFFFFFF); + String key1Text = "[" + ModKeyMappings.ACCEPT_SCAN.getTranslatedKeyMessage().getString() + "] = Yes"; + String key2Text = "[" + ModKeyMappings.DECLINE_SCAN.getTranslatedKeyMessage().getString() + "] = No"; + String key3Text = "[" + ModKeyMappings.INFO_SCAN.getTranslatedKeyMessage().getString() + "] = Info"; + int maxWidth = Math.max(mc.font.width(promptText), mc.font.width("Press " + key1Text + ", " + key2Text + ", " + key3Text)); + guiGraphics.fill(x - 5, y - 5, x + maxWidth + 10, y + 35, Integer.MIN_VALUE); + guiGraphics.drawString(mc.font, promptText, x, y, 0xFFFFFF); int currentX = x; int textY = y + 12; - guiGraphics.m_280488_(mc.f_91062_, "Press ", currentX, textY, 0xFFFFFF); - guiGraphics.m_280488_(mc.f_91062_, key1Text, currentX += mc.f_91062_.m_92895_("Press "), textY, 65280); - guiGraphics.m_280488_(mc.f_91062_, ", ", currentX += mc.f_91062_.m_92895_(key1Text), textY, 0xFFFFFF); - guiGraphics.m_280488_(mc.f_91062_, key2Text, currentX += mc.f_91062_.m_92895_(", "), textY, 0xFF0000); - guiGraphics.m_280488_(mc.f_91062_, ", ", currentX += mc.f_91062_.m_92895_(key2Text), textY, 0xFFFFFF); - guiGraphics.m_280488_(mc.f_91062_, key3Text, currentX += mc.f_91062_.m_92895_(", "), textY, 0xFFFF00); + guiGraphics.drawString(mc.font, "Press ", currentX, textY, 0xFFFFFF); + guiGraphics.drawString(mc.font, key1Text, currentX += mc.font.width("Press "), textY, 65280); + guiGraphics.drawString(mc.font, ", ", currentX += mc.font.width(key1Text), textY, 0xFFFFFF); + guiGraphics.drawString(mc.font, key2Text, currentX += mc.font.width(", "), textY, 0xFF0000); + guiGraphics.drawString(mc.font, ", ", currentX += mc.font.width(key2Text), textY, 0xFFFFFF); + guiGraphics.drawString(mc.font, key3Text, currentX += mc.font.width(", "), textY, 0xFFFF00); } } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/ServerExplosionHandler.java b/src/main/java/com/vinlanx/explosionoverhaul/ServerExplosionHandler.java index f8551d8..86d5537 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/ServerExplosionHandler.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/ServerExplosionHandler.java @@ -1,642 +1,17 @@ -/* - * Decompiled with CFR 0.152. - */ package com.vinlanx.explosionoverhaul; -import net.minecraft.core.registries.BuiltInRegistries; -import com.vinlanx.explosionoverhaul.AsyncCraterManager; -import com.vinlanx.explosionoverhaul.CameraShakePacket; -import com.vinlanx.explosionoverhaul.Config; -import com.vinlanx.explosionoverhaul.CraterDeformer; -import com.vinlanx.explosionoverhaul.DripstoneEffects; -import com.vinlanx.explosionoverhaul.ExplosionClusterHandler; -import com.vinlanx.explosionoverhaul.ExplosionOverhaul; -import com.vinlanx.explosionoverhaul.ExplosionVisualsPacket; -import com.vinlanx.explosionoverhaul.FlashEffectPacket; -import com.vinlanx.explosionoverhaul.GlassBreakingEffects; -import com.vinlanx.explosionoverhaul.ModSounds; -import com.vinlanx.explosionoverhaul.PacketHandler; -import com.vinlanx.explosionoverhaul.PlayTrackedSoundPacket; -import com.vinlanx.explosionoverhaul.RedstoneLampEffects; -import com.vinlanx.explosionoverhaul.SpawnDustCloudPacket; -import com.vinlanx.explosionoverhaul.SpawnLineSparksPacket; -import com.vinlanx.explosionoverhaul.SpawnMistCloudPacket; -import com.vinlanx.explosionoverhaul.SpawnShockwavePacket; -import com.vinlanx.explosionoverhaul.StartConcussionPacket; -import com.vinlanx.explosionoverhaul.SuppressExplosionSoundPacket; -import com.vinlanx.explosionoverhaul.api.IExplosionPower; -import com.vinlanx.explosionoverhaul.mixinhelper.ExplosionAccessor; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; import java.util.List; -import java.util.Random; -import java.util.Set; import net.minecraft.core.BlockPos; -import net.minecraft.core.Position; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundEvent; -import net.minecraft.sounds.SoundSource; -import net.minecraft.tags.BlockTags; -import net.minecraft.util.Mth; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.ClipContext; import net.minecraft.world.level.Explosion; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.HitResult; -import net.minecraft.world.phys.Vec3; -import net.neoforged.neoforge.network.PacketDistributor; public class ServerExplosionHandler { - private static final ServerExplosionHandler INSTANCE = new ServerExplosionHandler(); - private final Random random = new Random(); - public static void handleExplosion(ServerLevel level, Explosion explosion, List affectedBlocks) { - INSTANCE.onExplosion(level, explosion, affectedBlocks); + if (!((Boolean)Config.COMMON.enableCraterDestruction.get()).booleanValue()) { + affectedBlocks.clear(); + } } public static void register() { } - - private void onExplosion(ServerLevel level, Explosion explosion, List affectedBlocks) { - boolean shouldBreakGlass; - boolean shouldDestroyBlocks; - float power; - Vec3 explosionPos; - ExplosionOverhaul.ExplosionSourceMode mode; - Entity exploder; - String sourceId = "generic"; - if (explosion instanceof ExplosionAccessor) { - ExplosionAccessor accessor = (ExplosionAccessor)explosion; - v0 = accessor.explosionoverhaul$getSource(); - } else { - v0 = exploder = null; - } - if (exploder != null) { - IExplosionPower pw; - ResourceLocation exploderId = BuiltInRegistries.ENTITY_TYPE.getKey(exploder.m_6095_()); - if (exploderId != null) { - sourceId = exploderId.toString(); - } - if (exploderId != null && "createbigcannons".equals(exploderId.m_135827_()) && explosion instanceof IExplosionPower && (pw = (IExplosionPower)explosion).getPower() <= 2.0f) { - return; - } - } - if ((mode = ExplosionOverhaul.getSourceMode(sourceId)) == ExplosionOverhaul.ExplosionSourceMode.VANILLA) { - return; - } - if (explosion instanceof ExplosionAccessor) { - ExplosionAccessor accessor = (ExplosionAccessor)explosion; - v1 = accessor.explosionoverhaul$getCenter(); - } else { - v1 = explosionPos = Vec3.f_82478_; - } - if (explosion instanceof IExplosionPower) { - IExplosionPower powerHolder = (IExplosionPower)explosion; - power = powerHolder.getPower(); - if (power >= 1.0f) { - for (ServerPlayer player : level.m_6907_()) { - if (player.f_8906_ == null) continue; - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new SuppressExplosionSoundPacket(power)); - } - } - } else { - System.err.println("[explosionoverhaul] WARNING: Explosion is not IExplosionPower \u2014 Mixin did not work. Explosion processing canceled."); - return; - } - power = ExplosionClusterHandler.calculateClusteredPower((Level)level, explosionPos, power); - boolean bl = shouldDestroyBlocks = (Boolean)Config.COMMON.enableCraterDestruction.get() != false && mode != ExplosionOverhaul.ExplosionSourceMode.NO_DESTRUCTION && mode != ExplosionOverhaul.ExplosionSourceMode.NO_DESTRUCTION_GLASSWORKS; - if (shouldDestroyBlocks) { - boolean useAsync = (Boolean)Config.COMMON.enableAsyncCrater.get(); - if (useAsync) { - affectedBlocks.clear(); - AsyncCraterManager.submit(level, explosionPos, power); - } else { - HashSet originalAffectedBlocks = new HashSet(affectedBlocks); - affectedBlocks.clear(); - Iterator iterator = originalAffectedBlocks.iterator(); - while (iterator.hasNext()) { - BlockPos pos = (BlockPos)iterator.next(); - BlockState state = level.m_8055_(pos); - Block block = state.m_60734_(); - if (ExplosionOverhaul.isBlockBlacklisted(block)) continue; - affectedBlocks.add(pos); - } - Set craterBlocks = CraterDeformer.getCraterBlocks(level, explosionPos, power); - for (BlockPos pos : craterBlocks) { - if (affectedBlocks.contains(pos)) continue; - BlockState state = level.m_8055_(pos); - Block block = state.m_60734_(); - if (state.m_60795_() || !(state.m_60800_((BlockGetter)level, pos) >= 0.0f) || block.m_204297_().m_203656_(BlockTags.f_13070_) || block == Blocks.f_50722_ || ExplosionOverhaul.isBlockBlacklisted(block)) continue; - affectedBlocks.add(pos); - } - } - } else { - affectedBlocks.clear(); - } - boolean bl2 = shouldBreakGlass = (Boolean)Config.COMMON.enableGlassBreaking.get() != false && mode != ExplosionOverhaul.ExplosionSourceMode.NO_DESTRUCTION; - if (shouldBreakGlass) { - GlassBreakingEffects.trigger(level, explosionPos, power); - } - for (ServerPlayer player : level.m_6907_()) { - long delayTicksEffect; - double speedOfSound; - if (player.f_8906_ == null) continue; - double distance = player.m_20182_().m_82554_(explosionPos); - BlockPos playerBlockPos = player.m_20183_(); - boolean playerInCave = ServerExplosionHandler.isInNaturalCave(level, playerBlockPos); - boolean playerInHouse = ServerExplosionHandler.isInHouse(level, playerBlockPos, player.m_146892_().f_82480_); - BlockPos explosionOrigin = BlockPos.m_274446_((Position)explosionPos); - BlockPos nearestSolidAbove = ServerExplosionHandler.findNearestSolidUp(level, explosionOrigin, 50); - boolean explosionIsInCaveLocation = nearestSolidAbove != null ? ServerExplosionHandler.isInNaturalCave(level, nearestSolidAbove) : ServerExplosionHandler.isInNaturalCave(level, explosionOrigin); - boolean hasDirectLineOfSight = false; - if (distance > 0.1 && distance <= 200.0) { - Vec3 playerEyePos = player.m_146892_(); - hasDirectLineOfSight = ServerExplosionHandler.hasLineOfSight(level, playerEyePos, explosionPos, (Entity)player); - } - if (distance <= 200.0) { - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new StartConcussionPacket(power, distance, hasDirectLineOfSight, explosionIsInCaveLocation)); - } - int dripstoneThreshold = 0; - if (distance >= 500.0 && distance < 1000.0) { - dripstoneThreshold = 10; - } else if (distance >= 1000.0 && distance < 5000.0) { - dripstoneThreshold = 25; - } else if (distance >= 5000.0) { - dripstoneThreshold = 50; - } - if (dripstoneThreshold > 0 && power >= (float)dripstoneThreshold) { - DripstoneEffects.handleDripstoneFall(level, playerBlockPos, (int)Math.ceil(power), player.m_217043_()); - } - List soundPool = null; - int closeSoundDistanceThreshold = level.m_46472_() == Level.f_46429_ ? 100 : (level.m_46472_() == Level.f_46430_ ? 150 : 50); - if (distance <= (double)closeSoundDistanceThreshold) { - soundPool = power <= 3.0f ? List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_1_3.get()) : (power <= 6.0f ? List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_2_3.get()) : (power <= 14.0f ? List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_3_3.get()) : (power <= 30.0f ? List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_4_3.get()) : (power <= 60.0f ? List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_5_3.get()) : (power <= 99.0f ? List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_6_3.get()) : List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_7_3.get())))))); - } else { - if (hasDirectLineOfSight) { - if (playerInHouse) { - if (distance <= 500.0) { - soundPool = ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_7_3.get()); - } else if (distance <= 1000.0) { - soundPool = ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_7_3.get()); - } else if (distance <= 5000.0) { - soundPool = ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_7_3.get()); - } - } else if (distance <= 500.0) { - soundPool = ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_7_3.get()); - } else if (distance <= 1000.0) { - soundPool = ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_FAR_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_7_3.get()); - } else if (distance <= 5000.0) { - soundPool = ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_7_3.get()); - } - } else if (distance <= 500.0) { - soundPool = playerInHouse && explosionIsInCaveLocation ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_7_3.get()) : (playerInHouse ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_7_3.get()) : (explosionIsInCaveLocation && !playerInCave ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_UNDERGROUND_POWER_7_3.get()) : (playerInCave ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_7_3.get()) : ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_7_3.get())))); - } else if (distance <= 1000.0) { - soundPool = playerInHouse && explosionIsInCaveLocation ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_7_3.get()) : (playerInHouse ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_7_3.get()) : (explosionIsInCaveLocation && !playerInCave ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_UNDERGROUND_POWER_7_3.get()) : (playerInCave ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_7_3.get()) : ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_FAR_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_7_3.get())))); - } else if (distance <= 5000.0) { - soundPool = playerInHouse && explosionIsInCaveLocation ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_7_3.get()) : (playerInHouse ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_7_3.get()) : (explosionIsInCaveLocation && !playerInCave ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_UNDERGROUND_POWER_7_3.get()) : (playerInCave ? ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_7_3.get()) : ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_7_3.get())))); - } - if (!(soundPool != null || distance > 5000.0 && distance <= 6000.0 && power > 60.0f) && distance > 5000.0) continue; - } - if (!((Boolean)Config.COMMON.enableAdvancedSoundSpeed.get()).booleanValue()) { - speedOfSound = 343.0; - delayTicksEffect = (long)(distance / (speedOfSound / 20.0)); - } else { - speedOfSound = distance <= 20.0 ? 40.0 : (distance <= 40.0 ? 40.0 : (distance <= 80.0 ? 80.0 : (distance <= 160.0 ? 66.7 : (distance <= 240.0 ? 266.7 : 343.0)))); - double speedPerTick = speedOfSound / 20.0; - delayTicksEffect = distance <= 240.0 ? (long)(distance / speedPerTick) : (long)(distance / 17.15); - } - if (soundPool != null && !soundPool.isEmpty()) { - boolean useAmbientSound; - SoundEvent sound = soundPool.get(this.random.nextInt(soundPool.size())); - float pitch = 0.95f + this.random.nextFloat() * 0.1f; - float volume = Math.min(power * 10.0f, 90.0f); - boolean bl3 = useAmbientSound = !hasDirectLineOfSight && (playerInCave || explosionIsInCaveLocation); - if (distance <= (double)closeSoundDistanceThreshold) { - ExplosionOverhaul.addDelayedSound(player, sound, SoundSource.BLOCKS, (float)explosionPos.f_82479_, (float)explosionPos.f_82480_, (float)explosionPos.f_82481_, volume, pitch, player.m_217043_().m_188505_(), delayTicksEffect); - } else if (useAmbientSound) { - ExplosionOverhaul.addDelayedSound(player, sound, SoundSource.AMBIENT, (float)player.m_20185_(), (float)player.m_20186_(), (float)player.m_20189_(), volume, pitch, player.m_217043_().m_188505_(), delayTicksEffect); - } else { - ResourceLocation soundId = BuiltInRegistries.SOUND_EVENT.getKey(sound); - if (soundId != null) { - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new PlayTrackedSoundPacket(explosionPos, soundId, volume, pitch, delayTicksEffect, playerInHouse)); - } - } - } - float fireballPowerFraction = Mth.m_14036_((float)power, (float)1.0f, (float)100.0f) / 100.0f; - float fireballRadius = Mth.m_14179_((float)fireballPowerFraction, (float)3.0f, (float)40.0f); - float normalizedPowerSqrt = Mth.m_184655_((float)((float)Math.sqrt(power)), (float)((float)Math.sqrt(5.0)), (float)((float)Math.sqrt(100.0))); - float shockwaveMultiplier = Mth.m_14179_((float)normalizedPowerSqrt, (float)2.0f, (float)8.0f); - float maxShockwaveRadius = fireballRadius * shockwaveMultiplier * 3.0f; - if (distance <= (double)(maxShockwaveRadius *= 4.0f)) { - float sendIntensity; - CameraShakeProfile closeProfile = this.determineCameraShakeProfile(power, 0.0, playerInCave, closeSoundDistanceThreshold, level); - float baseIntensity = closeProfile.intensity; - int durationTicks = closeProfile.durationTicks; - float basePush = closeProfile.pushIntensity; - if (distance <= 10.0) { - sendIntensity = baseIntensity; - } else { - float t = 1.0f - Mth.m_14036_((float)((float)(distance / (double)maxShockwaveRadius)), (float)0.0f, (float)1.0f); - float atten = t * t; - sendIntensity = baseIntensity * atten; - } - if (sendIntensity > 0.01f && durationTicks > 0) { - int delayTicks = (int)Math.max(0L, Math.round(distance / speedOfSound)); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new CameraShakePacket(sendIntensity, durationTicks, basePush, delayTicks)); - } - } - float lampFlickerPowerThreshold = distance > 1000.0 && distance <= 5000.0 ? 31.0f : (distance > 500.0 && distance <= 1000.0 ? 20.0f : (distance > (double)closeSoundDistanceThreshold && distance <= 500.0 ? 10.0f : (distance <= (double)closeSoundDistanceThreshold ? 4.0f : Float.MAX_VALUE))); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new ExplosionVisualsPacket(explosionPos, power)); - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new FlashEffectPacket(explosionPos, power)); - if (power >= lampFlickerPowerThreshold) { - RedstoneLampEffects.triggerLampFlicker(level, player, power, delayTicksEffect, distance); - if (((Boolean)Config.COMMON.enableDripstoneFalling.get()).booleanValue()) { - DripstoneEffects.handleDripstoneFall(level, player.m_20183_(), (int)power, level.f_46441_); - } - } - if (power >= 5.0f) { - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new SpawnShockwavePacket(explosionPos, power)); - } - if (power >= 5.0f) { - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new SpawnDustCloudPacket(explosionPos, power)); - } - if (power >= 5.0f) { - PacketHandler.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), (Object)new SpawnMistCloudPacket(explosionPos, power)); - } - if (!playerInCave) continue; - ExplosionOverhaul.CaveEffects.spawnFallingBlocksAndDust(level, explosionPos, player, power, delayTicksEffect); - } - if (power >= 2.0f) { - SpawnLineSparksPacket packet = new SpawnLineSparksPacket(explosionPos, power); - PacketDistributor.TargetPoint targetPoint = new PacketDistributor.TargetPoint(explosionPos.m_7096_(), explosionPos.m_7098_(), explosionPos.m_7094_(), 700.0, level.m_46472_()); - PacketHandler.INSTANCE.send(PacketDistributor.NEAR.with(() -> targetPoint), (Object)packet); - } - } - - private CameraShakeProfile determineCameraShakeProfile(float power, double distance, boolean playerInCave, int actualCloseDistance, ServerLevel level) { - float intensity = 0.0f; - int baseDuration = 20; - float pushIntensity = 0.0f; - int baseMediumDistance = 500; - int baseFarDistance = 1000; - int baseSuperFarDistance = 5000; - int mediumDistance = Math.round(2000.0f); - int farDistance = Math.round(4000.0f); - int superFarDistance = Math.round(20000.0f); - int scaledCloseDistance = Math.round((float)actualCloseDistance * 4.0f); - int powerCategory = power <= 3.0f ? 1 : (power <= 6.0f ? 2 : (power <= 14.0f ? 3 : (power <= 30.0f ? 4 : (power <= 60.0f ? 5 : (power <= 99.0f ? 6 : 7))))); - int shakeLevel = 0; - if (distance <= (double)scaledCloseDistance) { - if (powerCategory == 1) { - shakeLevel = 2; - baseDuration = 15; - } else if (powerCategory == 2) { - shakeLevel = 3; - baseDuration = 20; - } else if (powerCategory == 3) { - shakeLevel = 3; - baseDuration = 25; - } else if (powerCategory == 4) { - shakeLevel = 4; - baseDuration = 30; - } else if (powerCategory == 5) { - shakeLevel = 4; - baseDuration = 35; - } else if (powerCategory == 6) { - shakeLevel = 5; - baseDuration = 40; - } else if (powerCategory >= 7) { - shakeLevel = 5; - baseDuration = 50; - } - } else if (distance <= (double)mediumDistance) { - if (powerCategory == 1) { - shakeLevel = 2; - baseDuration = 10; - } else if (powerCategory == 2) { - shakeLevel = 2; - baseDuration = 15; - } else if (powerCategory == 3) { - shakeLevel = 2; - baseDuration = 20; - } else if (powerCategory == 4) { - shakeLevel = 3; - baseDuration = 20; - } else if (powerCategory == 5) { - shakeLevel = 3; - baseDuration = 25; - } else if (powerCategory == 6) { - shakeLevel = 4; - baseDuration = 30; - } else if (powerCategory >= 7) { - shakeLevel = 4; - baseDuration = 35; - } - } else if (distance <= (double)farDistance) { - if (powerCategory == 4) { - shakeLevel = 2; - baseDuration = 10; - } else if (powerCategory == 5) { - shakeLevel = 2; - baseDuration = 15; - } else if (powerCategory == 6) { - shakeLevel = 3; - baseDuration = 20; - } else if (powerCategory >= 7) { - shakeLevel = 3; - baseDuration = 25; - } - } else if (distance <= (double)superFarDistance) { - if (powerCategory == 5) { - shakeLevel = 1; - baseDuration = 10; - } else if (powerCategory == 6) { - shakeLevel = 2; - baseDuration = 15; - } else if (powerCategory >= 7) { - shakeLevel = 3; - baseDuration = 20; - } - } - switch (shakeLevel) { - case 1: { - intensity = 0.3f; - break; - } - case 2: { - intensity = 0.9f; - break; - } - case 3: { - intensity = 2.0f; - break; - } - case 4: { - intensity = 3.25f; - break; - } - case 5: { - intensity = 4.5f; - break; - } - default: { - intensity = 0.0f; - baseDuration = 0; - } - } - if (playerInCave && intensity > 0.0f) { - if (shakeLevel >= 2) { - float basePush = 0.06f + (float)shakeLevel * 0.03f; - pushIntensity = Math.min(basePush * (power / 6.0f), 0.45f); - pushIntensity = Math.max(0.06f, pushIntensity); - } - if (distance > 10.0) { - float attenMax = superFarDistance; - if (attenMax <= 0.0f) { - attenMax = 1.0f; - } - float atten = 1.0f - Mth.m_14036_((float)((float)distance / attenMax), (float)0.0f, (float)1.0f); - intensity *= atten; - pushIntensity *= atten; - } - } - if (intensity > 0.01f && baseDuration < 5) { - baseDuration = 5; - } - if (intensity < 0.01f) { - intensity = 0.0f; - baseDuration = 0; - pushIntensity = 0.0f; - } - return new CameraShakeProfile(intensity, baseDuration, pushIntensity); - } - - public static List getSoundPoolForPower(float power, SoundEvent ... sounds) { - if (sounds.length != 21) { - ExplosionOverhaul.LOGGER.error("Expected 21 sounds for power-based selection, but got " + sounds.length + ". Returning fallback."); - return sounds.length >= 3 ? List.of(sounds[0], sounds[1], sounds[2]) : List.of(); - } - if (power <= 3.0f) { - return List.of(sounds[0], sounds[1], sounds[2]); - } - if (power <= 6.0f) { - return List.of(sounds[3], sounds[4], sounds[5]); - } - if (power <= 14.0f) { - return List.of(sounds[6], sounds[7], sounds[8]); - } - if (power <= 30.0f) { - return List.of(sounds[9], sounds[10], sounds[11]); - } - if (power <= 60.0f) { - return List.of(sounds[12], sounds[13], sounds[14]); - } - if (power <= 99.0f) { - return List.of(sounds[15], sounds[16], sounds[17]); - } - return List.of(sounds[18], sounds[19], sounds[20]); - } - - public static boolean isInNaturalCave(ServerLevel level, BlockPos origin) { - BlockPos[] corners; - boolean isBelowY60; - boolean isBedrockLevel; - if (level.m_46472_() == Level.f_46430_) { - return false; - } - boolean bl = isBedrockLevel = origin.m_123342_() < level.m_141937_() + 5; - if (isBedrockLevel && !level.m_45527_(origin)) { - return true; - } - boolean bl2 = isBelowY60 = origin.m_123342_() < 60; - if (isBelowY60 && !level.m_45527_(origin)) { - return true; - } - int radius = 4; - for (int dy = 0; dy <= 55; ++dy) { - BlockPos[] upPos = origin.m_6630_(dy); - if (!level.m_46749_((BlockPos)upPos) || !level.m_45527_((BlockPos)upPos)) continue; - return false; - } - for (BlockPos corner : corners = new BlockPos[]{origin.m_7918_(radius, 0, radius), origin.m_7918_(radius, 0, -radius), origin.m_7918_(-radius, 0, radius), origin.m_7918_(-radius, 0, -radius)}) { - for (int dy = 0; dy <= 55; ++dy) { - BlockPos p = corner.m_6630_(dy); - if (!level.m_46749_(p) || !level.m_45527_(p)) continue; - return false; - } - } - int stoneCount = 0; - int solidCount = 0; - boolean skySeenInVicinity = false; - int checkedBlocks = 0; - List caveStoneBlocks = List.of(Blocks.f_50069_, Blocks.f_50652_, Blocks.f_50079_, Blocks.f_152550_, Blocks.f_152551_, Blocks.f_50334_, Blocks.f_50228_, Blocks.f_50122_, Blocks.f_152496_, Blocks.f_50134_, Blocks.f_50730_, Blocks.f_50137_, Blocks.f_50135_, Blocks.f_50136_); - for (int dx = -radius; dx <= radius; ++dx) { - for (int dy = -radius; dy <= radius; ++dy) { - for (int dz = -radius; dz <= radius; ++dz) { - BlockPos checkPos = origin.m_7918_(dx, dy, dz); - if (!level.m_46749_(checkPos)) continue; - ++checkedBlocks; - BlockState state = level.m_8055_(checkPos); - if (state.m_280296_()) { - ++solidCount; - if (!caveStoneBlocks.contains(state.m_60734_())) continue; - ++stoneCount; - continue; - } - if (!level.m_45527_(checkPos)) continue; - return false; - } - } - } - if (checkedBlocks == 0) { - return false; - } - return false; - } - - public static boolean isInHouse(ServerLevel level, BlockPos origin, double playerEyeY) { - if (level.m_46472_() == Level.f_46430_) { - return false; - } - if (level.m_45527_(origin)) { - return false; - } - if (origin.m_123342_() < level.m_5736_() - 10 && level.m_46472_() == Level.f_46428_) { - return false; - } - int artificialBlockCount = 0; - int functionalBlockCount = 0; - boolean hasSolidRoofDirectlyAbove = false; - int radius = 2; - int checkedBlocks = 0; - List artificialKeywords = Arrays.asList("planks", "log", "wood", "brick", "stone_brick", "glass", "wool", "terracotta", "concrete", "door", "fence", "stairs", "slab", "wall", "iron_block", "gold_block", "diamond_block", "emerald_block", "quartz_block", "purpur_block"); - List specificArtificialBlocks = Arrays.asList(Blocks.f_50652_, Blocks.f_50079_); - List functionalBlocks = Arrays.asList(Blocks.f_50091_, Blocks.f_50094_, Blocks.f_50620_, Blocks.f_50619_, Blocks.f_50087_, Blocks.f_50325_, Blocks.f_50265_, Blocks.f_50618_, Blocks.f_50322_, Blocks.f_50323_, Blocks.f_50324_, Blocks.f_50624_, Blocks.f_50621_, Blocks.f_50617_, Blocks.f_50625_, Blocks.f_50623_, Blocks.f_50679_, Blocks.f_50680_, Blocks.f_50131_, Blocks.f_50255_); - BlockPos headPos = BlockPos.m_274561_((double)origin.m_123341_(), (double)playerEyeY, (double)origin.m_123343_()); - if (level.m_8055_(headPos.m_6630_(1)).m_280296_() && level.m_8055_(headPos.m_6630_(2)).m_280296_()) { - hasSolidRoofDirectlyAbove = true; - } - for (int dx = -radius; dx <= radius; ++dx) { - for (int dy = -radius; dy <= radius; ++dy) { - for (int dz = -radius; dz <= radius; ++dz) { - BlockPos checkPos = origin.m_7918_(dx, dy, dz); - if (!level.m_46749_(checkPos)) continue; - ++checkedBlocks; - BlockState state = level.m_8055_(checkPos); - Block block = state.m_60734_(); - ResourceLocation registryName = BuiltInRegistries.BLOCK.getKey(block); - String name = registryName != null ? registryName.m_135815_() : ""; - boolean isKeywordArtificial = artificialKeywords.stream().anyMatch(name::contains); - if (state.m_280296_() && (isKeywordArtificial || specificArtificialBlocks.contains(block))) { - ++artificialBlockCount; - } - if (!state.m_204336_(BlockTags.f_13038_) && !functionalBlocks.contains(block)) continue; - ++functionalBlockCount; - } - } - } - if (checkedBlocks == 0) { - return false; - } - double artificialRatio = (double)artificialBlockCount / (double)checkedBlocks; - if (hasSolidRoofDirectlyAbove && (artificialBlockCount > 3 || functionalBlockCount > 0)) { - return true; - } - if (artificialBlockCount > 7 && (functionalBlockCount > 0 || artificialRatio > 0.35)) { - return true; - } - return artificialRatio > 0.2 && artificialBlockCount > 5; - } - - public static boolean hasLineOfSight(ServerLevel level, Vec3 startPos, Vec3 endPos, Entity entityContext) { - if (startPos.equals((Object)endPos)) { - return true; - } - ClipContext clipContext = new ClipContext(startPos, endPos, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, entityContext); - BlockHitResult hitResult = level.m_45547_(clipContext); - return hitResult.m_6662_() == HitResult.Type.MISS; - } - - public static BlockPos findNearestSolidUp(ServerLevel level, BlockPos origin, int maxUp) { - for (int dy = 0; dy <= maxUp; ++dy) { - BlockState s; - BlockPos p = origin.m_6630_(dy); - if (!level.m_46749_(p) || !(s = level.m_8055_(p)).m_280296_()) continue; - return p; - } - return null; - } - - public static List getSoundPool(Level level, float power, double distance, boolean playerInHouse, boolean explosionIsInCaveLocation) { - int closeSoundDistanceThreshold = level.m_46472_() == Level.f_46429_ ? 100 : (level.m_46472_() == Level.f_46430_ ? 150 : 50); - if (distance <= (double)closeSoundDistanceThreshold) { - if (power <= 3.0f) { - return List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_1_3.get()); - } - if (power <= 6.0f) { - return List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_2_3.get()); - } - if (power <= 14.0f) { - return List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_3_3.get()); - } - if (power <= 30.0f) { - return List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_4_3.get()); - } - if (power <= 60.0f) { - return List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_5_3.get()); - } - if (power <= 99.0f) { - return List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_6_3.get()); - } - return List.of((SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_CLOSE_POWER_7_3.get()); - } - if (distance <= 500.0) { - if (playerInHouse && explosionIsInCaveLocation) { - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_TO_HOUSE_POWER_7_3.get()); - } - if (playerInHouse) { - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_TO_HOUSE_POWER_7_3.get()); - } - if (explosionIsInCaveLocation) { - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_CAVE_POWER_7_3.get()); - } - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_MEDIUM_POWER_7_3.get()); - } - if (distance <= 1000.0) { - if (playerInHouse && explosionIsInCaveLocation) { - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_TO_HOUSE_POWER_7_3.get()); - } - if (playerInHouse) { - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_TO_HOUSE_POWER_7_3.get()); - } - if (explosionIsInCaveLocation) { - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_CAVE_POWER_7_3.get()); - } - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_FAR_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_FAR_POWER_7_3.get()); - } - if (distance <= 5001.0) { - if (playerInHouse && explosionIsInCaveLocation) { - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_TO_HOUSE_POWER_7_3.get()); - } - if (playerInHouse) { - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_TO_HOUSE_POWER_7_3.get()); - } - if (explosionIsInCaveLocation) { - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_CAVE_POWER_7_3.get()); - } - return ServerExplosionHandler.getSoundPoolForPower(power, (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_1_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_1_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_1_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_2_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_2_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_2_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_3_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_3_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_3_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_4_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_4_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_4_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_5_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_5_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_5_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_6_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_6_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_6_3.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_7_1.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_7_2.get(), (SoundEvent)ModSounds.EXPLODE_SUPERFAR_POWER_7_3.get()); - } - return null; - } - - public record CameraShakeProfile(float intensity, int durationTicks, float pushIntensity) { - } } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/SpawnCustomGlowPacket.java b/src/main/java/com/vinlanx/explosionoverhaul/SpawnCustomGlowPacket.java index c308cc0..0bed435 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/SpawnCustomGlowPacket.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/SpawnCustomGlowPacket.java @@ -61,7 +61,7 @@ public class SpawnCustomGlowPacket { public static class ClientPacketHandler { public static void handlePacket(SpawnCustomGlowPacket msg) { - ClientLevel level = Minecraft.m_91087_().f_91073_; + ClientLevel level = Minecraft.getInstance().f_91073_; if (level != null) { CustomGlowParticleOptions options = new CustomGlowParticleOptions(msg.zone, msg.power, msg.scale, 0, msg.centerY, msg.maxRadius, msg.heightPercent); level.m_7106_((ParticleOptions)options, msg.pos.f_82479_, msg.pos.f_82480_, msg.pos.f_82481_, msg.motion.f_82479_, msg.motion.f_82480_, msg.motion.f_82481_); diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/AnimationSoundManager.java b/src/main/java/com/vinlanx/explosionoverhaul/client/AnimationSoundManager.java index 0306ee3..7046286 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/AnimationSoundManager.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/AnimationSoundManager.java @@ -42,7 +42,7 @@ public class AnimationSoundManager { } lastAnimationSoundIndex = AnimationSoundManager.getNextRandomIndex(ANIMATION_SOUNDS, lastAnimationSoundIndex); SoundEvent sound = (SoundEvent)ANIMATION_SOUNDS.get(lastAnimationSoundIndex).get(); - Minecraft.m_91087_().m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119752_((SoundEvent)sound, (float)1.0f)); + Minecraft.getInstance().m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119752_((SoundEvent)sound, (float)1.0f)); } public static void playRandomFarPower2Sound() { @@ -51,7 +51,7 @@ public class AnimationSoundManager { } lastFarPower2SoundIndex = AnimationSoundManager.getNextRandomIndex(FAR_POWER_2_SOUNDS, lastFarPower2SoundIndex); SoundEvent sound = (SoundEvent)FAR_POWER_2_SOUNDS.get(lastFarPower2SoundIndex).get(); - Minecraft.m_91087_().m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119752_((SoundEvent)sound, (float)1.0f)); + Minecraft.getInstance().m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119752_((SoundEvent)sound, (float)1.0f)); } public static void playRandomFarPower3Sound() { @@ -60,7 +60,7 @@ public class AnimationSoundManager { } lastFarPower3SoundIndex = AnimationSoundManager.getNextRandomIndex(FAR_POWER_3_SOUNDS, lastFarPower3SoundIndex); SoundEvent sound = (SoundEvent)FAR_POWER_3_SOUNDS.get(lastFarPower3SoundIndex).get(); - Minecraft.m_91087_().m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119752_((SoundEvent)sound, (float)1.0f)); + Minecraft.getInstance().m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119752_((SoundEvent)sound, (float)1.0f)); } public static void playRandomMediumCavePower4Sound() { @@ -69,7 +69,7 @@ public class AnimationSoundManager { } lastMediumCavePower4SoundIndex = AnimationSoundManager.getNextRandomIndex(MEDIUM_CAVE_POWER_4_SOUNDS, lastMediumCavePower4SoundIndex); SoundEvent sound = (SoundEvent)MEDIUM_CAVE_POWER_4_SOUNDS.get(lastMediumCavePower4SoundIndex).get(); - Minecraft.m_91087_().m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119752_((SoundEvent)sound, (float)1.0f)); + Minecraft.getInstance().m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119752_((SoundEvent)sound, (float)1.0f)); } public static void playRandomSuperfar4Sound() { @@ -78,7 +78,7 @@ public class AnimationSoundManager { } lastSuperfar4SoundIndex = AnimationSoundManager.getNextRandomIndex(SUPERFAR_POWER_4_SOUNDS, lastSuperfar4SoundIndex); SoundEvent sound = (SoundEvent)SUPERFAR_POWER_4_SOUNDS.get(lastSuperfar4SoundIndex).get(); - Minecraft.m_91087_().m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119752_((SoundEvent)sound, (float)1.0f)); + Minecraft.getInstance().m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119752_((SoundEvent)sound, (float)1.0f)); } static { diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/BlacklistScreen.java b/src/main/java/com/vinlanx/explosionoverhaul/client/BlacklistScreen.java index 8ad5d92..b143494 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/BlacklistScreen.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/BlacklistScreen.java @@ -66,7 +66,7 @@ extends Screen { private List registryCache = new ArrayList(); public BlacklistScreen(Screen parent) { - super((Component)Component.m_237115_((String)"title.explosionoverhaul.blacklist")); + super((Component)Component.translatable((String)"title.explosionoverhaul.blacklist")); this.parent = parent; } @@ -93,7 +93,7 @@ extends Screen { private void addNavigation() { int buttonY = 48; for (BlacklistCategory category : BlacklistCategory.values()) { - Button button = Button.m_253074_((Component)this.formatCategoryLabel(category), b -> this.selectCategory(category)).m_252794_(12, buttonY).m_253046_(160, 20).m_257505_(Tooltip.m_257550_((Component)Component.m_237115_((String)category.getTooltipKey()))).m_253136_(); + Button button = Button.m_253074_((Component)this.formatCategoryLabel(category), b -> this.selectCategory(category)).m_252794_(12, buttonY).m_253046_(160, 20).m_257505_(Tooltip.m_257550_((Component)Component.translatable((String)category.getTooltipKey()))).m_253136_(); this.categoryButtons.put(category, button); this.m_142416_((GuiEventListener)button); buttonY += 24; @@ -102,15 +102,15 @@ extends Screen { private void addTopControls() { int listLeft = 172; - this.backButton = Button.m_253074_((Component)Component.m_237115_((String)"gui.back"), b -> this.m_7379_()).m_252794_(12, 12).m_253046_(80, 20).m_253136_(); + this.backButton = Button.m_253074_((Component)Component.translatable((String)"gui.back"), b -> this.m_7379_()).m_252794_(12, 12).m_253046_(80, 20).m_253136_(); this.m_142416_((GuiEventListener)this.backButton); this.searchField = new EditBox(this.f_96547_, listLeft, 26, 200, 18, (Component)Component.m_237119_()); - this.searchField.m_257771_((Component)Component.m_237115_((String)"option.explosionoverhaul.blacklist_search")); + this.searchField.m_257771_((Component)Component.translatable((String)"option.explosionoverhaul.blacklist_search")); this.searchField.m_94151_(s -> this.refreshList()); this.m_142416_((GuiEventListener)this.searchField); - this.resetButton = Button.m_253074_((Component)Component.m_237115_((String)"option.explosionoverhaul.reset_list"), this::onResetClicked).m_252794_(this.f_96543_ - 250, 12).m_253046_(60, 20).m_257505_(Tooltip.m_257550_((Component)Component.m_237115_((String)"tooltip.explosionoverhaul.reset_list"))).m_253136_(); + this.resetButton = Button.m_253074_((Component)Component.translatable((String)"option.explosionoverhaul.reset_list"), this::onResetClicked).m_252794_(this.f_96543_ - 250, 12).m_253046_(60, 20).m_257505_(Tooltip.m_257550_((Component)Component.translatable((String)"tooltip.explosionoverhaul.reset_list"))).m_253136_(); this.m_142416_((GuiEventListener)this.resetButton); - this.defaultToggle = CycleButton.m_168916_((boolean)this.showDefaults).m_232498_(value -> Tooltip.m_257550_((Component)Component.m_237115_((String)"tooltip.explosionoverhaul.show_defaults"))).m_168936_(this.f_96543_ - 180, 12, 168, 20, (Component)Component.m_237115_((String)"option.explosionoverhaul.show_defaults"), (btn, value) -> { + this.defaultToggle = CycleButton.m_168916_((boolean)this.showDefaults).m_232498_(value -> Tooltip.m_257550_((Component)Component.translatable((String)"tooltip.explosionoverhaul.show_defaults"))).m_168936_(this.f_96543_ - 180, 12, 168, 20, (Component)Component.translatable((String)"option.explosionoverhaul.show_defaults"), (btn, value) -> { this.showDefaults = value; this.refreshList(); }); @@ -121,12 +121,12 @@ extends Screen { int y = this.f_96544_ - 28; this.inputField = new EditBox(this.f_96547_, (this.f_96543_ - 240) / 2, y, 240, 18, (Component)Component.m_237119_()); this.inputField.m_94199_(128); - this.inputField.m_257771_((Component)Component.m_237115_((String)"option.explosionoverhaul.blacklist_input")); + this.inputField.m_257771_((Component)Component.translatable((String)"option.explosionoverhaul.blacklist_input")); this.inputField.m_94151_(this::updateSuggestions); this.m_142416_((GuiEventListener)this.inputField); - this.addButton = Button.m_253074_((Component)Component.m_237115_((String)"option.explosionoverhaul.blacklist_add"), b -> this.addCurrentInput()).m_252794_(this.inputField.m_252754_() + 240 + 8, this.inputField.m_252907_() - 1).m_253046_(80, 20).m_253136_(); + this.addButton = Button.m_253074_((Component)Component.translatable((String)"option.explosionoverhaul.blacklist_add"), b -> this.addCurrentInput()).m_252794_(this.inputField.m_252754_() + 240 + 8, this.inputField.m_252907_() - 1).m_253046_(80, 20).m_253136_(); this.m_142416_((GuiEventListener)this.addButton); - this.infoButton = Button.m_253074_((Component)Component.m_237115_((String)"option.explosionoverhaul.blacklist_info"), b -> {}).m_252794_(this.addButton.m_252754_() + 80 + 4, this.addButton.m_252907_()).m_253046_(40, 20).m_257505_(Tooltip.m_257550_((Component)Component.m_237115_((String)"tooltip.explosionoverhaul.blacklist_info"))).m_253136_(); + this.infoButton = Button.m_253074_((Component)Component.translatable((String)"option.explosionoverhaul.blacklist_info"), b -> {}).m_252794_(this.addButton.m_252754_() + 80 + 4, this.addButton.m_252907_()).m_253046_(40, 20).m_257505_(Tooltip.m_257550_((Component)Component.translatable((String)"tooltip.explosionoverhaul.blacklist_info"))).m_253136_(); this.infoButton.f_93624_ = this.currentCategory == BlacklistCategory.SOURCES; this.m_142416_((GuiEventListener)this.infoButton); } @@ -142,7 +142,7 @@ extends Screen { this.save(); } this.refreshList(); - this.displayStatus((Component)Component.m_237115_((String)"message.explosionoverhaul.list_reset")); + this.displayStatus((Component)Component.translatable((String)"message.explosionoverhaul.list_reset")); } } @@ -185,7 +185,7 @@ extends Screen { if (this.inputField != null) { this.inputField.m_94144_(""); this.updateSuggestions(""); - this.inputField.m_257771_((Component)Component.m_237115_((String)(this.currentCategory == BlacklistCategory.SOURCES ? "option.explosionoverhaul.blacklist_input_entities" : "option.explosionoverhaul.blacklist_input"))); + this.inputField.m_257771_((Component)Component.translatable((String)(this.currentCategory == BlacklistCategory.SOURCES ? "option.explosionoverhaul.blacklist_input_entities" : "option.explosionoverhaul.blacklist_input"))); } } @@ -194,9 +194,9 @@ extends Screen { } private Component formatCategoryLabel(BlacklistCategory category) { - MutableComponent label = Component.m_237115_((String)category.getLabelKey()); + MutableComponent label = Component.translatable((String)category.getLabelKey()); if (category == this.currentCategory) { - return Component.m_237113_((String)"\u25b6 ").m_7220_((Component)label); + return Component.literal((String)"\u25b6 ").m_7220_((Component)label); } return label; } @@ -224,13 +224,13 @@ extends Screen { } else { ResourceLocation id = ResourceLocation.m_135820_((String)(raw.contains(":") ? raw : "minecraft:" + raw)); if (id == null) { - this.displayStatus((Component)Component.m_237115_((String)"message.explosionoverhaul.invalid_id")); + this.displayStatus((Component)Component.translatable((String)"message.explosionoverhaul.invalid_id")); return; } normalized = id.toString(); } if (!this.persistedEntries.add(normalized)) { - this.displayStatus((Component)Component.m_237115_((String)"message.explosionoverhaul.duplicate_entry")); + this.displayStatus((Component)Component.translatable((String)"message.explosionoverhaul.duplicate_entry")); return; } if (this.currentCategory == BlacklistCategory.SOURCES) { @@ -306,7 +306,7 @@ extends Screen { int line = 0; for (String s : this.suggestions) { int yy = y + line * 12; - graphics.m_280509_(x, yy, x + width, yy + 12, -1442840576); + graphics.fill(x, yy, x + width, yy + 12, -1442840576); graphics.m_280056_(this.f_96547_, s, x + 4, yy + 2, 0xE0E0E0, false); ++line; } @@ -432,7 +432,7 @@ extends Screen { } ExplosionOverhaul.ExplosionSourceMode currentMode = BlacklistScreen.this.persistedSourceModes.getOrDefault(id, ExplosionOverhaul.ExplosionSourceMode.DEFAULT); String entryId = id; - this.modeButton = CycleButton.m_168894_(m -> Component.m_237115_((String)("option.explosionoverhaul.sourcemode_" + m.name().toLowerCase(Locale.ROOT)))).m_168961_((Object[])ExplosionOverhaul.ExplosionSourceMode.values()).m_168948_((Object)currentMode).m_232498_(m -> Tooltip.m_257550_((Component)Component.m_237115_((String)("tooltip.explosionoverhaul.sourcemode_" + m.name().toLowerCase(Locale.ROOT))))).m_168936_(0, 0, 150, 20, (Component)Component.m_237119_(), (btn, value) -> { + this.modeButton = CycleButton.m_168894_(m -> Component.translatable((String)("option.explosionoverhaul.sourcemode_" + m.name().toLowerCase(Locale.ROOT)))).m_168961_((Object[])ExplosionOverhaul.ExplosionSourceMode.values()).m_168948_((Object)currentMode).m_232498_(m -> Tooltip.m_257550_((Component)Component.translatable((String)("tooltip.explosionoverhaul.sourcemode_" + m.name().toLowerCase(Locale.ROOT))))).m_168936_(0, 0, 150, 20, (Component)Component.m_237119_(), (btn, value) -> { BlacklistScreen.this.persistedSourceModes.put(entryId, (ExplosionOverhaul.ExplosionSourceMode)((Object)value)); BlacklistScreen.this.save(); }); @@ -445,11 +445,11 @@ extends Screen { } this.icon = stack; } - this.removeButton = Button.m_253074_((Component)Component.m_237113_((String)"\u2715"), b -> BlacklistScreen.this.removeEntry(this.id)).m_252794_(0, 0).m_253046_(20, 20).m_253136_(); + this.removeButton = Button.m_253074_((Component)Component.literal((String)"\u2715"), b -> BlacklistScreen.this.removeEntry(this.id)).m_252794_(0, 0).m_253046_(20, 20).m_253136_(); } public Component m_142172_() { - return Component.m_237113_((String)this.id); + return Component.literal((String)this.id); } public boolean m_6375_(double mouseX, double mouseY, int button) { diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/Blur.java b/src/main/java/com/vinlanx/explosionoverhaul/client/Blur.java index 4b2a398..f555f5d 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/Blur.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/Blur.java @@ -85,7 +85,7 @@ public class Blur { public static void onClientTick() { float intensity; - Minecraft mc = Minecraft.m_91087_(); + Minecraft mc = Minecraft.getInstance(); if (mc.m_91104_() || phase == Phase.IDLE) { return; } @@ -119,8 +119,8 @@ public class Blur { } } currentIntensity = intensity; - if (mc.f_91074_ != null) { - ConcussionAudioEffect.updateHeartbeat(mc.f_91074_, currentIntensity); + if (mc.player != null) { + ConcussionAudioEffect.updateHeartbeat(mc.player, currentIntensity); } } @@ -131,7 +131,7 @@ public class Blur { if (!Blur.shouldRenderStage(stage)) { return; } - Minecraft mc = Minecraft.m_91087_(); + Minecraft mc = Minecraft.getInstance(); if (mc == null) { return; } @@ -170,11 +170,11 @@ public class Blur { } private static boolean isFirstPerson() { - Minecraft mc = Minecraft.m_91087_(); + Minecraft mc = Minecraft.getInstance(); if (mc == null) { return false; } - return mc.f_91066_.m_92176_().m_90612_(); + return mc.options.m_92176_().m_90612_(); } private static void ensureTarget(int width, int height) { diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/CameraShakeConcussionEffect.java b/src/main/java/com/vinlanx/explosionoverhaul/client/CameraShakeConcussionEffect.java index 37deebd..fa4644a 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/CameraShakeConcussionEffect.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/CameraShakeConcussionEffect.java @@ -45,11 +45,11 @@ public class CameraShakeConcussionEffect { } public static void onClientTick() { - Minecraft mc = Minecraft.m_91087_(); + Minecraft mc = Minecraft.getInstance(); if (mc.m_91104_()) { return; } - LocalPlayer player = mc.f_91074_; + LocalPlayer player = mc.player; if (player == null) { CameraShakeConcussionEffect.stop(); return; diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/ClientEffects.java b/src/main/java/com/vinlanx/explosionoverhaul/client/ClientEffects.java index 3d87375..e240be5 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/ClientEffects.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/ClientEffects.java @@ -88,8 +88,8 @@ public class ClientEffects { } private static void handleTrackedSoundsTick() { - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91074_ == null || mc.m_91106_() == null) { + Minecraft mc = Minecraft.getInstance(); + if (mc.player == null || mc.m_91106_() == null) { return; } Iterator iterator = activeTrackedSounds.iterator(); @@ -99,7 +99,7 @@ public class ClientEffects { iterator.remove(); continue; } - tracked.tick((Player)mc.f_91074_, mc.m_91106_(), mc.f_91074_.m_217043_()); + tracked.tick((Player)mc.player, mc.m_91106_(), mc.player.m_217043_()); } } @@ -139,7 +139,7 @@ public class ClientEffects { } public static void onClientTick() { - if (Minecraft.m_91087_().m_91104_()) { + if (Minecraft.getInstance().m_91104_()) { return; } Blur.onClientTick(); @@ -171,13 +171,13 @@ public class ClientEffects { if (!((Boolean)Config.CLIENT.enableFlashEffect.get()).booleanValue()) { return; } - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91074_ == null || activeFlashEffects.isEmpty()) { + Minecraft mc = Minecraft.getInstance(); + if (mc.player == null || activeFlashEffects.isEmpty()) { return; } float maxOpacity = 0.0f; for (FlashEffect effect : activeFlashEffects) { - float opacity = effect.getCurrentOpacity((Player)mc.f_91074_); + float opacity = effect.getCurrentOpacity((Player)mc.player); if (!(opacity > maxOpacity)) continue; maxOpacity = opacity; } @@ -185,8 +185,8 @@ public class ClientEffects { return; } GuiGraphics guiGraphics = event.getGuiGraphics(); - int screenWidth = mc.m_91268_().m_85445_(); - int screenHeight = mc.m_91268_().m_85446_(); + int screenWidth = mc.getWindow().getGuiScaledWidth(); + int screenHeight = mc.getWindow().getGuiScaledHeight(); ResourceLocation flashTexture = ResourceLocation.fromNamespaceAndPath((String)"explosionoverhaul", (String)"textures/effects/flash.png"); RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); @@ -230,8 +230,8 @@ public class ClientEffects { public static void triggerAmbientCaveDust(float power) { int i; - Minecraft mc = Minecraft.m_91087_(); - LocalPlayer player = mc.f_91074_; + Minecraft mc = Minecraft.getInstance(); + LocalPlayer player = mc.player; ClientLevel level = mc.f_91073_; if (player == null || level == null) { return; @@ -255,8 +255,8 @@ public class ClientEffects { } private static void handleCameraShakeTick() { - Minecraft mc = Minecraft.m_91087_(); - LocalPlayer player = mc.f_91074_; + Minecraft mc = Minecraft.getInstance(); + LocalPlayer player = mc.player; if (player == null) { if (shakeDurationTicks > 0 || lastYawOffset != 0.0f || lastPitchOffset != 0.0f) { lastYawOffset = 0.0f; @@ -293,7 +293,7 @@ public class ClientEffects { if (!((Boolean)Config.CLIENT.enableLineSparks.get()).booleanValue()) { return; } - Minecraft mc = Minecraft.m_91087_(); + Minecraft mc = Minecraft.getInstance(); ClientLevel level = mc.f_91073_; if (level == null) { return; diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/ConcussionAudioEffect.java b/src/main/java/com/vinlanx/explosionoverhaul/client/ConcussionAudioEffect.java index 94bd99e..9cf88e0 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/ConcussionAudioEffect.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/ConcussionAudioEffect.java @@ -42,8 +42,8 @@ public class ConcussionAudioEffect { @SubscribeEvent public static void onClientTick(TickEvent.ClientTickEvent event) { if (event.phase == TickEvent.Phase.END) { - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91074_ != null && !mc.f_91074_.m_6084_()) { + Minecraft mc = Minecraft.getInstance(); + if (mc.player != null && !mc.player.m_6084_()) { ConcussionAudioEffect.stopAll(); } } @@ -66,8 +66,8 @@ public class ConcussionAudioEffect { if (!((Boolean)Config.CLIENT.enableConcussion.get()).booleanValue()) { return; } - Minecraft mc = Minecraft.m_91087_(); - if (mc == null || mc.f_91073_ == null || mc.f_91074_ == null) { + Minecraft mc = Minecraft.getInstance(); + if (mc == null || mc.f_91073_ == null || mc.player == null) { return; } double rawPercent = ConcussionAudioEffect.computePercent(power, distance, explosionInCave); @@ -77,12 +77,12 @@ public class ConcussionAudioEffect { double effectivePercent = hasDirectLineOfSight ? rawPercent : ConcussionAudioEffect.applyOcclusion(rawPercent); double maxDistance = ConcussionAudioEffect.computeMaxDistance(power, explosionInCave); if (rawPercent <= 0.0) { - LocalPlayer player4 = mc.f_91074_; + LocalPlayer player4 = mc.player; if (player4 != null && debugSendDebugMessage) { double metersToExplosion = distance; double onePercentDistance = maxDistance * 0.99; String outMessage = String.format("\u041f\u043e\u0437\u0430 \u0437\u043e\u043d\u043e\u044e \u043f\u043e\u0440\u0430\u0437\u043a\u0438. \u0412\u0456\u0434\u0441\u0442\u0430\u043d\u044c \u0434\u043e \u0432\u0438\u0431\u0443\u0445\u0443: %.1f \u043c. 1%% \u043f\u043e\u0447\u0438\u043d\u0430\u0454\u0442\u044c\u0441\u044f \u0437: %.1f \u043c.", metersToExplosion, onePercentDistance); - player4.m_5661_((Component)Component.m_237113_((String)outMessage).m_130940_(ChatFormatting.GRAY), false); + player4.m_5661_((Component)Component.literal((String)outMessage).m_130940_(ChatFormatting.GRAY), false); } return; } @@ -129,17 +129,17 @@ public class ConcussionAudioEffect { if (((Boolean)Config.CLIENT.enableCameraSway.get()).booleanValue()) { CameraShakeConcussionEffect.start(blurSeconds, swayIntensity); } - if (debugSendDebugMessage && (player5 = mc.f_91074_) != null) { + if (debugSendDebugMessage && (player5 = mc.player) != null) { String reductionInfo = lowpassReduced ? " [LowPass reduced /3]" : ""; String blurMsg = String.format("Blur & Sway %.1f m \u2014 activated (Blur: %.2f, Sway: %.2f, Time: %ds%s)", distance, Float.valueOf(blurIntensity), Float.valueOf(swayIntensity), blurSeconds, reductionInfo); - player5.m_5661_((Component)Component.m_237113_((String)blurMsg).m_130940_(ChatFormatting.BLUE), false); + player5.m_5661_((Component)Component.literal((String)blurMsg).m_130940_(ChatFormatting.BLUE), false); } } catch (Throwable player5) {} - } else if (debugSendDebugMessage && (player3 = mc.f_91074_) != null) { + } else if (debugSendDebugMessage && (player3 = mc.player) != null) { String reason = !anyAudioEffectActive ? "no audio effects" : "out of range"; String blurMsg = String.format("Blur %.1f m \u2014 not activated (%s)", distance, reason); - player3.m_5661_((Component)Component.m_237113_((String)blurMsg).m_130940_(ChatFormatting.GRAY), false); + player3.m_5661_((Component)Component.literal((String)blurMsg).m_130940_(ChatFormatting.GRAY), false); } int lowpassSeconds = blurSeconds; double lowpassIntensityPercent = ConcussionAudioEffect.computeBaseLowpassIntensityPercent(effectivePercent); @@ -155,42 +155,42 @@ public class ConcussionAudioEffect { float finalLpIntensity = lowpassRoll ? lowpassIntensity : 0.0f; int finalLpRound = lowpassRoll ? lowpassIntensityRound : 0; LowPassConcussionEffect.start(lowpassSeconds, finalLpIntensity, effectivePercent, lpVisibility, finalLpRound); - if (debugSendDebugMessage && (player6 = mc.f_91074_) != null) { + if (debugSendDebugMessage && (player6 = mc.player) != null) { String status = lowpassRoll ? "activated" : "refreshed"; String lpMsg = String.format("Low pass %.1f m \u2014 %s (intensity=%.2f chance=%.1f%%)", distance, status, Float.valueOf(finalLpIntensity), lowpassChance * 100.0); - player6.m_5661_((Component)Component.m_237113_((String)lpMsg).m_130940_(ChatFormatting.DARK_GREEN), false); + player6.m_5661_((Component)Component.literal((String)lpMsg).m_130940_(ChatFormatting.DARK_GREEN), false); } } catch (Throwable finalLpIntensity) {} - } else if (debugSendDebugMessage && (player2 = mc.f_91074_) != null) { + } else if (debugSendDebugMessage && (player2 = mc.player) != null) { String reason = rawPercent <= 0.0 || lowpassIntensity < 0.01f ? "out of range" : "chance fail"; String lpMsg = String.format("Low pass %.1f m \u2014 not activated (%s)", distance, reason); - player2.m_5661_((Component)Component.m_237113_((String)lpMsg).m_130940_(ChatFormatting.GRAY), false); + player2.m_5661_((Component)Component.literal((String)lpMsg).m_130940_(ChatFormatting.GRAY), false); } if (debugSendDebugMessage) { ConcussionAudioEffect.sendDebugMessage(mc, effectivePercent, rawPercent, hasDirectLineOfSight, distance, maxDistance); } - if (debugSendDebugMessage && (player = mc.f_91074_) != null) { + if (debugSendDebugMessage && (player = mc.player) != null) { Object visibility = hasDirectLineOfSight ? "\u043f\u0440\u044f\u043c\u0430 \u0432\u0438\u0434\u0438\u043c\u0456\u0441\u0442\u044c" : "\u043f\u0435\u0440\u0435\u0448\u043a\u043e\u0434\u0430"; visibility = (String)visibility + (explosionInCave ? " | \u0432\u0438\u0431\u0443\u0445 \u0443 \u043f\u0435\u0447\u0435\u0440\u0456" : " | \u0432\u0438\u0431\u0443\u0445 \u043d\u0435 \u0432 \u043f\u0435\u0447\u0435\u0440\u0456"); visibility = (String)visibility + String.format(" | \u0444\u0456\u043d\u0430\u043b\u044c\u043d\u0438\u0439 %%: %.1f%%", effectivePercent); - player.m_5661_((Component)Component.m_237113_((String)visibility).m_130940_(ChatFormatting.GRAY), false); + player.m_5661_((Component)Component.literal((String)visibility).m_130940_(ChatFormatting.GRAY), false); String chanceMsg = String.format("\u0428\u0430\u043d\u0441 \u043a\u043e\u043d\u0442\u0443\u0437\u0456\u0457: %.1f%%", chance * 100.0); - player.m_5661_((Component)Component.m_237113_((String)chanceMsg).m_130940_(ChatFormatting.YELLOW), false); + player.m_5661_((Component)Component.literal((String)chanceMsg).m_130940_(ChatFormatting.YELLOW), false); double maxDistanceNormal = ConcussionAudioEffect.computeMaxDistance(power, false); double maxDistanceUsed = ConcussionAudioEffect.computeMaxDistance(power, explosionInCave); String distMsg = String.format("\u041c\u0430\u043a\u0441 \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0456\u044f (\u0437\u0432\u0438\u0447\u0430\u0439\u043d\u0430): %.1f \u043c | (\u0432 \u043f\u0435\u0447\u0435\u0440\u0456): %.1f \u043c | \u0412\u0456\u0434\u0441\u0442\u0430\u043d\u044c \u0434\u043e \u0432\u0438\u0431\u0443\u0445\u0443: %.1f \u043c", maxDistanceNormal, maxDistanceUsed, distance); - player.m_5661_((Component)Component.m_237113_((String)distMsg).m_130940_(ChatFormatting.GRAY), false); + player.m_5661_((Component)Component.literal((String)distMsg).m_130940_(ChatFormatting.GRAY), false); double baseSilentNormal = ConcussionAudioEffect.computeBaseSilentSeconds(effectivePercent, false); double baseSilentCave = ConcussionAudioEffect.computeBaseSilentSeconds(effectivePercent, true); String silentMsg = String.format("\u0427\u0430\u0441 \u0441\u043a\u0440\u0443\u0447\u0443\u0432\u0430\u043d\u043d\u044f (\u0437\u0432\u0438\u0447\u0430\u0439\u043d\u0438\u0439): %.1fs | (\u0432 \u043f\u0435\u0447\u0435\u0440\u0456): %.1fs | \u0412\u0418\u041a\u041e\u0420\u0418\u0421\u0422\u0410\u041d\u041e: %.1fs", baseSilentNormal, baseSilentCave, baseSilentSeconds * multiplier); - player.m_5661_((Component)Component.m_237113_((String)silentMsg).m_130940_(ChatFormatting.GRAY), false); + player.m_5661_((Component)Component.literal((String)silentMsg).m_130940_(ChatFormatting.GRAY), false); if (roll) { String deafnessMsg = String.format("Deafness %.1f m \u2014 activated (intensity=%.1f%% chance=%.1f%%)", distance, intensityPercent, chance * 100.0); - player.m_5661_((Component)Component.m_237113_((String)deafnessMsg).m_130940_(ChatFormatting.RED), false); + player.m_5661_((Component)Component.literal((String)deafnessMsg).m_130940_(ChatFormatting.RED), false); } else { String deafnessMsg = String.format("Deafness %.1f m \u2014 not activated (chance)", distance); - player.m_5661_((Component)Component.m_237113_((String)deafnessMsg).m_130940_(ChatFormatting.GRAY), false); + player.m_5661_((Component)Component.literal((String)deafnessMsg).m_130940_(ChatFormatting.GRAY), false); } } if (!roll) { @@ -249,7 +249,7 @@ public class ConcussionAudioEffect { } private static void sendDebugMessage(Minecraft mc, double effectivePercent, double rawPercent, boolean hasDirectLineOfSight, double distance, double maxDistance) { - LocalPlayer player = mc.f_91074_; + LocalPlayer player = mc.player; if (player == null) { return; } @@ -258,16 +258,16 @@ public class ConcussionAudioEffect { double metersToExplosion = distance; double onePercentDistance = maxDistance * 0.99; String outMessage = String.format("\u041f\u043e\u0437\u0430 \u0437\u043e\u043d\u043e\u044e \u043f\u043e\u0440\u0430\u0437\u043a\u0438. \u0412\u0456\u0434\u0441\u0442\u0430\u043d\u044c \u0434\u043e \u0432\u0438\u0431\u0443\u0445\u0443: %.1f \u043c. 1%% \u043f\u043e\u0447\u0438\u043d\u0430\u0454\u0442\u044c\u0441\u044f \u0437: %.1f \u043c.", metersToExplosion, onePercentDistance); - player.m_5661_((Component)Component.m_237113_((String)outMessage).m_130940_(ChatFormatting.GRAY), false); + player.m_5661_((Component)Component.literal((String)outMessage).m_130940_(ChatFormatting.GRAY), false); return; } ChatFormatting color = ConcussionAudioEffect.pickColor(clamped); String visibility = hasDirectLineOfSight ? "\u043f\u0440\u044f\u043c\u0430 \u0432\u0438\u0434\u0438\u043c\u0456\u0441\u0442\u044c" : "\u043f\u0435\u0440\u0435\u0448\u043a\u043e\u0434\u0430"; String message = String.format("\u041f\u043e\u0442\u0443\u0436\u043d\u0456\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0443\u0437\u0456\u0457 %.1f%% (%s)", clamped, visibility); - player.m_5661_((Component)Component.m_237113_((String)message).m_130940_(color), false); + player.m_5661_((Component)Component.literal((String)message).m_130940_(color), false); if (!hasDirectLineOfSight && rawPercent > 0.0) { String rawMessage = String.format("(\u0434\u043e \u043f\u0435\u0440\u0435\u0448\u043a\u043e\u0434\u0438: %.1f%%)", Math.max(0.0, Math.min(100.0, rawPercent))); - player.m_5661_((Component)Component.m_237113_((String)rawMessage).m_130940_(ChatFormatting.GRAY), false); + player.m_5661_((Component)Component.literal((String)rawMessage).m_130940_(ChatFormatting.GRAY), false); } } @@ -445,8 +445,8 @@ public class ConcussionAudioEffect { if (!((Boolean)Config.CLIENT.showHeartbeatHUD.get()).booleanValue() || !Blur.isActive()) { return; } - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91074_ == null) { + Minecraft mc = Minecraft.getInstance(); + if (mc.player == null) { return; } float bps = currentBPM / 60.0f; @@ -459,7 +459,7 @@ public class ConcussionAudioEffect { } else if (currentBPM < 50.0f) { color = -171; } - ctx.m_280056_(mc.f_91062_, text, x - mc.f_91062_.m_92895_(text), y, color, false); + ctx.m_280056_(mc.font, text, x - mc.font.width(text), y, color, false); } public static float getCurrentHeartbeatVisual() { @@ -549,7 +549,7 @@ public class ConcussionAudioEffect { lubTriggered = true; if (blurIntensity >= 0.1f && ((Boolean)Config.CLIENT.enableHeartbeatPulse.get()).booleanValue()) { try { - Minecraft mc = Minecraft.m_91087_(); + Minecraft mc = Minecraft.getInstance(); if (mc != null) { mc.m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119755_((SoundEvent)((SoundEvent)ModSounds.HEART_LAB.get()), (float)1.0f, (float)100.0f)); } @@ -564,7 +564,7 @@ public class ConcussionAudioEffect { dubTriggered = true; if (blurIntensity >= 0.1f && ((Boolean)Config.CLIENT.enableHeartbeatPulse.get()).booleanValue()) { try { - Minecraft mc = Minecraft.m_91087_(); + Minecraft mc = Minecraft.getInstance(); if (mc != null) { mc.m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119755_((SoundEvent)((SoundEvent)ModSounds.HEART_DAB.get()), (float)1.0f, (float)100.0f)); } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/ConcussionSoundManager.java b/src/main/java/com/vinlanx/explosionoverhaul/client/ConcussionSoundManager.java index f6d6524..9d4c252 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/ConcussionSoundManager.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/ConcussionSoundManager.java @@ -29,8 +29,8 @@ public class ConcussionSoundManager { if (event.phase != TickEvent.Phase.END) { return; } - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91073_ == null || mc.f_91074_ == null) { + Minecraft mc = Minecraft.getInstance(); + if (mc.f_91073_ == null || mc.player == null) { if (currentLowSound != null) { mc.m_91106_().m_120399_((SoundInstance)currentLowSound); currentLowSound = null; diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/DeafnessConcussionEffect.java b/src/main/java/com/vinlanx/explosionoverhaul/client/DeafnessConcussionEffect.java index f6f3a36..9209499 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/DeafnessConcussionEffect.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/DeafnessConcussionEffect.java @@ -48,11 +48,11 @@ public class DeafnessConcussionEffect { if (effectiveIntensity < 1.0E-4f) { return false; } - Minecraft mc = Minecraft.m_91087_(); - if (mc == null || mc.f_91073_ == null || mc.f_91074_ == null) { + Minecraft mc = Minecraft.getInstance(); + if (mc == null || mc.f_91073_ == null || mc.player == null) { return false; } - Options options = mc.f_91066_; + Options options = mc.options; if (options == null) { return false; } @@ -73,9 +73,9 @@ public class DeafnessConcussionEffect { phaseTicksTotal = DELAY_TICKS; } lastIntensity = currentIntensity; - if (debugShowChat && (player = mc.f_91074_) != null) { + if (debugShowChat && (player = mc.player) != null) { String msg = String.format("\u041f\u043e\u0442\u0443\u0436\u043d\u0456\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0443\u0437\u0456\u0457 %.1f%% (%s) \u2014 \u0421\u0438\u043b\u0430 \u0441\u043a\u0440\u0443\u0447\u0443\u0432\u0430\u043d\u043d\u044f %d%%, \u0427\u0430\u0441 \u0441\u043a\u0440\u0443\u0447\u0443\u0432\u0430\u043d\u043d\u044f %.1f \u0441\u0435\u043a", effectivePercent, visibility, intensityPercent, silentSeconds); - player.m_5661_((Component)Component.m_237113_((String)msg).m_130940_(ChatFormatting.WHITE), false); + player.m_5661_((Component)Component.literal((String)msg).m_130940_(ChatFormatting.WHITE), false); } return true; } @@ -88,8 +88,8 @@ public class DeafnessConcussionEffect { if (phase == Phase.NONE) { return; } - Minecraft mc = Minecraft.m_91087_(); - if (mc == null || mc.f_91066_ == null) { + Minecraft mc = Minecraft.getInstance(); + if (mc == null || mc.options == null) { DeafnessConcussionEffect.resetVolume(); return; } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/ExplosionTextureManager.java b/src/main/java/com/vinlanx/explosionoverhaul/client/ExplosionTextureManager.java index 6e59c91..706eab0 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/ExplosionTextureManager.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/ExplosionTextureManager.java @@ -39,7 +39,7 @@ public class ExplosionTextureManager { public void reload() { this.clear(); - if (Minecraft.m_91087_().m_91098_() == null) { + if (Minecraft.getInstance().m_91098_() == null) { return; } ExplosionOverhaul.LOGGER.info("Reloading Explosion Texture Manager..."); @@ -71,10 +71,10 @@ public class ExplosionTextureManager { private void loadTexture(int index, String path) { ResourceLocation fullPath = new ResourceLocation("explosionoverhaul", BASE_PATH + path); try { - InputStream is = ((Resource)Minecraft.m_91087_().m_91098_().m_213713_(fullPath).get()).m_215507_(); + InputStream is = ((Resource)Minecraft.getInstance().m_91098_().m_213713_(fullPath).get()).m_215507_(); NativeImage image = NativeImage.m_85058_((InputStream)is); DynamicTexture texture = new DynamicTexture(image); - ResourceLocation loc = Minecraft.m_91087_().m_91097_().m_118490_("explosion_sheet_" + index, texture); + ResourceLocation loc = Minecraft.getInstance().m_91097_().m_118490_("explosion_sheet_" + index, texture); this.textures.put(index, texture); this.resourceLocations.put(index, loc); } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/ExplosionWindController.java b/src/main/java/com/vinlanx/explosionoverhaul/client/ExplosionWindController.java index f1edf76..5c80122 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/ExplosionWindController.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/ExplosionWindController.java @@ -69,9 +69,9 @@ public class ExplosionWindController { } private static double getWeatherMultiplier() { - Minecraft minecraft = Minecraft.m_91087_(); - if (minecraft.f_91073_ != null && minecraft.f_91074_ != null) { - Biome.Precipitation precipitation = ((Biome)minecraft.f_91073_.m_204166_(minecraft.f_91074_.m_20183_()).m_203334_()).m_264600_(minecraft.f_91074_.m_20183_()); + Minecraft minecraft = Minecraft.getInstance(); + if (minecraft.f_91073_ != null && minecraft.player != null) { + Biome.Precipitation precipitation = ((Biome)minecraft.f_91073_.m_204166_(minecraft.player.m_20183_()).m_203334_()).m_264600_(minecraft.player.m_20183_()); if (minecraft.f_91073_.m_46471_() || minecraft.f_91073_.m_46470_()) { return 1.5; } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/FirstTimeScreen.java b/src/main/java/com/vinlanx/explosionoverhaul/client/FirstTimeScreen.java index 0ae9f06..e0ad56d 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/FirstTimeScreen.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/FirstTimeScreen.java @@ -98,7 +98,7 @@ extends Screen { private static final long FORCE_CLOSE_BUFFER_MS = 2000L; public FirstTimeScreen() { - super((Component)Component.m_237113_((String)"First Time Setup")); + super((Component)Component.literal((String)"First Time Setup")); } protected void m_7856_() { @@ -259,7 +259,7 @@ extends Screen { if (!musicStillFading) { ExplosionOverhaul.LOGGER.info("Screen and music fade out complete. Opening TitleScreen."); this.cleanupAnimators(); - Minecraft.m_91087_().m_91152_((Screen)new TitleScreen()); + Minecraft.getInstance().m_91152_((Screen)new TitleScreen()); } else { ExplosionOverhaul.LOGGER.info("Waiting for music to finish fading..."); } @@ -272,7 +272,7 @@ extends Screen { this.cleanupAnimators(); this.fadingOut = false; this.fadeOutStartMillis = -1L; - Minecraft.m_91087_().m_91152_((Screen)new TitleScreen()); + Minecraft.getInstance().m_91152_((Screen)new TitleScreen()); return; } } @@ -337,7 +337,7 @@ extends Screen { } public void m_88315_(GuiGraphics graphics, int mouseX, int mouseY, float partialTick) { - graphics.m_280509_(0, 0, this.f_96543_, this.f_96544_, -16777216); + graphics.fill(0, 0, this.f_96543_, this.f_96544_, -16777216); if (this.screenAlpha < 0.01f) { return; } @@ -359,7 +359,7 @@ extends Screen { private void renderModeSelection(GuiGraphics graphics, int mouseX, int mouseY, float renderAlpha) { String title = "Choose Your Explosion Style"; - int titleWidth = this.f_96547_.m_92895_(title); + int titleWidth = this.f_96547_.width(title); int titleX = (this.f_96543_ - titleWidth) / 2; int titleY = this.leftBoxY - 40; int titleAlpha = (int)(renderAlpha * 255.0f) << 24; @@ -367,10 +367,10 @@ extends Screen { graphics.m_280056_(this.f_96547_, title, titleX + 1, titleY + 1, 0xF28B0C | (int)(128.0f * renderAlpha) << 24, false); graphics.m_280056_(this.f_96547_, title, titleX, titleY, 0xF28B0C | titleAlpha, true); String subtitle = "You can change this anytime in the config"; - int subtitleWidth = this.f_96547_.m_92895_(subtitle); + int subtitleWidth = this.f_96547_.width(subtitle); graphics.m_280056_(this.f_96547_, subtitle, (this.f_96543_ - subtitleWidth) / 2, titleY + 15, 0xCCCCCC | titleAlpha, false); String psNote = "P.S. Colors in the game may differ from the animations because compression has altered the colors"; - int psWidth = this.f_96547_.m_92895_(psNote); + int psWidth = this.f_96547_.width(psNote); int psColor = 0x999999 | titleAlpha; graphics.m_280056_(this.f_96547_, psNote, (this.f_96543_ - psWidth) / 2, titleY + 30, psColor, false); if (!this.isTransitioning) { @@ -406,7 +406,7 @@ extends Screen { private void renderStyleSelection(GuiGraphics graphics, int mouseX, int mouseY, float renderAlpha) { String title = "Choose Render Style"; - int titleWidth = this.f_96547_.m_92895_(title); + int titleWidth = this.f_96547_.width(title); int titleX = (this.f_96543_ - titleWidth) / 2; int titleY = this.leftBoxY - 40; int titleAlpha = (int)(renderAlpha * 255.0f) << 24; @@ -414,7 +414,7 @@ extends Screen { graphics.m_280056_(this.f_96547_, title, titleX + 1, titleY + 1, 0xF28B0C | (int)(128.0f * renderAlpha) << 24, false); graphics.m_280056_(this.f_96547_, title, titleX, titleY, 0xF28B0C | titleAlpha, true); String subtitle = "Higher quality requires more VRAM"; - int subtitleWidth = this.f_96547_.m_92895_(subtitle); + int subtitleWidth = this.f_96547_.width(subtitle); graphics.m_280056_(this.f_96547_, subtitle, (this.f_96543_ - subtitleWidth) / 2, titleY + 15, 0xCCCCCC | titleAlpha, false); if (!this.isTransitioning) { boolean wasLeftHovered = this.leftHovered; @@ -456,10 +456,10 @@ extends Screen { if (hovered) { int glowSize = 4; int glowAlpha = (int)(128.0f * alpha) << 24; - graphics.m_280509_(-glowSize, -glowSize, width + glowSize, height + glowSize, accentColor & 0xFFFFFF | glowAlpha); + graphics.fill(-glowSize, -glowSize, width + glowSize, height + glowSize, accentColor & 0xFFFFFF | glowAlpha); } int bgAlpha = (int)(255.0f * alpha) << 24; - graphics.m_280509_(0, 0, width, height, 0x591515 | bgAlpha); + graphics.fill(0, 0, width, height, 0x591515 | bgAlpha); if (animator != null && animator.getTextureLocation() != null) { RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); @@ -470,21 +470,21 @@ extends Screen { } else { int placeholderTextColor = (int)(150.0f * alpha) << 24 | 0xFFFFFFFF; String placeholder = "[Image not found]"; - int placeholderWidth = this.f_96547_.m_92895_(placeholder); + int placeholderWidth = this.f_96547_.width(placeholder); graphics.m_280056_(this.f_96547_, placeholder, (width - placeholderWidth) / 2, height / 2 - 5, placeholderTextColor, false); } int borderColor = hovered ? accentColor : -2529701; int borderAlpha = (int)(255.0f * alpha) << 24; int fadedBorderColor = borderColor & 0xFFFFFF | borderAlpha; - graphics.m_280509_(0, 0, width, 2, fadedBorderColor); - graphics.m_280509_(0, height - 2, width, height, fadedBorderColor); - graphics.m_280509_(0, 0, 2, height, fadedBorderColor); - graphics.m_280509_(width - 2, 0, width, height, fadedBorderColor); + graphics.fill(0, 0, width, 2, fadedBorderColor); + graphics.fill(0, height - 2, width, height, fadedBorderColor); + graphics.fill(0, 0, 2, height, fadedBorderColor); + graphics.fill(width - 2, 0, width, height, fadedBorderColor); graphics.m_280168_().m_85849_(); int labelAlpha = (int)(255.0f * alpha) << 24; int labelColor = hovered ? accentColor : -1; int fadedLabelColor = labelColor & 0xFFFFFF | labelAlpha; - int labelWidth = this.f_96547_.m_92895_(label); + int labelWidth = this.f_96547_.width(label); graphics.m_280056_(this.f_96547_, label, x + (width - labelWidth) / 2, y + height + 10, fadedLabelColor, true); } @@ -614,19 +614,19 @@ extends Screen { } case EMBER: { int emberSize = (int)p.size; - graphics.m_280509_((int)p.x - emberSize, (int)p.y - emberSize, (int)p.x + emberSize, (int)p.y + emberSize, colorWithAlpha); + graphics.fill((int)p.x - emberSize, (int)p.y - emberSize, (int)p.x + emberSize, (int)p.y + emberSize, colorWithAlpha); break; } case FLASH: { int flashSize = (int)(p.size * 0.7f); int flashColor = colorWithAlpha & 0xFFFFFF | (int)(finalAlpha * 180.0f) << 24; - graphics.m_280509_((int)p.x - flashSize, (int)p.y - flashSize, (int)p.x + flashSize, (int)p.y + flashSize, flashColor); + graphics.fill((int)p.x - flashSize, (int)p.y - flashSize, (int)p.x + flashSize, (int)p.y + flashSize, flashColor); break; } case SMOKE: { int smokeSize = (int)p.size; int smokeColor = colorWithAlpha & 0xFFFFFF | (int)(finalAlpha * 60.0f) << 24; - graphics.m_280509_((int)p.x - smokeSize, (int)p.y - smokeSize, (int)p.x + smokeSize, (int)p.y + smokeSize, smokeColor); + graphics.fill((int)p.x - smokeSize, (int)p.y - smokeSize, (int)p.x + smokeSize, (int)p.y + smokeSize, smokeColor); } } } @@ -636,20 +636,20 @@ extends Screen { int vignetteAlpha = (int)(ratio * ratio * 180.0f * globalAlpha); int vignetteColor = vignetteAlpha << 24; int thickness = 4; - graphics.m_280509_(0, i * thickness, this.f_96543_, (i + 1) * thickness, vignetteColor); - graphics.m_280509_(0, this.f_96544_ - (i + 1) * thickness, this.f_96543_, this.f_96544_ - i * thickness, vignetteColor); - graphics.m_280509_(i * thickness, 0, (i + 1) * thickness, this.f_96544_, vignetteColor); - graphics.m_280509_(this.f_96543_ - (i + 1) * thickness, 0, this.f_96543_ - i * thickness, this.f_96544_, vignetteColor); + graphics.fill(0, i * thickness, this.f_96543_, (i + 1) * thickness, vignetteColor); + graphics.fill(0, this.f_96544_ - (i + 1) * thickness, this.f_96543_, this.f_96544_ - i * thickness, vignetteColor); + graphics.fill(i * thickness, 0, (i + 1) * thickness, this.f_96544_, vignetteColor); + graphics.fill(this.f_96543_ - (i + 1) * thickness, 0, this.f_96543_ - i * thickness, this.f_96544_, vignetteColor); } for (i = 0; i < 150; ++i) { int gx = this.random.m_188503_(this.f_96543_); int gy = this.random.m_188503_(this.f_96544_); int grainAlpha = (int)((float)(20 + this.random.m_188503_(30)) * globalAlpha); int grainColor = grainAlpha << 24 | 0xFFFFFF; - graphics.m_280509_(gx, gy, gx + 1, gy + 1, grainColor); + graphics.fill(gx, gy, gx + 1, gy + 1, grainColor); } for (int y = 0; y < this.f_96544_; y += 4) { - graphics.m_280509_(0, y, this.f_96543_, y + 1, 0x8000000); + graphics.fill(0, y, this.f_96543_, y + 1, 0x8000000); } RenderSystem.disableBlend(); } @@ -661,7 +661,7 @@ extends Screen { int sy = y1 < y2 ? 1 : -1; int err = dx - dy; for (int steps = 0; steps < 200; ++steps) { - graphics.m_280509_(x1, y1, x1 + 1, y1 + 1, color); + graphics.fill(x1, y1, x1 + 1, y1 + 1, color); if (x1 == x2 && y1 == y2) break; int e2 = 2 * err; if (e2 > -dy) { @@ -710,20 +710,20 @@ extends Screen { if (this.backButtonHovered) { int glowSize = 3; int glowAlpha = (int)(128.0f * alpha) << 24; - graphics.m_280509_(-glowSize, -glowSize, this.backButtonW + glowSize, this.backButtonH + glowSize, 0xF28B0C | glowAlpha); + graphics.fill(-glowSize, -glowSize, this.backButtonW + glowSize, this.backButtonH + glowSize, 0xF28B0C | glowAlpha); } int bgAlpha = (int)(255.0f * alpha) << 24; - graphics.m_280509_(0, 0, this.backButtonW, this.backButtonH, 0x591515 | bgAlpha); + graphics.fill(0, 0, this.backButtonW, this.backButtonH, 0x591515 | bgAlpha); int borderColor = this.backButtonHovered ? -881908 : -2529701; int borderAlpha = (int)(255.0f * alpha) << 24; int fadedBorderColor = borderColor & 0xFFFFFF | borderAlpha; - graphics.m_280509_(0, 0, this.backButtonW, 2, fadedBorderColor); - graphics.m_280509_(0, this.backButtonH - 2, this.backButtonW, this.backButtonH, fadedBorderColor); - graphics.m_280509_(0, 0, 2, this.backButtonH, fadedBorderColor); - graphics.m_280509_(this.backButtonW - 2, 0, this.backButtonW, this.backButtonH, fadedBorderColor); + graphics.fill(0, 0, this.backButtonW, 2, fadedBorderColor); + graphics.fill(0, this.backButtonH - 2, this.backButtonW, this.backButtonH, fadedBorderColor); + graphics.fill(0, 0, 2, this.backButtonH, fadedBorderColor); + graphics.fill(this.backButtonW - 2, 0, this.backButtonW, this.backButtonH, fadedBorderColor); graphics.m_280168_().m_85849_(); String buttonText = "BACK"; - int textWidth = this.f_96547_.m_92895_(buttonText); + int textWidth = this.f_96547_.width(buttonText); int textColor = this.backButtonHovered ? -881908 : -1; int textAlpha = (int)(255.0f * alpha) << 24; int fadedTextColor = textColor & 0xFFFFFF | textAlpha; @@ -732,7 +732,7 @@ extends Screen { private void playButtonSound() { try { - Minecraft minecraft = Minecraft.m_91087_(); + Minecraft minecraft = Minecraft.getInstance(); if (minecraft.m_91106_() != null) { minecraft.m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119755_((SoundEvent)((SoundEvent)ModSounds.BUTTON_SOUND.get()), (float)1.0f, (float)1.0f)); } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/FirstTimeSetupHandler.java b/src/main/java/com/vinlanx/explosionoverhaul/client/FirstTimeSetupHandler.java index 1857d1b..51dfe21 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/FirstTimeSetupHandler.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/FirstTimeSetupHandler.java @@ -25,8 +25,8 @@ public class FirstTimeSetupHandler { if (event.phase != TickEvent.Phase.END) { return; } - Minecraft mc = Minecraft.m_91087_(); - if (!hasChecked && mc.f_91080_ instanceof TitleScreen) { + Minecraft mc = Minecraft.getInstance(); + if (!hasChecked && mc.screen instanceof TitleScreen) { hasChecked = true; ExplosionOverhaul.LOGGER.info("Detected TitleScreen on client, hasChecked=true"); if (Config.isFirstLaunch()) { @@ -36,7 +36,7 @@ public class FirstTimeSetupHandler { if (!pendingShowIntro) { return; } - if (mc.f_91080_ instanceof TitleScreen) { + if (mc.screen instanceof TitleScreen) { pendingShowIntro = false; ExplosionOverhaul.LOGGER.info("Showing IntroSplashScreen (first launch)"); mc.m_91152_((Screen)new IntroSplashScreen()); diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/GroundDustEffect.java b/src/main/java/com/vinlanx/explosionoverhaul/client/GroundDustEffect.java index d55018b..2ef8a59 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/GroundDustEffect.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/GroundDustEffect.java @@ -38,7 +38,7 @@ public class GroundDustEffect { private final int raycastFrequency; public GroundDustEffect(Vec3 position, float power) { - this.level = Minecraft.m_91087_().f_91073_; + this.level = Minecraft.getInstance().f_91073_; this.initialPosition = position; this.power = power; double qualityMultiplier = (Double)Config.CLIENT.groundDustQuality.get(); diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/GroundMistEffect.java b/src/main/java/com/vinlanx/explosionoverhaul/client/GroundMistEffect.java index eb25309..e78245e 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/GroundMistEffect.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/GroundMistEffect.java @@ -33,7 +33,7 @@ public class GroundMistEffect { private final int raycastFrequency; public GroundMistEffect(Vec3 position, float power) { - this.level = Minecraft.m_91087_().f_91073_; + this.level = Minecraft.getInstance().f_91073_; this.initialPosition = position; this.power = power; double qualityMultiplier = (Double)Config.CLIENT.groundMistQuality.get(); diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/GuideSlidesScreen.java b/src/main/java/com/vinlanx/explosionoverhaul/client/GuideSlidesScreen.java index 2248c5a..df4f25c 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/GuideSlidesScreen.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/GuideSlidesScreen.java @@ -89,7 +89,7 @@ extends Screen { private IntroMusicManager musicManager; public GuideSlidesScreen() { - super((Component)Component.m_237113_((String)"Guide Slides")); + super((Component)Component.literal((String)"Guide Slides")); } protected void m_7856_() { @@ -266,7 +266,7 @@ extends Screen { } public void m_88315_(GuiGraphics graphics, int mouseX, int mouseY, float partialTick) { - graphics.m_280509_(0, 0, this.f_96543_, this.f_96544_, -15921907); + graphics.fill(0, 0, this.f_96543_, this.f_96544_, -15921907); if (this.fadeAlpha < 0.01f) { return; } @@ -307,19 +307,19 @@ extends Screen { } case EMBER: { int emberSize = (int)p.size; - graphics.m_280509_((int)p.x - emberSize, (int)p.y - emberSize, (int)p.x + emberSize, (int)p.y + emberSize, colorWithAlpha); + graphics.fill((int)p.x - emberSize, (int)p.y - emberSize, (int)p.x + emberSize, (int)p.y + emberSize, colorWithAlpha); break; } case FLASH: { int flashSize = (int)(p.size * 0.7f); int flashColor = colorWithAlpha & 0xFFFFFF | (int)(finalAlpha * 180.0f) << 24; - graphics.m_280509_((int)p.x - flashSize, (int)p.y - flashSize, (int)p.x + flashSize, (int)p.y + flashSize, flashColor); + graphics.fill((int)p.x - flashSize, (int)p.y - flashSize, (int)p.x + flashSize, (int)p.y + flashSize, flashColor); break; } case SMOKE: { int smokeSize = (int)p.size; int smokeColor = colorWithAlpha & 0xFFFFFF | (int)(finalAlpha * 60.0f) << 24; - graphics.m_280509_((int)p.x - smokeSize, (int)p.y - smokeSize, (int)p.x + smokeSize, (int)p.y + smokeSize, smokeColor); + graphics.fill((int)p.x - smokeSize, (int)p.y - smokeSize, (int)p.x + smokeSize, (int)p.y + smokeSize, smokeColor); } } } @@ -336,10 +336,10 @@ extends Screen { graphics.m_280411_(texture, this.animationX, this.animationY, this.animationWidth, this.animationHeight, 0.0f, 0.0f, 854, 480, 854, 480); int glowColor = (int)(alpha * 32.0f) << 24 | 0xF28B0C; int borderThickness = 2; - graphics.m_280509_(this.animationX - borderThickness, this.animationY - borderThickness, this.animationX + this.animationWidth + borderThickness, this.animationY, glowColor); - graphics.m_280509_(this.animationX - borderThickness, this.animationY + this.animationHeight, this.animationX + this.animationWidth + borderThickness, this.animationY + this.animationHeight + borderThickness, glowColor); - graphics.m_280509_(this.animationX - borderThickness, this.animationY, this.animationX, this.animationY + this.animationHeight, glowColor); - graphics.m_280509_(this.animationX + this.animationWidth, this.animationY, this.animationX + this.animationWidth + borderThickness, this.animationY + this.animationHeight, glowColor); + graphics.fill(this.animationX - borderThickness, this.animationY - borderThickness, this.animationX + this.animationWidth + borderThickness, this.animationY, glowColor); + graphics.fill(this.animationX - borderThickness, this.animationY + this.animationHeight, this.animationX + this.animationWidth + borderThickness, this.animationY + this.animationHeight + borderThickness, glowColor); + graphics.fill(this.animationX - borderThickness, this.animationY, this.animationX, this.animationY + this.animationHeight, glowColor); + graphics.fill(this.animationX + this.animationWidth, this.animationY, this.animationX + this.animationWidth + borderThickness, this.animationY + this.animationHeight, glowColor); } private void renderProgressBar(GuiGraphics graphics, float alpha) { @@ -350,13 +350,13 @@ extends Screen { int totalFrames = GuideSlidesScreen.SLIDES[this.currentSlideIndex].totalFrames; float progress = (float)currentFrame / (float)totalFrames; int bgColor = (int)(alpha * 128.0f) << 24 | 0; - graphics.m_280509_(this.progressBarX, this.progressBarY, this.progressBarX + this.progressBarWidth, this.progressBarY + this.progressBarHeight, bgColor); + graphics.fill(this.progressBarX, this.progressBarY, this.progressBarX + this.progressBarWidth, this.progressBarY + this.progressBarHeight, bgColor); int fillWidth = (int)((float)this.progressBarWidth * progress); int fillColor = (int)(alpha * 255.0f) << 24 | 0xF28B0C; - graphics.m_280509_(this.progressBarX, this.progressBarY, this.progressBarX + fillWidth, this.progressBarY + this.progressBarHeight, fillColor); + graphics.fill(this.progressBarX, this.progressBarY, this.progressBarX + fillWidth, this.progressBarY + this.progressBarHeight, fillColor); if (fillWidth > 0) { int glowColor = (int)(alpha * 64.0f) << 24 | 0xF28B0C; - graphics.m_280509_(this.progressBarX + fillWidth - 4, this.progressBarY - 1, this.progressBarX + fillWidth, this.progressBarY + this.progressBarHeight + 1, glowColor); + graphics.fill(this.progressBarX + fillWidth - 4, this.progressBarY - 1, this.progressBarX + fillWidth, this.progressBarY + this.progressBarHeight + 1, glowColor); } } @@ -372,7 +372,7 @@ extends Screen { int startY = textY; for (int i = 0; i < lines.size(); ++i) { String line = lines.get(i); - int lineWidth = this.f_96547_.m_92895_(line); + int lineWidth = this.f_96547_.width(line); int x = this.animationX + (this.animationWidth - lineWidth) / 2; graphics.m_280056_(this.f_96547_, line, x, startY + i * lineHeight, textColor, true); } @@ -384,7 +384,7 @@ extends Screen { StringBuilder currentLine = new StringBuilder(); for (String word : words) { Object testLine = currentLine.length() > 0 ? currentLine + " " + word : word; - int width = this.f_96547_.m_92895_((String)testLine); + int width = this.f_96547_.width((String)testLine); if (width > maxWidth && currentLine.length() > 0) { lines.add(currentLine.toString()); currentLine = new StringBuilder(word); @@ -448,7 +448,7 @@ extends Screen { for (int y = -radius; y <= radius; ++y) { for (int x = -radius; x <= radius; ++x) { if (x * x + y * y > radius * radius) continue; - graphics.m_280509_(centerX + x, centerY + y, centerX + x + 1, centerY + y + 1, color); + graphics.fill(centerX + x, centerY + y, centerX + x + 1, centerY + y + 1, color); } } } @@ -476,7 +476,7 @@ extends Screen { maxX = Math.max(maxX, x); } if (minX == Integer.MAX_VALUE || maxX == Integer.MIN_VALUE) continue; - graphics.m_280509_(minX, y, maxX + 1, y + 1, color); + graphics.fill(minX, y, maxX + 1, y + 1, color); } } @@ -534,18 +534,18 @@ extends Screen { int drawX = this.continueButtonX - offsetX; int drawY = this.continueButtonY - offsetY; int bgColor = this.continueButtonHovered ? (int)(alpha * 220.0f) << 24 | 0xF28B0C : (int)(alpha * 160.0f) << 24 | 0x591515; - graphics.m_280509_(drawX, drawY, drawX + scaledWidth, drawY + scaledHeight, bgColor); + graphics.fill(drawX, drawY, drawX + scaledWidth, drawY + scaledHeight, bgColor); if (this.continueButtonHovered) { int glowColor = (int)(alpha * 80.0f) << 24 | 0xF28B0C; int border = 3; - graphics.m_280509_(drawX - border, drawY - border, drawX + scaledWidth + border, drawY, glowColor); - graphics.m_280509_(drawX - border, drawY + scaledHeight, drawX + scaledWidth + border, drawY + scaledHeight + border, glowColor); - graphics.m_280509_(drawX - border, drawY, drawX, drawY + scaledHeight, glowColor); - graphics.m_280509_(drawX + scaledWidth, drawY, drawX + scaledWidth + border, drawY + scaledHeight, glowColor); + graphics.fill(drawX - border, drawY - border, drawX + scaledWidth + border, drawY, glowColor); + graphics.fill(drawX - border, drawY + scaledHeight, drawX + scaledWidth + border, drawY + scaledHeight + border, glowColor); + graphics.fill(drawX - border, drawY, drawX, drawY + scaledHeight, glowColor); + graphics.fill(drawX + scaledWidth, drawY, drawX + scaledWidth + border, drawY + scaledHeight, glowColor); } String text = "Skip Guide"; int textColor = (int)(alpha * 255.0f) << 24 | 0xFFFFFF; - int textX = drawX + (scaledWidth - this.f_96547_.m_92895_(text)) / 2; + int textX = drawX + (scaledWidth - this.f_96547_.width(text)) / 2; Objects.requireNonNull(this.f_96547_); int textY = drawY + (scaledHeight - 9) / 2; graphics.m_280056_(this.f_96547_, text, textX, textY, textColor, true); @@ -572,7 +572,7 @@ extends Screen { private void transitionToFirstTimeScreen() { ExplosionOverhaul.LOGGER.info("All guide slides complete. Transitioning to FirstTimeScreen."); - Minecraft.m_91087_().m_91152_((Screen)new FirstTimeScreen()); + Minecraft.getInstance().m_91152_((Screen)new FirstTimeScreen()); } private void drawLine(GuiGraphics graphics, int x1, int y1, int x2, int y2, int color) { @@ -582,7 +582,7 @@ extends Screen { int sy = y1 < y2 ? 1 : -1; int err = dx - dy; for (int steps = 0; steps < 200; ++steps) { - graphics.m_280509_(x1, y1, x1 + 1, y1 + 1, color); + graphics.fill(x1, y1, x1 + 1, y1 + 1, color); if (x1 == x2 && y1 == y2) break; int e2 = 2 * err; if (e2 > -dy) { @@ -609,7 +609,7 @@ extends Screen { private void playButtonSound() { try { - Minecraft minecraft = Minecraft.m_91087_(); + Minecraft minecraft = Minecraft.getInstance(); if (minecraft.m_91106_() != null) { minecraft.m_91106_().m_120367_((SoundInstance)SimpleSoundInstance.m_119755_((SoundEvent)((SoundEvent)ModSounds.BUTTON_SOUND.get()), (float)1.0f, (float)1.0f)); } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/IntroMusicManager.java b/src/main/java/com/vinlanx/explosionoverhaul/client/IntroMusicManager.java index e089ed8..27f3350 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/IntroMusicManager.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/IntroMusicManager.java @@ -36,7 +36,7 @@ public class IntroMusicManager { if (this.isPlaying) { return; } - SoundManager soundManager = Minecraft.m_91087_().m_91106_(); + SoundManager soundManager = Minecraft.getInstance().m_91106_(); this.musicInstance = new FadingMusicInstance((SoundEvent)ModSounds.INTRO_MUSIC.get(), 0.25f, SoundSource.MASTER); soundManager.m_120367_((SoundInstance)this.musicInstance); ExplosionOverhaul.LOGGER.info("Started intro music with FadingMusicInstance"); @@ -63,7 +63,7 @@ public class IntroMusicManager { public void stopBoomSound() { if (this.boomInstance != null) { try { - SoundManager soundManager = Minecraft.m_91087_().m_91106_(); + SoundManager soundManager = Minecraft.getInstance().m_91106_(); soundManager.m_120399_((SoundInstance)this.boomInstance); this.boomInstance = null; ExplosionOverhaul.LOGGER.info("Boom sound stopped."); @@ -76,7 +76,7 @@ public class IntroMusicManager { public void stop() { ExplosionOverhaul.LOGGER.info("stop() called! Stack trace:", (Throwable)new Exception("Music stop trace")); - SoundManager soundManager = Minecraft.m_91087_().m_91106_(); + SoundManager soundManager = Minecraft.getInstance().m_91106_(); if (this.musicInstance != null) { soundManager.m_120399_((SoundInstance)this.musicInstance); this.musicInstance = null; @@ -112,7 +112,7 @@ public class IntroMusicManager { } private void stopVanillaMusic() { - Minecraft mc = Minecraft.m_91087_(); + Minecraft mc = Minecraft.getInstance(); if (mc.m_91397_() != null) { mc.m_91397_().m_120186_(); } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/IntroSplashScreen.java b/src/main/java/com/vinlanx/explosionoverhaul/client/IntroSplashScreen.java index 4428087..76f9954 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/IntroSplashScreen.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/IntroSplashScreen.java @@ -30,7 +30,7 @@ extends Screen { private boolean animationFinished = false; public IntroSplashScreen() { - super((Component)Component.m_237113_((String)"Intro")); + super((Component)Component.literal((String)"Intro")); } protected void m_7856_() { @@ -62,7 +62,7 @@ extends Screen { public void m_88315_(GuiGraphics graphics, int mouseX, int mouseY, float partialTick) { int displayWidth; int displayHeight; - graphics.m_280509_(0, 0, this.f_96543_, this.f_96544_, -16777216); + graphics.fill(0, 0, this.f_96543_, this.f_96544_, -16777216); if (this.animator == null) { return; } @@ -127,10 +127,10 @@ extends Screen { } private void transitionToFirstTimeScreen() { - Minecraft mc = Minecraft.m_91087_(); - if (!(mc.f_91080_ instanceof TitleScreen)) { + Minecraft mc = Minecraft.getInstance(); + if (!(mc.screen instanceof TitleScreen)) { mc.execute(() -> { - if (mc.f_91080_ instanceof TitleScreen) { + if (mc.screen instanceof TitleScreen) { mc.m_91152_((Screen)new VinlanxSplashScreen()); } else { mc.m_91152_((Screen)new VinlanxSplashScreen()); diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/LineSparkParticle.java b/src/main/java/com/vinlanx/explosionoverhaul/client/LineSparkParticle.java index d53a419..d596c2c 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/LineSparkParticle.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/LineSparkParticle.java @@ -55,9 +55,9 @@ extends TextureSheetParticle { } stretchFactor = Mth.m_14036_((float)stretchFactor, (float)0.0f, (float)1.0f); float distanceScale = 1.0f; - Minecraft mc = Minecraft.m_91087_(); - if (mc.f_91074_ != null) { - double distSqr = mc.f_91074_.m_20275_(this.f_107212_, this.f_107213_, this.f_107214_); + Minecraft mc = Minecraft.getInstance(); + if (mc.player != null) { + double distSqr = mc.player.m_20275_(this.f_107212_, this.f_107213_, this.f_107214_); double dist = Math.sqrt(distSqr); if (dist > 171.0) { distanceScale = 2.5f; diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/LowPassConcussionEffect.java b/src/main/java/com/vinlanx/explosionoverhaul/client/LowPassConcussionEffect.java index 72a2b36..1af8965 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/LowPassConcussionEffect.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/LowPassConcussionEffect.java @@ -108,18 +108,18 @@ public class LowPassConcussionEffect { }); SoundEngineAudioQueue.drainNow(); } - if (debugShowChat && (mc = Minecraft.m_91087_()) != null && mc.f_91074_ != null) { - mc.f_91074_.m_5661_((Component)Component.m_237113_((String)("Low pass test queued for " + seconds + "s (strength=" + addedStrength + ")")), false); + if (debugShowChat && (mc = Minecraft.getInstance()) != null && mc.player != null) { + mc.player.m_5661_((Component)Component.literal((String)("Low pass test queued for " + seconds + "s (strength=" + addedStrength + ")")), false); } } public static void start(int seconds, float intensity, double effectivePercent, String visibility, int intensityPercent) { Minecraft mc; - if (debugShowChat && (mc = Minecraft.m_91087_()) != null && mc.f_91074_ != null) { - mc.f_91074_.m_5661_((Component)Component.m_237113_((String)"__________________________________________"), false); + if (debugShowChat && (mc = Minecraft.getInstance()) != null && mc.player != null) { + mc.player.m_5661_((Component)Component.literal((String)"__________________________________________"), false); String msg = String.format("\u041f\u043e\u0442\u0443\u0436\u043d\u0456\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0443\u0437\u0456\u0457 %.1f%% (%s) \u2014 \u0421\u0438\u043b\u0430 \u043f\u0440\u0438\u0433\u043b\u0443\u0448\u0435\u043d\u043d\u044f %d%%, \u0427\u0430\u0441 \u043f\u0440\u0438\u0433\u043b\u0443\u0448\u0435\u043d\u043d\u044f %.1f \u0441\u0435\u043a", effectivePercent, visibility, intensityPercent, (double)seconds); - mc.f_91074_.m_5661_((Component)Component.m_237113_((String)msg).m_130940_(ChatFormatting.WHITE), false); - mc.f_91074_.m_5661_((Component)Component.m_237113_((String)"__________________________________________"), false); + mc.player.m_5661_((Component)Component.literal((String)msg).m_130940_(ChatFormatting.WHITE), false); + mc.player.m_5661_((Component)Component.literal((String)"__________________________________________"), false); } LowPassConcussionEffect.start(seconds, intensity); } @@ -162,7 +162,7 @@ public class LowPassConcussionEffect { } public static void onClientTick() { - Minecraft mc = Minecraft.m_91087_(); + Minecraft mc = Minecraft.getInstance(); if (mc != null && mc.m_91104_()) { return; } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/ModConfigScreen.java b/src/main/java/com/vinlanx/explosionoverhaul/client/ModConfigScreen.java index a400006..5f0f06c 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/ModConfigScreen.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/ModConfigScreen.java @@ -28,188 +28,188 @@ import net.neoforged.neoforge.common.ModConfigSpec; public class ModConfigScreen { public static Screen create(Screen parent) { - ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle((Component)Component.m_237115_((String)"title.explosionoverhaul.config")); + ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle((Component)Component.translatable((String)"title.explosionoverhaul.config")); ConfigEntryBuilder entryBuilder = builder.entryBuilder(); - ConfigCategory serverCategory = builder.getOrCreateCategory((Component)Component.m_237115_((String)"category.explosionoverhaul.server")); + ConfigCategory serverCategory = builder.getOrCreateCategory((Component)Component.translatable((String)"category.explosionoverhaul.server")); builder.setSavingRunnable(() -> { Config.CLIENT_SPEC.save(); Config.COMMON_SPEC.save(); ExplosionTextureManager.getInstance().reload(); }); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableFallingBlocks"), ((Boolean)Config.COMMON.enableFallingBlocks.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableFallingBlocks")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableFallingBlocks).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableExplosionClustering"), ((Boolean)Config.COMMON.enableExplosionClustering.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableExplosionClustering")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableExplosionClustering).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableCraterDestruction"), ((Boolean)Config.COMMON.enableCraterDestruction.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableCraterDestruction")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableCraterDestruction).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableGlassBreaking"), ((Boolean)Config.COMMON.enableGlassBreaking.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableGlassBreaking")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableGlassBreaking).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableDripstoneFalling"), ((Boolean)Config.COMMON.enableDripstoneFalling.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableDripstoneFalling")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableDripstoneFalling).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableLampFlicker"), ((Boolean)Config.COMMON.enableLampFlicker.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableLampFlicker")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableLampFlicker).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237115_((String)"option.explosionoverhaul.craterSettingsHeader")).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.craterSizeMultiplier"), (int)((Double)Config.COMMON.craterSizeMultiplier.get() * 100.0), 10, 5000).setDefaultValue(100).setTextGetter(value -> { + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableFallingBlocks"), ((Boolean)Config.COMMON.enableFallingBlocks.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableFallingBlocks")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableFallingBlocks).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableExplosionClustering"), ((Boolean)Config.COMMON.enableExplosionClustering.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableExplosionClustering")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableExplosionClustering).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableCraterDestruction"), ((Boolean)Config.COMMON.enableCraterDestruction.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableCraterDestruction")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableCraterDestruction).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableGlassBreaking"), ((Boolean)Config.COMMON.enableGlassBreaking.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableGlassBreaking")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableGlassBreaking).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableDripstoneFalling"), ((Boolean)Config.COMMON.enableDripstoneFalling.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableDripstoneFalling")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableDripstoneFalling).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableLampFlicker"), ((Boolean)Config.COMMON.enableLampFlicker.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableLampFlicker")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableLampFlicker).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.translatable((String)"option.explosionoverhaul.craterSettingsHeader")).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.craterSizeMultiplier"), (int)((Double)Config.COMMON.craterSizeMultiplier.get() * 100.0), 10, 5000).setDefaultValue(100).setTextGetter(value -> { double val = (double)value.intValue() / 100.0; Object text = String.format("%.2fx", val); if (val > 10.0) { text = (String)text + " \u00a7c(EXTREME!)"; } - return Component.m_237113_((String)text); + return Component.literal((String)text); }).setTooltipSupplier(value -> Optional.of(ModConfigScreen.generateCraterTable((double)value.intValue() / 100.0))).setSaveConsumer(newValue -> Config.COMMON.craterSizeMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.craterCoreRatio"), (int)((Double)Config.COMMON.craterCoreRatio.get() * 100.0), 10, 95).setDefaultValue(70).setTextGetter(value -> Component.m_237113_((String)(value + "%"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.craterCoreRatio")}).setSaveConsumer(newValue -> Config.COMMON.craterCoreRatio.set((Object)((double)newValue.intValue() / 100.0))).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)"--- Async Crater Pipeline ---")).setTooltip(new Component[]{Component.m_237113_((String)"Computes crater geometry off-thread and applies block changes in batches per tick.")}).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableAsyncCrater"), ((Boolean)Config.COMMON.enableAsyncCrater.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableAsyncCrater")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableAsyncCrater).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.maxClusterPower"), ((Integer)Config.COMMON.maxClusterPower.get()).intValue(), 4, 1000).setDefaultValue(100).setTextGetter(v -> Component.m_237113_((String)String.valueOf(v))).setTooltipSupplier(v -> { + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.craterCoreRatio"), (int)((Double)Config.COMMON.craterCoreRatio.get() * 100.0), 10, 95).setDefaultValue(70).setTextGetter(value -> Component.literal((String)(value + "%"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.craterCoreRatio")}).setSaveConsumer(newValue -> Config.COMMON.craterCoreRatio.set((Object)((double)newValue.intValue() / 100.0))).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)"--- Async Crater Pipeline ---")).setTooltip(new Component[]{Component.literal((String)"Computes crater geometry off-thread and applies block changes in batches per tick.")}).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableAsyncCrater"), ((Boolean)Config.COMMON.enableAsyncCrater.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableAsyncCrater")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableAsyncCrater).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.maxClusterPower"), ((Integer)Config.COMMON.maxClusterPower.get()).intValue(), 4, 1000).setDefaultValue(100).setTextGetter(v -> Component.literal((String)String.valueOf(v))).setTooltipSupplier(v -> { if (v >= 500) { - return Optional.of(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.maxClusterPower"), Component.m_237113_((String)""), Component.m_237113_((String)"\u26a0 ").m_130944_(new ChatFormatting[]{ChatFormatting.RED, ChatFormatting.BOLD}).m_7220_((Component)Component.m_237115_((String)"warning.explosionoverhaul.crashRisk").m_130944_(new ChatFormatting[]{ChatFormatting.DARK_RED, ChatFormatting.BOLD}))}); + return Optional.of(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.maxClusterPower"), Component.literal((String)""), Component.literal((String)"\u26a0 ").m_130944_(new ChatFormatting[]{ChatFormatting.RED, ChatFormatting.BOLD}).m_7220_((Component)Component.translatable((String)"warning.explosionoverhaul.crashRisk").m_130944_(new ChatFormatting[]{ChatFormatting.DARK_RED, ChatFormatting.BOLD}))}); } if (v >= 300) { - return Optional.of(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.maxClusterPower"), Component.m_237113_((String)""), Component.m_237115_((String)"warning.explosionoverhaul.severeRenderingLag").m_130940_(ChatFormatting.DARK_RED)}); + return Optional.of(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.maxClusterPower"), Component.literal((String)""), Component.translatable((String)"warning.explosionoverhaul.severeRenderingLag").m_130940_(ChatFormatting.DARK_RED)}); } if (v >= 150) { - return Optional.of(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.maxClusterPower"), Component.m_237113_((String)""), Component.m_237115_((String)"warning.explosionoverhaul.renderingLag").m_130940_(ChatFormatting.GOLD)}); + return Optional.of(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.maxClusterPower"), Component.literal((String)""), Component.translatable((String)"warning.explosionoverhaul.renderingLag").m_130940_(ChatFormatting.GOLD)}); } - return Optional.of(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.maxClusterPower")}); + return Optional.of(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.maxClusterPower")}); }).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.maxClusterPower).set(arg_0)).build()); int availableThreads = Runtime.getRuntime().availableProcessors(); int maxThreadsForSystem = Math.min(32, availableThreads); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.craterMaxThreads"), ((Integer)Config.COMMON.craterMaxThreads.get()).intValue(), 0, maxThreadsForSystem).setDefaultValue(0).setTextGetter(v -> Component.m_237113_((String)(v == 0 ? "Auto (" + availableThreads + ")" : String.valueOf(v)))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.craterMaxThreads")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.craterMaxThreads).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.craterApplyBlocksPerTick"), ((Integer)Config.COMMON.craterApplyBlocksPerTick.get()).intValue(), 0, 150000).setDefaultValue(50000).setTextGetter(v -> Component.m_237113_((String)(v + " blocks/tick"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.craterApplyBlocksPerTick")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.craterApplyBlocksPerTick).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.craterMaxFallingBlocksPerTick"), ((Integer)Config.COMMON.craterMaxFallingBlocksPerTick.get()).intValue(), 0, 2000).setDefaultValue(500).setTextGetter(v -> Component.m_237113_((String)(v + " entities/tick"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.craterMaxFallingBlocksPerTick")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.craterMaxFallingBlocksPerTick).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableDirectChunkWrites"), ((Boolean)Config.COMMON.enableDirectChunkWrites.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableDirectChunkWrites")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableDirectChunkWrites).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.craterChunksPerTick"), ((Integer)Config.COMMON.craterChunksPerTick.get()).intValue(), 0, 500).setDefaultValue(120).setTextGetter(v -> Component.m_237113_((String)(v + " chunks/tick"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.craterChunksPerTick")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.craterChunksPerTick).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237115_((String)"option.explosionoverhaul.glassBreakingSettings")).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.glassBreakingIntervalTicks"), ((Integer)Config.COMMON.glassBreakingIntervalTicks.get()).intValue(), 1, 20).setDefaultValue(1).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.glassBreakingIntervalTicks")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.glassBreakingIntervalTicks).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.glassBlocksPerCycle"), ((Integer)Config.COMMON.glassBlocksPerCycle.get()).intValue(), 10, 500).setDefaultValue(70).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.glassBlocksPerCycle")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.glassBlocksPerCycle).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237115_((String)"option.explosionoverhaul.lampFlickerSettings")).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.lampFlickerSearchRadius"), ((Integer)Config.COMMON.lampFlickerSearchRadius.get()).intValue(), 1, 100).setDefaultValue(50).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.lampFlickerSearchRadius")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.lampFlickerSearchRadius).set(arg_0)).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237115_((String)"option.explosionoverhaul.dripstoneFallingSettings")).build()); - serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.dripstoneFallingSearchRadius"), ((Integer)Config.COMMON.dripstoneFallingSearchRadius.get()).intValue(), 1, 100).setDefaultValue(50).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.dripstoneFallingSearchRadius")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.dripstoneFallingSearchRadius).set(arg_0)).build()); - ConfigCategory ambientCategory = builder.getOrCreateCategory((Component)Component.m_237115_((String)"category.explosionoverhaul.ambient")); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.craterMaxThreads"), ((Integer)Config.COMMON.craterMaxThreads.get()).intValue(), 0, maxThreadsForSystem).setDefaultValue(0).setTextGetter(v -> Component.literal((String)(v == 0 ? "Auto (" + availableThreads + ")" : String.valueOf(v)))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.craterMaxThreads")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.craterMaxThreads).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.craterApplyBlocksPerTick"), ((Integer)Config.COMMON.craterApplyBlocksPerTick.get()).intValue(), 0, 150000).setDefaultValue(50000).setTextGetter(v -> Component.literal((String)(v + " blocks/tick"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.craterApplyBlocksPerTick")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.craterApplyBlocksPerTick).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.craterMaxFallingBlocksPerTick"), ((Integer)Config.COMMON.craterMaxFallingBlocksPerTick.get()).intValue(), 0, 2000).setDefaultValue(500).setTextGetter(v -> Component.literal((String)(v + " entities/tick"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.craterMaxFallingBlocksPerTick")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.craterMaxFallingBlocksPerTick).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableDirectChunkWrites"), ((Boolean)Config.COMMON.enableDirectChunkWrites.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableDirectChunkWrites")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableDirectChunkWrites).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.craterChunksPerTick"), ((Integer)Config.COMMON.craterChunksPerTick.get()).intValue(), 0, 500).setDefaultValue(120).setTextGetter(v -> Component.literal((String)(v + " chunks/tick"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.craterChunksPerTick")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.craterChunksPerTick).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.translatable((String)"option.explosionoverhaul.glassBreakingSettings")).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.glassBreakingIntervalTicks"), ((Integer)Config.COMMON.glassBreakingIntervalTicks.get()).intValue(), 1, 20).setDefaultValue(1).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.glassBreakingIntervalTicks")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.glassBreakingIntervalTicks).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.glassBlocksPerCycle"), ((Integer)Config.COMMON.glassBlocksPerCycle.get()).intValue(), 10, 500).setDefaultValue(70).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.glassBlocksPerCycle")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.glassBlocksPerCycle).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.translatable((String)"option.explosionoverhaul.lampFlickerSettings")).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.lampFlickerSearchRadius"), ((Integer)Config.COMMON.lampFlickerSearchRadius.get()).intValue(), 1, 100).setDefaultValue(50).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.lampFlickerSearchRadius")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.lampFlickerSearchRadius).set(arg_0)).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.translatable((String)"option.explosionoverhaul.dripstoneFallingSettings")).build()); + serverCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.dripstoneFallingSearchRadius"), ((Integer)Config.COMMON.dripstoneFallingSearchRadius.get()).intValue(), 1, 100).setDefaultValue(50).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.dripstoneFallingSearchRadius")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.dripstoneFallingSearchRadius).set(arg_0)).build()); + ConfigCategory ambientCategory = builder.getOrCreateCategory((Component)Component.translatable((String)"category.explosionoverhaul.ambient")); Config.Common.Ambient ambientConfig = Config.COMMON.ambient; - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableAmbientExplosions"), ((Boolean)ambientConfig.enableAmbientExplosions.get()).booleanValue()).setDefaultValue(false).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableAmbientExplosions")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)ambientConfig.enableAmbientExplosions).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.minTimeBetweenExplosions"), (Integer)ambientConfig.minTimeBetweenExplosions.get() / 20, 5, 3600).setDefaultValue(60).setTextGetter(value -> Component.m_237113_((String)(value + " s"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.minTimeBetweenExplosions")}).setSaveConsumer(newValue -> ambientConfig.minTimeBetweenExplosions.set((Object)(newValue * 20))).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.maxTimeBetweenExplosions"), (Integer)ambientConfig.maxTimeBetweenExplosions.get() / 20, 10, 3600).setDefaultValue(300).setTextGetter(value -> Component.m_237113_((String)(value + " s"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.maxTimeBetweenExplosions")}).setSaveConsumer(newValue -> ambientConfig.maxTimeBetweenExplosions.set((Object)(newValue * 20))).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.minExplosionDistance"), ((Integer)ambientConfig.minExplosionDistance.get()).intValue(), 100, 10000).setDefaultValue(501).setTextGetter(value -> Component.m_237113_((String)(value + " blocks"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.minExplosionDistance")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.minExplosionDistance).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.maxExplosionDistance"), ((Integer)ambientConfig.maxExplosionDistance.get()).intValue(), 200, 10000).setDefaultValue(5001).setTextGetter(value -> Component.m_237113_((String)(value + " blocks"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.maxExplosionDistance")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.maxExplosionDistance).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.maxAmbientExplosionPower"), (int)((Double)ambientConfig.maxAmbientExplosionPower.get() * 10.0), 400, 2000).setDefaultValue(800).setTextGetter(value -> Component.m_237113_((String)String.format("%.1f", (double)value.intValue() / 10.0))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.maxAmbientExplosionPower")}).setSaveConsumer(newValue -> ambientConfig.maxAmbientExplosionPower.set((Object)((double)newValue.intValue() / 10.0))).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableAmbientExplosions"), ((Boolean)ambientConfig.enableAmbientExplosions.get()).booleanValue()).setDefaultValue(false).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableAmbientExplosions")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)ambientConfig.enableAmbientExplosions).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.minTimeBetweenExplosions"), (Integer)ambientConfig.minTimeBetweenExplosions.get() / 20, 5, 3600).setDefaultValue(60).setTextGetter(value -> Component.literal((String)(value + " s"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.minTimeBetweenExplosions")}).setSaveConsumer(newValue -> ambientConfig.minTimeBetweenExplosions.set((Object)(newValue * 20))).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.maxTimeBetweenExplosions"), (Integer)ambientConfig.maxTimeBetweenExplosions.get() / 20, 10, 3600).setDefaultValue(300).setTextGetter(value -> Component.literal((String)(value + " s"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.maxTimeBetweenExplosions")}).setSaveConsumer(newValue -> ambientConfig.maxTimeBetweenExplosions.set((Object)(newValue * 20))).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.minExplosionDistance"), ((Integer)ambientConfig.minExplosionDistance.get()).intValue(), 100, 10000).setDefaultValue(501).setTextGetter(value -> Component.literal((String)(value + " blocks"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.minExplosionDistance")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.minExplosionDistance).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.maxExplosionDistance"), ((Integer)ambientConfig.maxExplosionDistance.get()).intValue(), 200, 10000).setDefaultValue(5001).setTextGetter(value -> Component.literal((String)(value + " blocks"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.maxExplosionDistance")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.maxExplosionDistance).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.maxAmbientExplosionPower"), (int)((Double)ambientConfig.maxAmbientExplosionPower.get() * 10.0), 400, 2000).setDefaultValue(800).setTextGetter(value -> Component.literal((String)String.format("%.1f", (double)value.intValue() / 10.0))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.maxAmbientExplosionPower")}).setSaveConsumer(newValue -> ambientConfig.maxAmbientExplosionPower.set((Object)((double)newValue.intValue() / 10.0))).build()); Config.Common.Ambient.Scenarios scenariosConfig = ambientConfig.scenarios; - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237115_((String)"option.explosionoverhaul.scenariosHeader")).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.scenariosHeader")}).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.singleExplosionWeight"), ((Integer)scenariosConfig.singleExplosionWeight.get()).intValue(), 0, 100).setTextGetter(v -> Component.m_237113_((String)(v + "%"))).setDefaultValue(70).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.singleExplosionWeight).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.chainReactionWeight"), ((Integer)scenariosConfig.chainReactionWeight.get()).intValue(), 0, 100).setTextGetter(v -> Component.m_237113_((String)(v + "%"))).setDefaultValue(15).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.chainReactionWeight).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.shellingWeight"), ((Integer)scenariosConfig.shellingWeight.get()).intValue(), 0, 100).setTextGetter(v -> Component.m_237113_((String)(v + "%"))).setDefaultValue(15).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.shellingWeight).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237115_((String)"option.explosionoverhaul.chainReactionSettingsHeader")).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.minChainReactionShots"), ((Integer)scenariosConfig.minChainReactionShots.get()).intValue(), 2, 20).setDefaultValue(3).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.minChainReactionShots).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.maxChainReactionShots"), ((Integer)scenariosConfig.maxChainReactionShots.get()).intValue(), 2, 20).setDefaultValue(7).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.maxChainReactionShots).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.minTimeBetweenChainShots"), ((Integer)scenariosConfig.minTimeBetweenChainShots.get()).intValue(), 5, 200).setTextGetter(v -> Component.m_237113_((String)String.format("%.2fs", (double)v.intValue() / 20.0))).setDefaultValue(10).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.minTimeBetweenChainShots).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.maxTimeBetweenChainShots"), ((Integer)scenariosConfig.maxTimeBetweenChainShots.get()).intValue(), 10, 400).setTextGetter(v -> Component.m_237113_((String)String.format("%.2fs", (double)v.intValue() / 20.0))).setDefaultValue(40).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.maxTimeBetweenChainShots).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237115_((String)"option.explosionoverhaul.shellingSettingsHeader")).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.minShellingDelay"), ((Integer)scenariosConfig.minShellingDelay.get()).intValue(), 20, 400).setTextGetter(v -> Component.m_237113_((String)String.format("%.2fs", (double)v.intValue() / 20.0))).setDefaultValue(40).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.minShellingDelay).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.maxShellingDelay"), ((Integer)scenariosConfig.maxShellingDelay.get()).intValue(), 20, 400).setTextGetter(v -> Component.m_237113_((String)String.format("%.2fs", (double)v.intValue() / 20.0))).setDefaultValue(140).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.maxShellingDelay).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237115_((String)"option.explosionoverhaul.powerTiersHeader")).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.powerTiersHeader")}).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.tier1_weight"), ((Integer)ambientConfig.powerTiers.tier1_weight.get()).intValue(), 0, 100).setTextGetter(v -> Component.m_237113_((String)(v + "%"))).setDefaultValue(50).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.powerTiers.tier1_weight).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.tier2_weight"), ((Integer)ambientConfig.powerTiers.tier2_weight.get()).intValue(), 0, 100).setTextGetter(v -> Component.m_237113_((String)(v + "%"))).setDefaultValue(25).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.powerTiers.tier2_weight).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.tier3_weight"), ((Integer)ambientConfig.powerTiers.tier3_weight.get()).intValue(), 0, 100).setTextGetter(v -> Component.m_237113_((String)(v + "%"))).setDefaultValue(15).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.powerTiers.tier3_weight).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.tier4_weight"), ((Integer)ambientConfig.powerTiers.tier4_weight.get()).intValue(), 0, 100).setTextGetter(v -> Component.m_237113_((String)(v + "%"))).setDefaultValue(8).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.powerTiers.tier4_weight).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.tier5_weight"), ((Integer)ambientConfig.powerTiers.tier5_weight.get()).intValue(), 0, 100).setTextGetter(v -> Component.m_237113_((String)(v + "%"))).setDefaultValue(2).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.powerTiers.tier5_weight).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237115_((String)"option.explosionoverhaul.soundTypesHeader")).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableSurfaceSounds"), ((Boolean)ambientConfig.soundTypes.enableSurfaceSounds.get()).booleanValue()).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableSurfaceSounds")}).setDefaultValue(true).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)ambientConfig.soundTypes.enableSurfaceSounds).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableCaveSounds"), ((Boolean)ambientConfig.soundTypes.enableCaveSounds.get()).booleanValue()).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableCaveSounds")}).setDefaultValue(true).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)ambientConfig.soundTypes.enableCaveSounds).set(arg_0)).build()); - ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableAmbientCaveDust"), ((Boolean)ambientConfig.soundTypes.enableAmbientCaveDust.get()).booleanValue()).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableAmbientCaveDust")}).setDefaultValue(true).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)ambientConfig.soundTypes.enableAmbientCaveDust).set(arg_0)).build()); - ConfigCategory renderCategory = builder.getOrCreateCategory((Component)Component.m_237115_((String)"category.explosionoverhaul.render")); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startEnumSelector((Component)Component.m_237115_((String)"option.explosionoverhaul.glowTextureQuality"), Config.Client.GlowTextureQuality.class, (Enum)((Config.Client.GlowTextureQuality)((Object)Config.CLIENT.glowTextureQuality.get()))).setDefaultValue((Enum)Config.Client.GlowTextureQuality.QUALITY_256).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.glowTextureQuality")}).setSaveConsumer(arg_0 -> Config.CLIENT.glowTextureQuality.set(arg_0)).setEnumNameProvider(value -> Component.m_237113_((String)(value == Config.Client.GlowTextureQuality.QUALITY_64 ? "64x" : "256x"))).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startEnumSelector((Component)Component.m_237115_((String)"option.explosionoverhaul.particleRenderMode"), Config.Client.ParticleRenderMode.class, (Enum)((Config.Client.ParticleRenderMode)((Object)Config.CLIENT.particleRenderMode.get()))).setDefaultValue((Enum)Config.Client.ParticleRenderMode.VANILA).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.particleRenderMode")}).setSaveConsumer(arg_0 -> Config.CLIENT.particleRenderMode.set(arg_0)).setEnumNameProvider(value -> { + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.translatable((String)"option.explosionoverhaul.scenariosHeader")).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.scenariosHeader")}).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.singleExplosionWeight"), ((Integer)scenariosConfig.singleExplosionWeight.get()).intValue(), 0, 100).setTextGetter(v -> Component.literal((String)(v + "%"))).setDefaultValue(70).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.singleExplosionWeight).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.chainReactionWeight"), ((Integer)scenariosConfig.chainReactionWeight.get()).intValue(), 0, 100).setTextGetter(v -> Component.literal((String)(v + "%"))).setDefaultValue(15).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.chainReactionWeight).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.shellingWeight"), ((Integer)scenariosConfig.shellingWeight.get()).intValue(), 0, 100).setTextGetter(v -> Component.literal((String)(v + "%"))).setDefaultValue(15).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.shellingWeight).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.translatable((String)"option.explosionoverhaul.chainReactionSettingsHeader")).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.minChainReactionShots"), ((Integer)scenariosConfig.minChainReactionShots.get()).intValue(), 2, 20).setDefaultValue(3).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.minChainReactionShots).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.maxChainReactionShots"), ((Integer)scenariosConfig.maxChainReactionShots.get()).intValue(), 2, 20).setDefaultValue(7).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.maxChainReactionShots).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.minTimeBetweenChainShots"), ((Integer)scenariosConfig.minTimeBetweenChainShots.get()).intValue(), 5, 200).setTextGetter(v -> Component.literal((String)String.format("%.2fs", (double)v.intValue() / 20.0))).setDefaultValue(10).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.minTimeBetweenChainShots).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.maxTimeBetweenChainShots"), ((Integer)scenariosConfig.maxTimeBetweenChainShots.get()).intValue(), 10, 400).setTextGetter(v -> Component.literal((String)String.format("%.2fs", (double)v.intValue() / 20.0))).setDefaultValue(40).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.maxTimeBetweenChainShots).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.translatable((String)"option.explosionoverhaul.shellingSettingsHeader")).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.minShellingDelay"), ((Integer)scenariosConfig.minShellingDelay.get()).intValue(), 20, 400).setTextGetter(v -> Component.literal((String)String.format("%.2fs", (double)v.intValue() / 20.0))).setDefaultValue(40).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.minShellingDelay).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.maxShellingDelay"), ((Integer)scenariosConfig.maxShellingDelay.get()).intValue(), 20, 400).setTextGetter(v -> Component.literal((String)String.format("%.2fs", (double)v.intValue() / 20.0))).setDefaultValue(140).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)scenariosConfig.maxShellingDelay).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.translatable((String)"option.explosionoverhaul.powerTiersHeader")).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.powerTiersHeader")}).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.tier1_weight"), ((Integer)ambientConfig.powerTiers.tier1_weight.get()).intValue(), 0, 100).setTextGetter(v -> Component.literal((String)(v + "%"))).setDefaultValue(50).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.powerTiers.tier1_weight).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.tier2_weight"), ((Integer)ambientConfig.powerTiers.tier2_weight.get()).intValue(), 0, 100).setTextGetter(v -> Component.literal((String)(v + "%"))).setDefaultValue(25).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.powerTiers.tier2_weight).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.tier3_weight"), ((Integer)ambientConfig.powerTiers.tier3_weight.get()).intValue(), 0, 100).setTextGetter(v -> Component.literal((String)(v + "%"))).setDefaultValue(15).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.powerTiers.tier3_weight).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.tier4_weight"), ((Integer)ambientConfig.powerTiers.tier4_weight.get()).intValue(), 0, 100).setTextGetter(v -> Component.literal((String)(v + "%"))).setDefaultValue(8).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.powerTiers.tier4_weight).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.tier5_weight"), ((Integer)ambientConfig.powerTiers.tier5_weight.get()).intValue(), 0, 100).setTextGetter(v -> Component.literal((String)(v + "%"))).setDefaultValue(2).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)ambientConfig.powerTiers.tier5_weight).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.translatable((String)"option.explosionoverhaul.soundTypesHeader")).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableSurfaceSounds"), ((Boolean)ambientConfig.soundTypes.enableSurfaceSounds.get()).booleanValue()).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableSurfaceSounds")}).setDefaultValue(true).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)ambientConfig.soundTypes.enableSurfaceSounds).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableCaveSounds"), ((Boolean)ambientConfig.soundTypes.enableCaveSounds.get()).booleanValue()).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableCaveSounds")}).setDefaultValue(true).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)ambientConfig.soundTypes.enableCaveSounds).set(arg_0)).build()); + ambientCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableAmbientCaveDust"), ((Boolean)ambientConfig.soundTypes.enableAmbientCaveDust.get()).booleanValue()).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableAmbientCaveDust")}).setDefaultValue(true).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)ambientConfig.soundTypes.enableAmbientCaveDust).set(arg_0)).build()); + ConfigCategory renderCategory = builder.getOrCreateCategory((Component)Component.translatable((String)"category.explosionoverhaul.render")); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startEnumSelector((Component)Component.translatable((String)"option.explosionoverhaul.glowTextureQuality"), Config.Client.GlowTextureQuality.class, (Enum)((Config.Client.GlowTextureQuality)((Object)Config.CLIENT.glowTextureQuality.get()))).setDefaultValue((Enum)Config.Client.GlowTextureQuality.QUALITY_256).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.glowTextureQuality")}).setSaveConsumer(arg_0 -> Config.CLIENT.glowTextureQuality.set(arg_0)).setEnumNameProvider(value -> Component.literal((String)(value == Config.Client.GlowTextureQuality.QUALITY_64 ? "64x" : "256x"))).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startEnumSelector((Component)Component.translatable((String)"option.explosionoverhaul.particleRenderMode"), Config.Client.ParticleRenderMode.class, (Enum)((Config.Client.ParticleRenderMode)((Object)Config.CLIENT.particleRenderMode.get()))).setDefaultValue((Enum)Config.Client.ParticleRenderMode.VANILA).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.particleRenderMode")}).setSaveConsumer(arg_0 -> Config.CLIENT.particleRenderMode.set(arg_0)).setEnumNameProvider(value -> { if (value == Config.Client.ParticleRenderMode.VANILA) { - return Component.m_237113_((String)"Vanilla-like"); + return Component.literal((String)"Vanilla-like"); } if (value == Config.Client.ParticleRenderMode.REALISTIC_2) { - return Component.m_237113_((String)"Realistic 2"); + return Component.literal((String)"Realistic 2"); } - return Component.m_237113_((String)"Realistic"); + return Component.literal((String)"Realistic"); }).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.particleSizeScale"), (int)((Double)Config.CLIENT.particleSizeScale.get() * 100.0), 10, 500).setDefaultValue(100).setTextGetter(value -> Component.m_237113_((String)String.format("%.2fx", (double)value.intValue() / 100.0))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.particleSizeScale")}).setSaveConsumer(newValue -> Config.CLIENT.particleSizeScale.set((Object)((double)newValue.intValue() / 100.0))).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableExplosionParticles"), ((Boolean)Config.CLIENT.enableExplosionParticles.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableExplosionParticles")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableExplosionParticles).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enablePlasmaParticles"), ((Boolean)Config.CLIENT.enablePlasmaParticles.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enablePlasmaParticles")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enablePlasmaParticles).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enablePlasmaSmokeTrail"), ((Boolean)Config.CLIENT.enablePlasmaSmokeTrail.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enablePlasmaSmokeTrail")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enablePlasmaSmokeTrail).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.plasmaSmokeFrequency"), (int)((Double)Config.CLIENT.plasmaSmokeFrequency.get() * 100.0), 0, 100).setDefaultValue(25).setTextGetter(value -> Component.m_237113_((String)(value + "%"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.plasmaSmokeFrequency")}).setSaveConsumer(newValue -> Config.CLIENT.plasmaSmokeFrequency.set((Object)((double)newValue.intValue() / 100.0))).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.plasmaSmokeCount"), ((Integer)Config.CLIENT.plasmaSmokeCount.get()).intValue(), 0, 5).setDefaultValue(1).setTextGetter(value -> Component.m_237113_((String)String.valueOf(value))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.plasmaSmokeCount")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.CLIENT.plasmaSmokeCount).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableFlashEffect"), ((Boolean)Config.CLIENT.enableFlashEffect.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableFlashEffect")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableFlashEffect).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.flashMaxOpacity"), (int)((Double)Config.CLIENT.flashMaxOpacity.get() * 100.0), 0, 100).setDefaultValue(50).setTextGetter(value -> Component.m_237113_((String)(value + "%"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.flashMaxOpacity")}).setSaveConsumer(newValue -> Config.CLIENT.flashMaxOpacity.set((Object)((double)newValue.intValue() / 100.0))).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableLineSparks"), ((Boolean)Config.CLIENT.enableLineSparks.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableLineSparks")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableLineSparks).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.lineSparkAmountMultiplier"), (int)((Double)Config.CLIENT.lineSparkAmountMultiplier.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.m_237113_((String)String.format("%d%%", value))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.lineSparkAmountMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.lineSparkAmountMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableGroundDustEffect"), ((Boolean)Config.CLIENT.enableGroundDustEffect.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableGroundDustEffect")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableGroundDustEffect).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.groundDustQuality"), (int)((Double)Config.CLIENT.groundDustQuality.get() * 100.0), 0, 100).setDefaultValue(100).setTextGetter(value -> Component.m_237113_((String)(value + "%"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.groundDustQuality")}).setSaveConsumer(newValue -> Config.CLIENT.groundDustQuality.set((Object)((double)newValue.intValue() / 100.0))).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.groundDustRaycastFrequency"), ((Integer)Config.CLIENT.groundDustRaycastFrequency.get()).intValue(), 1, 20).setDefaultValue(10).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.groundDustRaycastFrequency")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.CLIENT.groundDustRaycastFrequency).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableGroundMistEffect"), ((Boolean)Config.CLIENT.enableGroundMistEffect.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableGroundMistEffect")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableGroundMistEffect).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.groundMistQuality"), (int)((Double)Config.CLIENT.groundMistQuality.get() * 100.0), 0, 100).setDefaultValue(100).setTextGetter(value -> Component.m_237113_((String)(value + "%"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.groundMistQuality")}).setSaveConsumer(newValue -> Config.CLIENT.groundMistQuality.set((Object)((double)newValue.intValue() / 100.0))).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.groundMistRaycastFrequency"), ((Integer)Config.CLIENT.groundMistRaycastFrequency.get()).intValue(), 1, 20).setDefaultValue(10).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.groundMistRaycastFrequency")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.CLIENT.groundMistRaycastFrequency).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableShockwaveEffect"), ((Boolean)Config.CLIENT.enableShockwaveEffect.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableShockwaveEffect")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableShockwaveEffect).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237113_((String)" ")).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableWindEffect"), ((Boolean)Config.CLIENT.enableWindEffect.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableWindEffect")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableWindEffect).set(arg_0)).build()); - renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.windSpeedMultiplier"), (int)((Double)Config.CLIENT.windSpeedMultiplier.get() * 100.0), 100, 200).setDefaultValue(100).setTextGetter(value -> Component.m_237113_((String)String.format("%.2fx", (double)value.intValue() / 100.0))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.windSpeedMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.windSpeedMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); - ConfigCategory cameraCategory = builder.getOrCreateCategory((Component)Component.m_237115_((String)"category.explosionoverhaul.camera")); - cameraCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableCameraShake"), ((Boolean)Config.CLIENT.enableCameraShake.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableCameraShake")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableCameraShake).set(arg_0)).build()); - cameraCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.cameraShakeAmplifier"), (int)((Double)Config.CLIENT.cameraShakeAmplifier.get() * 10.0), 0, 100).setDefaultValue(10).setTextGetter(value -> Component.m_237113_((String)String.format("%.1fx", (double)value.intValue() / 10.0))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.cameraShakeAmplifier")}).setSaveConsumer(newValue -> Config.CLIENT.cameraShakeAmplifier.set((Object)((double)newValue.intValue() / 10.0))).build()); - cameraCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237115_((String)"option.explosionoverhaul.cameraServerHeader")).build()); - cameraCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enablePlayerShake"), ((Boolean)Config.COMMON.enablePlayerShake.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enablePlayerShake")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enablePlayerShake).set(arg_0)).build()); - cameraCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.playerShakeAmplifier"), (int)((Double)Config.COMMON.playerShakeAmplifier.get() * 10.0), 0, 100).setDefaultValue(10).setTextGetter(value -> Component.m_237113_((String)String.format("%.1fx", (double)value.intValue() / 10.0))).setTooltip(new Component[]{Component.m_237115_((String)"option.explosionoverhaul.playerShakeAmplifier")}).setSaveConsumer(newValue -> Config.COMMON.playerShakeAmplifier.set((Object)((double)newValue.intValue() / 10.0))).build()); - ConfigCategory scanCategory = builder.getOrCreateCategory((Component)Component.m_237115_((String)"category.explosionoverhaul.scan")); - scanCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.m_237115_((String)"option.explosionoverhaul.scanSettingsHeader")).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.particleSizeScale"), (int)((Double)Config.CLIENT.particleSizeScale.get() * 100.0), 10, 500).setDefaultValue(100).setTextGetter(value -> Component.literal((String)String.format("%.2fx", (double)value.intValue() / 100.0))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.particleSizeScale")}).setSaveConsumer(newValue -> Config.CLIENT.particleSizeScale.set((Object)((double)newValue.intValue() / 100.0))).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableExplosionParticles"), ((Boolean)Config.CLIENT.enableExplosionParticles.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableExplosionParticles")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableExplosionParticles).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enablePlasmaParticles"), ((Boolean)Config.CLIENT.enablePlasmaParticles.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enablePlasmaParticles")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enablePlasmaParticles).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enablePlasmaSmokeTrail"), ((Boolean)Config.CLIENT.enablePlasmaSmokeTrail.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enablePlasmaSmokeTrail")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enablePlasmaSmokeTrail).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.plasmaSmokeFrequency"), (int)((Double)Config.CLIENT.plasmaSmokeFrequency.get() * 100.0), 0, 100).setDefaultValue(25).setTextGetter(value -> Component.literal((String)(value + "%"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.plasmaSmokeFrequency")}).setSaveConsumer(newValue -> Config.CLIENT.plasmaSmokeFrequency.set((Object)((double)newValue.intValue() / 100.0))).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.plasmaSmokeCount"), ((Integer)Config.CLIENT.plasmaSmokeCount.get()).intValue(), 0, 5).setDefaultValue(1).setTextGetter(value -> Component.literal((String)String.valueOf(value))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.plasmaSmokeCount")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.CLIENT.plasmaSmokeCount).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableFlashEffect"), ((Boolean)Config.CLIENT.enableFlashEffect.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableFlashEffect")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableFlashEffect).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.flashMaxOpacity"), (int)((Double)Config.CLIENT.flashMaxOpacity.get() * 100.0), 0, 100).setDefaultValue(50).setTextGetter(value -> Component.literal((String)(value + "%"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.flashMaxOpacity")}).setSaveConsumer(newValue -> Config.CLIENT.flashMaxOpacity.set((Object)((double)newValue.intValue() / 100.0))).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableLineSparks"), ((Boolean)Config.CLIENT.enableLineSparks.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableLineSparks")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableLineSparks).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.lineSparkAmountMultiplier"), (int)((Double)Config.CLIENT.lineSparkAmountMultiplier.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.literal((String)String.format("%d%%", value))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.lineSparkAmountMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.lineSparkAmountMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableGroundDustEffect"), ((Boolean)Config.CLIENT.enableGroundDustEffect.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableGroundDustEffect")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableGroundDustEffect).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.groundDustQuality"), (int)((Double)Config.CLIENT.groundDustQuality.get() * 100.0), 0, 100).setDefaultValue(100).setTextGetter(value -> Component.literal((String)(value + "%"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.groundDustQuality")}).setSaveConsumer(newValue -> Config.CLIENT.groundDustQuality.set((Object)((double)newValue.intValue() / 100.0))).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.groundDustRaycastFrequency"), ((Integer)Config.CLIENT.groundDustRaycastFrequency.get()).intValue(), 1, 20).setDefaultValue(10).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.groundDustRaycastFrequency")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.CLIENT.groundDustRaycastFrequency).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableGroundMistEffect"), ((Boolean)Config.CLIENT.enableGroundMistEffect.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableGroundMistEffect")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableGroundMistEffect).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.groundMistQuality"), (int)((Double)Config.CLIENT.groundMistQuality.get() * 100.0), 0, 100).setDefaultValue(100).setTextGetter(value -> Component.literal((String)(value + "%"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.groundMistQuality")}).setSaveConsumer(newValue -> Config.CLIENT.groundMistQuality.set((Object)((double)newValue.intValue() / 100.0))).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.groundMistRaycastFrequency"), ((Integer)Config.CLIENT.groundMistRaycastFrequency.get()).intValue(), 1, 20).setDefaultValue(10).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.groundMistRaycastFrequency")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.CLIENT.groundMistRaycastFrequency).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableShockwaveEffect"), ((Boolean)Config.CLIENT.enableShockwaveEffect.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableShockwaveEffect")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableShockwaveEffect).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.literal((String)" ")).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableWindEffect"), ((Boolean)Config.CLIENT.enableWindEffect.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableWindEffect")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableWindEffect).set(arg_0)).build()); + renderCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.windSpeedMultiplier"), (int)((Double)Config.CLIENT.windSpeedMultiplier.get() * 100.0), 100, 200).setDefaultValue(100).setTextGetter(value -> Component.literal((String)String.format("%.2fx", (double)value.intValue() / 100.0))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.windSpeedMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.windSpeedMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); + ConfigCategory cameraCategory = builder.getOrCreateCategory((Component)Component.translatable((String)"category.explosionoverhaul.camera")); + cameraCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableCameraShake"), ((Boolean)Config.CLIENT.enableCameraShake.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableCameraShake")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableCameraShake).set(arg_0)).build()); + cameraCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.cameraShakeAmplifier"), (int)((Double)Config.CLIENT.cameraShakeAmplifier.get() * 10.0), 0, 100).setDefaultValue(10).setTextGetter(value -> Component.literal((String)String.format("%.1fx", (double)value.intValue() / 10.0))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.cameraShakeAmplifier")}).setSaveConsumer(newValue -> Config.CLIENT.cameraShakeAmplifier.set((Object)((double)newValue.intValue() / 10.0))).build()); + cameraCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.translatable((String)"option.explosionoverhaul.cameraServerHeader")).build()); + cameraCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enablePlayerShake"), ((Boolean)Config.COMMON.enablePlayerShake.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enablePlayerShake")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enablePlayerShake).set(arg_0)).build()); + cameraCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.playerShakeAmplifier"), (int)((Double)Config.COMMON.playerShakeAmplifier.get() * 10.0), 0, 100).setDefaultValue(10).setTextGetter(value -> Component.literal((String)String.format("%.1fx", (double)value.intValue() / 10.0))).setTooltip(new Component[]{Component.translatable((String)"option.explosionoverhaul.playerShakeAmplifier")}).setSaveConsumer(newValue -> Config.COMMON.playerShakeAmplifier.set((Object)((double)newValue.intValue() / 10.0))).build()); + ConfigCategory scanCategory = builder.getOrCreateCategory((Component)Component.translatable((String)"category.explosionoverhaul.scan")); + scanCategory.addEntry((AbstractConfigListEntry)entryBuilder.startTextDescription((Component)Component.translatable((String)"option.explosionoverhaul.scanSettingsHeader")).build()); int availableCores = Runtime.getRuntime().availableProcessors(); int maxThreads = Math.min(32, availableCores); - scanCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.maxScanThreads"), ((Integer)Config.COMMON.scan.maxScanThreads.get()).intValue(), 0, maxThreads).setDefaultValue(0).setTextGetter(value -> { + scanCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.maxScanThreads"), ((Integer)Config.COMMON.scan.maxScanThreads.get()).intValue(), 0, maxThreads).setDefaultValue(0).setTextGetter(value -> { if (value == 0) { - return Component.m_237113_((String)("Auto (" + availableCores + " threads)")); + return Component.literal((String)("Auto (" + availableCores + " threads)")); } - return Component.m_237113_((String)String.valueOf(value)); - }).setTooltip(new Component[]{Component.m_237113_((String)("Maximum number of threads to use for chunk scanning.\n0 = Auto-detect (recommended): automatically uses all " + availableCores + " available threads\n1 = Single-threaded (slowest but safest for low-end servers)\n2-" + maxThreads + " = Custom thread count (available range for your system)\nYour system supports up to " + availableCores + " threads.\nMore threads = faster scanning but higher CPU usage."))}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.scan.maxScanThreads).set(arg_0)).build()); - scanCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.cpuUsagePercent"), ((Integer)Config.COMMON.scan.cpuUsagePercent.get()).intValue(), 1, 100).setDefaultValue(75).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.cpuUsagePercent")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.scan.cpuUsagePercent).set(arg_0)).build()); - scanCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableBlockIndexing"), ((Boolean)Config.COMMON.scan.enableBlockIndexing.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableBlockIndexing")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.scan.enableBlockIndexing).set(arg_0)).build()); - scanCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.showScanProgressHUD"), ((Boolean)Config.COMMON.scan.showScanProgressHUD.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.showScanProgressHUD")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.scan.showScanProgressHUD).set(arg_0)).build()); - ConfigCategory soundsCategory = builder.getOrCreateCategory((Component)Component.m_237115_((String)"category.explosionoverhaul.sounds")); - soundsCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableAdvancedSoundSpeed"), ((Boolean)Config.COMMON.enableAdvancedSoundSpeed.get()).booleanValue()).setDefaultValue(false).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableAdvancedSoundSpeed")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableAdvancedSoundSpeed).set(arg_0)).build()); - ConfigCategory concussionCategory = builder.getOrCreateCategory((Component)Component.m_237115_((String)"category.explosionoverhaul.concussion")); - concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableConcussion"), ((Boolean)Config.CLIENT.enableConcussion.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableConcussion")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableConcussion).set(arg_0)).build()); - concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.concussionDurationMultiplier"), (int)((Double)Config.CLIENT.concussionDurationMultiplier.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.m_237113_((String)String.format("%.2fx", (double)value.intValue() / 100.0))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.concussionDurationMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.concussionDurationMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); - concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.concussionChanceMultiplier"), (int)((Double)Config.CLIENT.concussionChanceMultiplier.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.m_237113_((String)(value + "%"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.concussionChanceMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.concussionChanceMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); - concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableHeartbeatPulse"), ((Boolean)Config.CLIENT.enableHeartbeatPulse.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableHeartbeatPulse")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableHeartbeatPulse).set(arg_0)).build()); - concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableCameraSway"), ((Boolean)Config.CLIENT.enableCameraSway.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableCameraSway")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableCameraSway).set(arg_0)).build()); - concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.cameraSwayIntensity"), (int)((Double)Config.CLIENT.cameraSwayIntensity.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.m_237113_((String)String.format("%.2fx", (double)value.intValue() / 100.0))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.cameraSwayIntensity")}).setSaveConsumer(newValue -> Config.CLIENT.cameraSwayIntensity.set((Object)((double)newValue.intValue() / 100.0))).build()); - concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableDeafness"), ((Boolean)Config.CLIENT.enableDeafness.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableDeafness")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableDeafness).set(arg_0)).build()); - concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.enableLowPass"), ((Boolean)Config.CLIENT.enableLowPass.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.enableLowPass")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableLowPass).set(arg_0)).build()); - concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.deafnessChanceMultiplier"), (int)((Double)Config.CLIENT.deafnessChanceMultiplier.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.m_237113_((String)(value + "%"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.deafnessChanceMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.deafnessChanceMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); - concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.m_237115_((String)"option.explosionoverhaul.lowPassChanceMultiplier"), (int)((Double)Config.CLIENT.lowPassChanceMultiplier.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.m_237113_((String)(value + "%"))).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.lowPassChanceMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.lowPassChanceMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); - concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.m_237115_((String)"option.explosionoverhaul.showHeartbeatHUD"), ((Boolean)Config.CLIENT.showHeartbeatHUD.get()).booleanValue()).setDefaultValue(false).setTooltip(new Component[]{Component.m_237115_((String)"tooltip.explosionoverhaul.showHeartbeatHUD")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.showHeartbeatHUD).set(arg_0)).build()); - ConfigCategory blacklistCategory = builder.getOrCreateCategory((Component)Component.m_237115_((String)"category.explosionoverhaul.blacklists")); - blacklistCategory.addEntry((AbstractConfigListEntry)new LinkButtonEntry((Component)Component.m_237115_((String)"option.explosionoverhaul.blacklist_button"), (Component)Component.m_237115_((String)"tooltip.explosionoverhaul.blacklist_button"), () -> Minecraft.m_91087_().m_91152_((Screen)new BlacklistScreen(parent)))); + return Component.literal((String)String.valueOf(value)); + }).setTooltip(new Component[]{Component.literal((String)("Maximum number of threads to use for chunk scanning.\n0 = Auto-detect (recommended): automatically uses all " + availableCores + " available threads\n1 = Single-threaded (slowest but safest for low-end servers)\n2-" + maxThreads + " = Custom thread count (available range for your system)\nYour system supports up to " + availableCores + " threads.\nMore threads = faster scanning but higher CPU usage."))}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.scan.maxScanThreads).set(arg_0)).build()); + scanCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.cpuUsagePercent"), ((Integer)Config.COMMON.scan.cpuUsagePercent.get()).intValue(), 1, 100).setDefaultValue(75).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.cpuUsagePercent")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.IntValue)Config.COMMON.scan.cpuUsagePercent).set(arg_0)).build()); + scanCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableBlockIndexing"), ((Boolean)Config.COMMON.scan.enableBlockIndexing.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableBlockIndexing")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.scan.enableBlockIndexing).set(arg_0)).build()); + scanCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.showScanProgressHUD"), ((Boolean)Config.COMMON.scan.showScanProgressHUD.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.showScanProgressHUD")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.scan.showScanProgressHUD).set(arg_0)).build()); + ConfigCategory soundsCategory = builder.getOrCreateCategory((Component)Component.translatable((String)"category.explosionoverhaul.sounds")); + soundsCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableAdvancedSoundSpeed"), ((Boolean)Config.COMMON.enableAdvancedSoundSpeed.get()).booleanValue()).setDefaultValue(false).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableAdvancedSoundSpeed")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.COMMON.enableAdvancedSoundSpeed).set(arg_0)).build()); + ConfigCategory concussionCategory = builder.getOrCreateCategory((Component)Component.translatable((String)"category.explosionoverhaul.concussion")); + concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableConcussion"), ((Boolean)Config.CLIENT.enableConcussion.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableConcussion")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableConcussion).set(arg_0)).build()); + concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.concussionDurationMultiplier"), (int)((Double)Config.CLIENT.concussionDurationMultiplier.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.literal((String)String.format("%.2fx", (double)value.intValue() / 100.0))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.concussionDurationMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.concussionDurationMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); + concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.concussionChanceMultiplier"), (int)((Double)Config.CLIENT.concussionChanceMultiplier.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.literal((String)(value + "%"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.concussionChanceMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.concussionChanceMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); + concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableHeartbeatPulse"), ((Boolean)Config.CLIENT.enableHeartbeatPulse.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableHeartbeatPulse")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableHeartbeatPulse).set(arg_0)).build()); + concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableCameraSway"), ((Boolean)Config.CLIENT.enableCameraSway.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableCameraSway")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableCameraSway).set(arg_0)).build()); + concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.cameraSwayIntensity"), (int)((Double)Config.CLIENT.cameraSwayIntensity.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.literal((String)String.format("%.2fx", (double)value.intValue() / 100.0))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.cameraSwayIntensity")}).setSaveConsumer(newValue -> Config.CLIENT.cameraSwayIntensity.set((Object)((double)newValue.intValue() / 100.0))).build()); + concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableDeafness"), ((Boolean)Config.CLIENT.enableDeafness.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableDeafness")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableDeafness).set(arg_0)).build()); + concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.enableLowPass"), ((Boolean)Config.CLIENT.enableLowPass.get()).booleanValue()).setDefaultValue(true).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.enableLowPass")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.enableLowPass).set(arg_0)).build()); + concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.deafnessChanceMultiplier"), (int)((Double)Config.CLIENT.deafnessChanceMultiplier.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.literal((String)(value + "%"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.deafnessChanceMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.deafnessChanceMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); + concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startIntSlider((Component)Component.translatable((String)"option.explosionoverhaul.lowPassChanceMultiplier"), (int)((Double)Config.CLIENT.lowPassChanceMultiplier.get() * 100.0), 0, 500).setDefaultValue(100).setTextGetter(value -> Component.literal((String)(value + "%"))).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.lowPassChanceMultiplier")}).setSaveConsumer(newValue -> Config.CLIENT.lowPassChanceMultiplier.set((Object)((double)newValue.intValue() / 100.0))).build()); + concussionCategory.addEntry((AbstractConfigListEntry)entryBuilder.startBooleanToggle((Component)Component.translatable((String)"option.explosionoverhaul.showHeartbeatHUD"), ((Boolean)Config.CLIENT.showHeartbeatHUD.get()).booleanValue()).setDefaultValue(false).setTooltip(new Component[]{Component.translatable((String)"tooltip.explosionoverhaul.showHeartbeatHUD")}).setSaveConsumer(arg_0 -> ((ModConfigSpec.BooleanValue)Config.CLIENT.showHeartbeatHUD).set(arg_0)).build()); + ConfigCategory blacklistCategory = builder.getOrCreateCategory((Component)Component.translatable((String)"category.explosionoverhaul.blacklists")); + blacklistCategory.addEntry((AbstractConfigListEntry)new LinkButtonEntry((Component)Component.translatable((String)"option.explosionoverhaul.blacklist_button"), (Component)Component.translatable((String)"tooltip.explosionoverhaul.blacklist_button"), () -> Minecraft.getInstance().m_91152_((Screen)new BlacklistScreen(parent)))); return builder.build(); } private static Component[] generateCraterTable(double multiplier) { int[] powerLevels; ArrayList lines = new ArrayList(); - lines.add(Component.m_237115_((String)"tooltip.explosionoverhaul.craterSizeMultiplier.title")); - lines.add(Component.m_237113_((String)"")); - lines.add(Component.m_237113_((String)"\u00a7bPower \u00a78| \u00a7aApprox. Diameter")); - lines.add(Component.m_237113_((String)"\u00a77--------------------------")); + lines.add(Component.translatable((String)"tooltip.explosionoverhaul.craterSizeMultiplier.title")); + lines.add(Component.literal((String)"")); + lines.add(Component.literal((String)"\u00a7bPower \u00a78| \u00a7aApprox. Diameter")); + lines.add(Component.literal((String)"\u00a77--------------------------")); for (int power : powerLevels = new int[]{4, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100}) { float baseRadius = CraterDeformer.calculateRadius(power); float diameter = (float)((double)baseRadius * multiplier * 2.0); String formattedLine = String.format("\u00a7f%-12d\u00a78| \u00a7a~%.1f blocks", power, Float.valueOf(diameter)); - lines.add(Component.m_237113_((String)formattedLine)); + lines.add(Component.literal((String)formattedLine)); } - lines.add(Component.m_237113_((String)"\u00a77--------------------------")); - lines.add(Component.m_237115_((String)"tooltip.explosionoverhaul.craterSizeMultiplier.footer")); - lines.add(Component.m_237113_((String)"")); - lines.add(Component.m_237115_((String)"tooltip.explosionoverhaul.craterShapeInfo")); + lines.add(Component.literal((String)"\u00a77--------------------------")); + lines.add(Component.translatable((String)"tooltip.explosionoverhaul.craterSizeMultiplier.footer")); + lines.add(Component.literal((String)"")); + lines.add(Component.translatable((String)"tooltip.explosionoverhaul.craterShapeInfo")); return lines.toArray(new Component[0]); } @@ -230,7 +230,7 @@ public class ModConfigScreen { this.button.m_253211_(y); this.button.m_88315_(graphics, mouseX, mouseY, delta); if (mouseX >= this.button.m_252754_() && mouseX <= this.button.m_252754_() + this.button.m_5711_() && mouseY >= this.button.m_252907_() && mouseY <= this.button.m_252907_() + this.button.m_93694_()) { - graphics.m_280557_(Minecraft.m_91087_().f_91062_, this.tooltip, mouseX, mouseY); + graphics.m_280557_(Minecraft.getInstance().font, this.tooltip, mouseX, mouseY); } } diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/PhysicsBasedExplosionEffect.java b/src/main/java/com/vinlanx/explosionoverhaul/client/PhysicsBasedExplosionEffect.java index 189b09f..09e8a25 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/PhysicsBasedExplosionEffect.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/PhysicsBasedExplosionEffect.java @@ -39,7 +39,7 @@ public class PhysicsBasedExplosionEffect { this.position = position; this.power = power; this.random = new Random(); - this.level = Minecraft.m_91087_().f_91073_; + this.level = Minecraft.getInstance().f_91073_; if (this.level == null) { this.finished = true; this.maxRadius = 0.0f; diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/ShockwaveEffect.java b/src/main/java/com/vinlanx/explosionoverhaul/client/ShockwaveEffect.java index a418106..3543df9 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/ShockwaveEffect.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/ShockwaveEffect.java @@ -25,7 +25,7 @@ public class ShockwaveEffect { private boolean finished = false; public ShockwaveEffect(Vec3 position, float power) { - this.level = Minecraft.m_91087_().f_91073_; + this.level = Minecraft.getInstance().f_91073_; this.position = position; this.power = power; float powerFraction = Mth.m_184655_((float)this.power, (float)5.0f, (float)100.0f); diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/SpriteSheetAnimator.java b/src/main/java/com/vinlanx/explosionoverhaul/client/SpriteSheetAnimator.java index de1668c..912d0ae 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/SpriteSheetAnimator.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/SpriteSheetAnimator.java @@ -41,7 +41,7 @@ public class SpriteSheetAnimator { } public void load() { - Minecraft mc = Minecraft.m_91087_(); + Minecraft mc = Minecraft.getInstance(); try { InputStream stream = ((Resource)mc.m_91098_().m_213713_(this.spriteSheetLocation).orElseThrow()).m_215507_(); this.spriteSheet = NativeImage.m_85058_((InputStream)stream); diff --git a/src/main/java/com/vinlanx/explosionoverhaul/client/VinlanxSplashScreen.java b/src/main/java/com/vinlanx/explosionoverhaul/client/VinlanxSplashScreen.java index 0736518..6c68e07 100644 --- a/src/main/java/com/vinlanx/explosionoverhaul/client/VinlanxSplashScreen.java +++ b/src/main/java/com/vinlanx/explosionoverhaul/client/VinlanxSplashScreen.java @@ -34,7 +34,7 @@ extends Screen { private SimpleSoundInstance boomSoundInstance; public VinlanxSplashScreen() { - super((Component)Component.m_237113_((String)"Vinlanx Intro")); + super((Component)Component.literal((String)"Vinlanx Intro")); } protected void m_7856_() { @@ -43,7 +43,7 @@ extends Screen { this.animator.load(); this.animator.play(); try { - SoundManager soundManager = Minecraft.m_91087_().m_91106_(); + SoundManager soundManager = Minecraft.getInstance().m_91106_(); this.boomSoundInstance = SimpleSoundInstance.m_119755_((SoundEvent)((SoundEvent)ModSounds.INTRO_BOOM_2.get()), (float)1.0f, (float)1.0f); soundManager.m_120367_((SoundInstance)this.boomSoundInstance); } @@ -69,7 +69,7 @@ extends Screen { public void m_88315_(GuiGraphics graphics, int mouseX, int mouseY, float partialTick) { int displayWidth; int displayHeight; - graphics.m_280509_(0, 0, this.f_96543_, this.f_96544_, -16777216); + graphics.fill(0, 0, this.f_96543_, this.f_96544_, -16777216); if (this.animator == null) { return; } @@ -125,7 +125,7 @@ extends Screen { } if (this.boomSoundInstance != null) { try { - Minecraft.m_91087_().m_91106_().m_120399_((SoundInstance)this.boomSoundInstance); + Minecraft.getInstance().m_91106_().m_120399_((SoundInstance)this.boomSoundInstance); } catch (Exception e) { ExplosionOverhaul.LOGGER.warn("Failed to stop intro_boom_2: {}", (Object)e.toString()); @@ -139,7 +139,7 @@ extends Screen { } private void transitionToFirstTimeScreen() { - Minecraft mc = Minecraft.m_91087_(); + Minecraft mc = Minecraft.getInstance(); mc.m_91152_((Screen)new GuideSlidesScreen()); } }