mirror of
https://github.com/JonasunderscoreJones/nicer-skies.git
synced 2025-10-23 03:39:18 +02:00
tooltips and translations!
This commit is contained in:
parent
ddfd0fc554
commit
6db1f14354
3 changed files with 99 additions and 94 deletions
|
@ -4,16 +4,20 @@ import codes.ztereohype.nicerskies.NicerSkies;
|
||||||
import codes.ztereohype.nicerskies.config.Config;
|
import codes.ztereohype.nicerskies.config.Config;
|
||||||
import codes.ztereohype.nicerskies.core.NebulaSeedManager;
|
import codes.ztereohype.nicerskies.core.NebulaSeedManager;
|
||||||
import codes.ztereohype.nicerskies.gui.widget.Separator;
|
import codes.ztereohype.nicerskies.gui.widget.Separator;
|
||||||
|
import codes.ztereohype.nicerskies.gui.widget.TooltippedCheckbox;
|
||||||
|
import codes.ztereohype.nicerskies.gui.widget.TooltippedSliderButton;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.GuiGraphics;
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
import net.minecraft.client.gui.components.AbstractSliderButton;
|
import net.minecraft.client.gui.components.AbstractSliderButton;
|
||||||
import net.minecraft.client.gui.components.Button;
|
import net.minecraft.client.gui.components.Button;
|
||||||
import net.minecraft.client.gui.components.Checkbox;
|
import net.minecraft.client.gui.components.Checkbox;
|
||||||
|
import net.minecraft.client.gui.components.Tooltip;
|
||||||
import net.minecraft.client.gui.screens.Screen;
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.network.chat.FormattedText;
|
import net.minecraft.network.chat.FormattedText;
|
||||||
import net.minecraft.network.chat.Style;
|
import net.minecraft.network.chat.Style;
|
||||||
|
|
||||||
|
import javax.tools.Tool;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
@ -21,7 +25,7 @@ import java.util.function.Supplier;
|
||||||
public class ConfigScreen extends Screen {
|
public class ConfigScreen extends Screen {
|
||||||
private final Screen lastScreen;
|
private final Screen lastScreen;
|
||||||
private final Config config;
|
private final Config config;
|
||||||
private final Config.ConfigData newConfig;
|
private Config.ConfigData newConfig;
|
||||||
|
|
||||||
private boolean invalidated = false;
|
private boolean invalidated = false;
|
||||||
|
|
||||||
|
@ -30,7 +34,13 @@ public class ConfigScreen extends Screen {
|
||||||
this.lastScreen = lastScreen;
|
this.lastScreen = lastScreen;
|
||||||
|
|
||||||
this.config = NicerSkies.getInstance().getConfig();
|
this.config = NicerSkies.getInstance().getConfig();
|
||||||
|
|
||||||
|
wipeConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void wipeConfig() {
|
||||||
this.newConfig = config.getConfigData().toBuilder().build();
|
this.newConfig = config.getConfigData().toBuilder().build();
|
||||||
|
this.newConfig.setNebulaConfig(config.getConfigData().getNebulaConfig().toBuilder().build());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -50,101 +60,76 @@ public class ConfigScreen extends Screen {
|
||||||
float nebulaNoiseScale = newConfig.getNebulaConfig().getNebulaNoiseScale();
|
float nebulaNoiseScale = newConfig.getNebulaConfig().getNebulaNoiseScale();
|
||||||
|
|
||||||
int Y = 60;
|
int Y = 60;
|
||||||
addRenderableWidget(new Checkbox(20, Y, 20, 20, Component.translatable("nicer_skies.option.render_nebulas"), renderNebulas) {
|
|
||||||
@Override
|
|
||||||
public void onPress() {
|
|
||||||
super.onPress();
|
|
||||||
newConfig.setRenderNebulas(this.selected());
|
|
||||||
invalidated = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
addRenderableWidget(new Checkbox(20, (Y += btnDst), 20, 20, Component.translatable("nicer_skies.option.twinkle_stars"), twinkleStars) {
|
addRenderableWidget(new TooltippedCheckbox(20, Y, 20, 20, Component.translatable("nicer_skies.option.render_nebulas"), renderNebulas, (selected) -> {
|
||||||
@Override
|
newConfig.setLightmapTweaked(selected);
|
||||||
public void onPress() {
|
|
||||||
super.onPress();
|
|
||||||
newConfig.setTwinklingStars(this.selected());
|
|
||||||
invalidated = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
addRenderableWidget(new Checkbox(20, (Y += btnDst), 20, 20, Component.translatable("nicer_skies.option.custom_lightmap"), lightmapTweaked) {
|
|
||||||
@Override
|
|
||||||
public void onPress() {
|
|
||||||
super.onPress();
|
|
||||||
newConfig.setLightmapTweaked(this.selected());
|
|
||||||
Minecraft.getInstance().gameRenderer.lightTexture().tick();
|
Minecraft.getInstance().gameRenderer.lightTexture().tick();
|
||||||
invalidated = true;
|
invalidated = true;
|
||||||
}
|
}, null));
|
||||||
});
|
|
||||||
|
addRenderableWidget(new TooltippedCheckbox(20, (Y += btnDst), 20, 20, Component.translatable("nicer_skies.option.twinkle_stars"), twinkleStars, (selected) -> {
|
||||||
|
newConfig.setTwinklingStars(selected);
|
||||||
|
invalidated = true;
|
||||||
|
}, null));
|
||||||
|
|
||||||
|
addRenderableWidget(new TooltippedCheckbox(20, (Y += btnDst), 20, 20, Component.translatable("nicer_skies.option.custom_lightmap"), lightmapTweaked, (selected) -> {
|
||||||
|
newConfig.setLightmapTweaked(selected);
|
||||||
|
Minecraft.getInstance().gameRenderer.lightTexture().tick();
|
||||||
|
invalidated = true;
|
||||||
|
}, Tooltip.create(Component.translatable("nicer_skies.option.custom_lightmap.tooltip"))));
|
||||||
|
|
||||||
addRenderableOnly(new Separator(this.width / 2, 30, this.height - 70));
|
addRenderableOnly(new Separator(this.width / 2, 30, this.height - 70));
|
||||||
Y = 60;
|
Y = 60;
|
||||||
|
|
||||||
addRenderableWidget(new Checkbox(nebulaOptMargin, Y, 20, 20, Component.literal("Render During Day"), renderDuringDay) {
|
// Render During Day
|
||||||
@Override
|
addRenderableWidget(new TooltippedCheckbox(nebulaOptMargin, Y, 20, 20, Component.translatable("nicer_skies.option.render_during_day"), renderDuringDay, (selected) -> {
|
||||||
public void onPress() {
|
newConfig.getNebulaConfig().setRenderDuringDay(selected);
|
||||||
super.onPress();
|
|
||||||
newConfig.getNebulaConfig().setRenderDuringDay(this.selected());
|
|
||||||
invalidated = true;
|
invalidated = true;
|
||||||
}
|
}, Tooltip.create(Component.translatable("nicer_skies.option.render_during_day.tooltip"))));
|
||||||
});
|
|
||||||
|
|
||||||
addRenderableWidget(new AbstractSliderButton(nebulaOptMargin, (Y += btnDst), 150, 20, Component.translatable("nicer_skies.option.nebula_transparency", (int) (nebulaStrength * 100) + "%"), nebulaStrength) {
|
// Nebula Strength
|
||||||
@Override
|
addRenderableWidget(new TooltippedSliderButton(nebulaOptMargin, (Y += btnDst), 150, 20, Component.translatable("nicer_skies.option.nebula_transparency",
|
||||||
protected void updateMessage() {
|
(int) (nebulaStrength *
|
||||||
this.setMessage(Component.translatable("nicer_skies.option.nebula_transparency", (int) (this.value * 100) + "%"));
|
100) +
|
||||||
}
|
"%"), nebulaStrength, value -> Component.translatable("nicer_skies.option.nebula_transparency",
|
||||||
|
(int) (value *
|
||||||
@Override
|
100) +
|
||||||
protected void applyValue() {
|
"%"), value -> {
|
||||||
newConfig.getNebulaConfig().setNebulaStrength((float) this.value);
|
newConfig.getNebulaConfig().setNebulaStrength(value.floatValue());
|
||||||
invalidated = true;
|
invalidated = true;
|
||||||
}
|
}, Tooltip.create(Component.translatable("nicer_skies.option.nebula_transparency.tooltip"))));
|
||||||
});
|
|
||||||
|
|
||||||
// Nebula Amount
|
// Nebula Amount
|
||||||
addRenderableWidget(new AbstractSliderButton(nebulaOptMargin, (Y += btnDst), 150, 20, Component.translatable("nicer_skies.option.nebula_amount", (int) (nebulaNoiseAmount * 100) + "%"), nebulaNoiseAmount) {
|
addRenderableWidget(new TooltippedSliderButton(nebulaOptMargin, (Y += btnDst), 150, 20, Component.translatable("nicer_skies.option.nebula_amount",
|
||||||
@Override
|
(int) (nebulaNoiseAmount *
|
||||||
protected void updateMessage() {
|
100) +
|
||||||
this.setMessage(Component.translatable("nicer_skies.option.nebula_amount", (int) (this.value * 100) + "%"));
|
"%"), nebulaNoiseAmount, value -> Component.translatable("nicer_skies.option.nebula_amount",
|
||||||
}
|
(int) (value *
|
||||||
|
100) +
|
||||||
@Override
|
"%"), value -> {
|
||||||
protected void applyValue() {
|
newConfig.getNebulaConfig().setNebulaNoiseAmount(value.floatValue());
|
||||||
newConfig.getNebulaConfig().setNebulaNoiseAmount((float) this.value);
|
|
||||||
invalidated = true;
|
invalidated = true;
|
||||||
}
|
}, Tooltip.create(Component.translatable("nicer_skies.option.nebula_amount.tooltip"))));
|
||||||
});
|
|
||||||
|
|
||||||
// Background Strength
|
// Background Strength
|
||||||
addRenderableWidget(new AbstractSliderButton(nebulaOptMargin, (Y += btnDst), 150, 20, Component.translatable("nicer_skies.option.background_strength", nebulaBaseColourAmount), nebulaBaseColourAmount / 255f) {
|
addRenderableWidget(new TooltippedSliderButton(nebulaOptMargin, Y += btnDst, 150, 20,
|
||||||
@Override
|
Component.translatable("nicer_skies.option.background_strength", nebulaBaseColourAmount),
|
||||||
protected void updateMessage() {
|
nebulaBaseColourAmount / 255f,
|
||||||
this.setMessage(Component.translatable("nicer_skies.option.background_strength", (int) (this.value * 255)));
|
value -> Component.translatable("nicer_skies.option.background_strength", (int) (value * 255)),
|
||||||
}
|
value -> {
|
||||||
|
newConfig.getNebulaConfig().setBaseColourAmount((int) (value * 255));
|
||||||
@Override
|
|
||||||
protected void applyValue() {
|
|
||||||
newConfig.getNebulaConfig().setBaseColourAmount((int) (this.value * 255));
|
|
||||||
invalidated = true;
|
invalidated = true;
|
||||||
}
|
}, Tooltip.create(Component.translatable("nicer_skies.option.background_strength.tooltip"))));
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// Nebula Scale
|
// Nebula Scale
|
||||||
addRenderableWidget(new AbstractSliderButton(nebulaOptMargin, (Y += btnDst), 150, 20, Component.translatable("nicer_skies.option.nebula_scale", nebulaNoiseScale), mapValueToScale(nebulaNoiseScale)) {
|
addRenderableWidget(new TooltippedSliderButton(nebulaOptMargin, Y += btnDst, 150, 20,
|
||||||
@Override
|
Component.translatable("nicer_skies.option.nebula_scale", nebulaNoiseScale),
|
||||||
protected void updateMessage() {
|
mapValueToScale(nebulaNoiseScale), value -> Component.translatable("nicer_skies.option.nebula_scale", mapScaleToValue(value)),
|
||||||
this.setMessage(Component.translatable("nicer_skies.option.nebula_scale", mapScaleToValue((float) this.value)));
|
value -> {
|
||||||
}
|
newConfig.getNebulaConfig().setNebulaNoiseScale(mapScaleToValue(value));
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void applyValue() {
|
|
||||||
newConfig.getNebulaConfig().setNebulaNoiseScale(mapScaleToValue((float) this.value));
|
|
||||||
invalidated = true;
|
invalidated = true;
|
||||||
}
|
}, Tooltip.create(Component.translatable("nicer_skies.option.nebula_scale.tooltip"))));
|
||||||
});
|
|
||||||
|
|
||||||
// Reset
|
// Reset
|
||||||
addRenderableWidget(new Button(nebulaOptMargin, (Y += btnDst), 150, 20, Component.translatable("nicer_skies.menu.reset"), (button) -> {
|
addRenderableWidget(new Button(nebulaOptMargin, (Y += btnDst), 150, 20, Component.translatable("nicer_skies.menu.reset"), (button) -> {
|
||||||
|
@ -160,7 +145,9 @@ public class ConfigScreen extends Screen {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Apply
|
// Apply
|
||||||
addRenderableWidget(new Button(this.width / 2 + 4, this.height - 28, 150, 20, Component.translatable("nicer_skies.menu.apply"), (button) -> {
|
addRenderableWidget(new Button(
|
||||||
|
this.width / 2 + 4,
|
||||||
|
this.height - 28, 150, 20, Component.translatable("nicer_skies.menu.apply"), (button) -> {
|
||||||
config.updateConfig(newConfig);
|
config.updateConfig(newConfig);
|
||||||
regenerateSky();
|
regenerateSky();
|
||||||
invalidated = false;
|
invalidated = false;
|
||||||
|
@ -186,14 +173,18 @@ public class ConfigScreen extends Screen {
|
||||||
super.render(g, mouseX, mouseY, partialTick);
|
super.render(g, mouseX, mouseY, partialTick);
|
||||||
|
|
||||||
g.drawCenteredString(this.font, this.title, this.width / 2, 10, 16777215);
|
g.drawCenteredString(this.font, this.title, this.width / 2, 10, 16777215);
|
||||||
g.drawCenteredString(this.font, Component.translatable("nicer_skies.menu.subtitle.feature_toggles"), this.width / 4, 36, 16777215);
|
g.drawCenteredString(this.font, Component.translatable("nicer_skies.menu.subtitle.feature_toggles"),
|
||||||
g.drawCenteredString(this.font, Component.translatable("nicer_skies.menu.subtitle.nebula_settings"), 3 * this.width / 4, 36, 16777215);
|
this.width / 4, 36, 16777215);
|
||||||
|
g.drawCenteredString(this.font, Component.translatable("nicer_skies.menu.subtitle.nebula_settings"),
|
||||||
|
3 * this.width / 4, 36, 16777215);
|
||||||
|
|
||||||
drawWrappedComponent(g, Component.translatable("nicer_skies.menu.compatibility_warning"), 20, 150, this.width / 2 - 40, 0xFFFF00);
|
drawWrappedComponent(g, Component.translatable("nicer_skies.menu.compatibility_warning"), 20, 150,
|
||||||
|
this.width / 2 - 40, 0xFFFF00);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClose() {
|
public void onClose() {
|
||||||
|
wipeConfig();
|
||||||
minecraft.setScreen(lastScreen);
|
minecraft.setScreen(lastScreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,12 +210,12 @@ public class ConfigScreen extends Screen {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private float mapScaleToValue(float value) {
|
private float mapScaleToValue(double value) {
|
||||||
return (float) Math.round(1f / (value * 1.5f + 0.5f) * 100) / 100f;
|
return (float) Math.round(1f / (value * 1.5f + 0.5f) * 100) / 100f;
|
||||||
}
|
}
|
||||||
|
|
||||||
// inverse of above
|
// inverse of above
|
||||||
private float mapValueToScale(float value) {
|
private float mapValueToScale(double value) {
|
||||||
return ((1f / value) - 0.5f) / 1.5f;
|
return (float) ((1f / value) - 0.5f) / 1.5f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,9 +16,15 @@
|
||||||
"nicer_skies.option.background_strength": "Background Strength: %d",
|
"nicer_skies.option.background_strength": "Background Strength: %d",
|
||||||
"nicer_skies.option.nebula_scale": "Nebula Scale: %dx",
|
"nicer_skies.option.nebula_scale": "Nebula Scale: %dx",
|
||||||
|
|
||||||
|
"nicer_skies.option.custom_lightmap.tooltip": "Tweak the light color with slightly warmer block lights and darker, bluer nights.",
|
||||||
|
|
||||||
|
"nicer_skies.option.nebula_scale.tooltip": "Determines the size of the nebulas. Higher values will make nebulas appear smaller, and vice-versa.",
|
||||||
|
"nicer_skies.option.nebula_transparency.tooltip": "Determines the transparency of the nebulas. Higher values will make nebulas appear more visible.",
|
||||||
|
"nicer_skies.option.nebula_amount.tooltip": "Determines how much of the sky is covered by nebulas. Lower values will create few, small, sparse nebulas.",
|
||||||
|
"nicer_skies.option.background_strength.tooltip": "Determines the strength of the rainbow background. Higher values will make the background appear brighter.",
|
||||||
|
"nicer_skies.option.render_during_day.tooltip": "Determines whether nebulas are rendered during the day. If disabled, nebulas will only be rendered at night, fading in and out.",
|
||||||
|
|
||||||
"nicer_skies.menu.back": "Back",
|
"nicer_skies.menu.back": "Back",
|
||||||
"nicer_skies.menu.reset": "Reset",
|
"nicer_skies.menu.reset": "Reset",
|
||||||
"nicer_skies.menu.apply": "Apply"
|
"nicer_skies.menu.apply": "Apply"
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -16,6 +16,14 @@
|
||||||
"nicer_skies.option.background_strength": "Visibilità sfondo: %d",
|
"nicer_skies.option.background_strength": "Visibilità sfondo: %d",
|
||||||
"nicer_skies.option.nebula_scale": "Dimensione nebule: %dx",
|
"nicer_skies.option.nebula_scale": "Dimensione nebule: %dx",
|
||||||
|
|
||||||
|
"nicer_skies.option.custom_lightmap.tooltip": "Modifica il colore della luce scaldandola un po' e rendendo le notti più scure e blu.",
|
||||||
|
|
||||||
|
"nicer_skies.option.nebula_scale.tooltip": "Determina la dimensione delle nebule. Valori più alti renderanno le nebule più piccole, e viceversa.",
|
||||||
|
"nicer_skies.option.nebula_transparency.tooltip": "Determina la trasparenza delle nebule. Valori più alti renderanno le nebule più visibili.",
|
||||||
|
"nicer_skies.option.nebula_amount.tooltip": "Determina quanto del cielo è coperto dalle nebule. Valori più bassi creeranno poche, piccole e rare nebule.",
|
||||||
|
"nicer_skies.option.background_strength.tooltip": "Determina l'intensità dello sfondo arcobaleno. Valori più alti renderanno lo sfondo più luminoso",
|
||||||
|
"nicer_skies.option.render_during_day.tooltip": "Determina se le nebule sono renderizzate durante il giorno. Se disabilitato, le nebule saranno renderizzate solo di notte.",
|
||||||
|
|
||||||
"nicer_skies.menu.back": "Indietro",
|
"nicer_skies.menu.back": "Indietro",
|
||||||
"nicer_skies.menu.reset": "Ripristina",
|
"nicer_skies.menu.reset": "Ripristina",
|
||||||
"nicer_skies.menu.apply": "Applica"
|
"nicer_skies.menu.apply": "Applica"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue