Add tooltips
This commit is contained in:
parent
cf179d9d25
commit
b07e0a0671
@ -21,7 +21,10 @@ This config may include:
|
|||||||
You can also provide translations/more complex names for your resource pack's configs.\
|
You can also provide translations/more complex names for your resource pack's configs.\
|
||||||
The following things can be changed:
|
The following things can be changed:
|
||||||
- Entry names: `respackopts.field.{packId}.{entryId}`
|
- Entry names: `respackopts.field.{packId}.{entryId}`
|
||||||
- Config titles: `respackopts.title.{packId}`
|
- Category titles: `respackopts.title.{packId}`
|
||||||
|
- Tooltips: `respackopts.tooltip.{packId}.{entryId}`
|
||||||
|
|
||||||
|
In subcategories, you can use `{packId}.{categoryId}` instead of `{packId}`
|
||||||
|
|
||||||
Please note that translations require your resource pack to be loaded.
|
Please note that translations require your resource pack to be loaded.
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ minecraft_version=1.16.4
|
|||||||
yarn_mappings=1.16.4+build.7
|
yarn_mappings=1.16.4+build.7
|
||||||
loader_version=0.10.8
|
loader_version=0.10.8
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=1.3.0
|
mod_version=1.3.1
|
||||||
maven_group=io.gitlab.jfronny
|
maven_group=io.gitlab.jfronny
|
||||||
archives_base_name=respackopts
|
archives_base_name=respackopts
|
||||||
# Dependencies
|
# Dependencies
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
{
|
{
|
||||||
"respackopts.title.lumi": "Lumi Lights",
|
"respackopts.title.lumi": "Lumi Lights",
|
||||||
"respackopts.field.lumi.tonemap": "Tonemap mode",
|
"respackopts.field.lumi.tonemap": "Tonemap mode",
|
||||||
|
"respackopts.tooltip.lumi.tonemap": "Tooltip test",
|
||||||
"respackopts.field.lumi.pbr": "Enable PBR",
|
"respackopts.field.lumi.pbr": "Enable PBR",
|
||||||
"respackopts.field.lumi.debugMode": "Debug Mode",
|
"respackopts.field.lumi.debugMode": "Debug Mode",
|
||||||
"respackopts.field.lumi.waterVertexWavy": "Wavy water model"
|
"respackopts.field.lumi.waterVertexWavy": "Wavy water model",
|
||||||
|
"respackopts.tooltip.lumi.subcategoryTest.sliderTest": "Yayyy"
|
||||||
}
|
}
|
@ -19,6 +19,7 @@ import net.minecraft.util.Language;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class GuiFactory {
|
public class GuiFactory {
|
||||||
@ -47,6 +48,7 @@ public class GuiFactory {
|
|||||||
config.addEntry(entryBuilder.startBooleanToggle(getText(n, b), currentValue)
|
config.addEntry(entryBuilder.startBooleanToggle(getText(n, b), currentValue)
|
||||||
.setDefaultValue(defaultValue)
|
.setDefaultValue(defaultValue)
|
||||||
.setSaveConsumer(v -> Respackopts.boolVals.get(screenId).put(n, v))
|
.setSaveConsumer(v -> Respackopts.boolVals.get(screenId).put(n, v))
|
||||||
|
.setTooltipSupplier(() -> getTooltip(n, screenId))
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
else if (p.isNumber()) {
|
else if (p.isNumber()) {
|
||||||
@ -59,6 +61,7 @@ public class GuiFactory {
|
|||||||
config.addEntry(entryBuilder.startDoubleField(getText(n, b), currentValue)
|
config.addEntry(entryBuilder.startDoubleField(getText(n, b), currentValue)
|
||||||
.setDefaultValue(defaultValue)
|
.setDefaultValue(defaultValue)
|
||||||
.setSaveConsumer(v -> Respackopts.numVals.get(screenId).put(n, v))
|
.setSaveConsumer(v -> Respackopts.numVals.get(screenId).put(n, v))
|
||||||
|
.setTooltipSupplier(() -> getTooltip(n, screenId))
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
else if (p.isString()) {
|
else if (p.isString()) {
|
||||||
@ -71,6 +74,7 @@ public class GuiFactory {
|
|||||||
config.addEntry(entryBuilder.startStrField(getText(n, b), currentValue)
|
config.addEntry(entryBuilder.startStrField(getText(n, b), currentValue)
|
||||||
.setDefaultValue(defaultValue)
|
.setDefaultValue(defaultValue)
|
||||||
.setSaveConsumer(v -> Respackopts.strVals.get(screenId).put(n, v))
|
.setSaveConsumer(v -> Respackopts.strVals.get(screenId).put(n, v))
|
||||||
|
.setTooltipSupplier(() -> getTooltip(n, screenId))
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -96,7 +100,9 @@ public class GuiFactory {
|
|||||||
Respackopts.numVals.get(screenId).put(n, (double) j);
|
Respackopts.numVals.get(screenId).put(n, (double) j);
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
}).build());
|
})
|
||||||
|
.setTooltipSupplier(() -> getTooltip(n, screenId))
|
||||||
|
.build());
|
||||||
}
|
}
|
||||||
else if (e.isJsonNull()) {
|
else if (e.isJsonNull()) {
|
||||||
Respackopts.logger.error("Config definition contains null, skipping that entry");
|
Respackopts.logger.error("Config definition contains null, skipping that entry");
|
||||||
@ -130,9 +136,8 @@ public class GuiFactory {
|
|||||||
config.addEntry(entryBuilder.startIntSlider(getText(n, b),
|
config.addEntry(entryBuilder.startIntSlider(getText(n, b),
|
||||||
currentValue.intValue(), minV.intValue(), maxV.intValue())
|
currentValue.intValue(), minV.intValue(), maxV.intValue())
|
||||||
.setDefaultValue(defV.intValue())
|
.setDefaultValue(defV.intValue())
|
||||||
.setSaveConsumer(v -> {
|
.setSaveConsumer(v -> Respackopts.numVals.get(screenId).put(n, v.doubleValue()))
|
||||||
Respackopts.numVals.get(screenId).put(n, v.doubleValue());
|
.setTooltipSupplier(() -> getTooltip(n, screenId))
|
||||||
})
|
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -147,6 +152,7 @@ public class GuiFactory {
|
|||||||
//Normal object
|
//Normal object
|
||||||
SubCategoryBuilder sc = entryBuilder.startSubCategory(getText(n, "respackopts.title." + screenId));
|
SubCategoryBuilder sc = entryBuilder.startSubCategory(getText(n, "respackopts.title." + screenId));
|
||||||
buildCategory(data, screenId, new JfConfigCategorySub(sc), entryBuilder, n);
|
buildCategory(data, screenId, new JfConfigCategorySub(sc), entryBuilder, n);
|
||||||
|
sc.setTooltipSupplier(() -> getTooltip(n, screenId));
|
||||||
config.addEntry(sc.build());
|
config.addEntry(sc.build());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -155,6 +161,17 @@ public class GuiFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Optional<Text[]> getTooltip(String key, String screenId) {
|
||||||
|
String k = "respackopts.tooltip." + screenId + "." + key;
|
||||||
|
if (Language.getInstance().hasTranslation(k)) {
|
||||||
|
Text[] res = new Text[1];
|
||||||
|
res[0] = new TranslatableText(k);
|
||||||
|
return Optional.of(res);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return Optional.empty();
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isWhole(double v) {
|
private boolean isWhole(double v) {
|
||||||
return v == Math.floor(v) && !Double.isInfinite(v);
|
return v == Math.floor(v) && !Double.isInfinite(v);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user