Reduce decompile API blockers
Some checks failed
Build / build (push) Failing after 6m48s

This commit is contained in:
MrSphay
2026-05-04 13:33:41 +02:00
parent e41adca82b
commit 93c8d5efae
40 changed files with 472 additions and 1083 deletions

View File

@@ -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 {

View File

@@ -66,7 +66,7 @@ extends Screen {
private List<String> registryCache = new ArrayList<String>();
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) {

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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<TrackedSound> 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;

View File

@@ -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));
}

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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));
}

View File

@@ -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());

View File

@@ -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();

View File

@@ -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();

View File

@@ -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));
}

View File

@@ -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_();
}

View File

@@ -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());

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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<MutableComponent> lines = new ArrayList<MutableComponent>();
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);
}
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);

View File

@@ -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());
}
}