Makes both the Cloth and the ModMenu APIs optional.
We want users to be able to use this with as few dependencies as possible.
This commit is contained in:
@@ -3,9 +3,6 @@ package markil3.immersive_hud;
|
|||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
|
||||||
import me.shedaniel.autoconfig.AutoConfig;
|
import me.shedaniel.autoconfig.AutoConfig;
|
||||||
import me.shedaniel.autoconfig.ConfigData;
|
|
||||||
import me.shedaniel.autoconfig.annotation.Config;
|
|
||||||
import me.shedaniel.autoconfig.annotation.ConfigEntry;
|
|
||||||
|
|
||||||
import static markil3.immersive_hud.Main.TICKS_PER_SECOND;
|
import static markil3.immersive_hud.Main.TICKS_PER_SECOND;
|
||||||
|
|
||||||
@@ -15,13 +12,11 @@ import static markil3.immersive_hud.Main.TICKS_PER_SECOND;
|
|||||||
* <p>
|
* <p>
|
||||||
* The methods that change this mod's configuration do not automatically write
|
* The methods that change this mod's configuration do not automatically write
|
||||||
* those changes to the configuration file on disk. Instead, they only update
|
* those changes to the configuration file on disk. Instead, they only update
|
||||||
* the configuration in memory. To write any changes, use the {@link #save()}
|
* the configuration in memory.
|
||||||
* method.
|
|
||||||
*
|
*
|
||||||
* @author Markil 3
|
* @author Markil 3
|
||||||
*/
|
*/
|
||||||
@Config(name = "immersive_hud")
|
public class ConfigManager
|
||||||
public class ConfigManager implements ConfigData
|
|
||||||
{
|
{
|
||||||
public static class TimeValues
|
public static class TimeValues
|
||||||
{
|
{
|
||||||
@@ -90,7 +85,6 @@ public class ConfigManager implements ConfigData
|
|||||||
private int handTime = 30 * TICKS_PER_SECOND;
|
private int handTime = 30 * TICKS_PER_SECOND;
|
||||||
private boolean showArmor = true;
|
private boolean showArmor = true;
|
||||||
private double minHealth = 0.5;
|
private double minHealth = 0.5;
|
||||||
@ConfigEntry.BoundedDiscrete(max = 20)
|
|
||||||
private int minHunger = 17;
|
private int minHunger = 17;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -100,7 +94,22 @@ public class ConfigManager implements ConfigData
|
|||||||
*/
|
*/
|
||||||
public static ConfigManager getInstance()
|
public static ConfigManager getInstance()
|
||||||
{
|
{
|
||||||
return AutoConfig.getConfigHolder(ConfigManager.class).getConfig();
|
try
|
||||||
|
{
|
||||||
|
if (Class.forName("me.shedaniel.autoconfig.AutoConfig") != null)
|
||||||
|
{
|
||||||
|
return AutoConfig.getConfigHolder(ConfigManagerCloth.class)
|
||||||
|
.getConfig();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new ClassNotFoundException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (ClassNotFoundException e)
|
||||||
|
{
|
||||||
|
return new ConfigManager();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validations
|
// Validations
|
||||||
@@ -268,12 +277,6 @@ public class ConfigManager implements ConfigData
|
|||||||
{
|
{
|
||||||
this.minHunger = MathHelper.clamp(boundary, 0, 20);
|
this.minHunger = MathHelper.clamp(boundary, 0, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void validatePostLoad() throws ValidationException
|
|
||||||
{
|
|
||||||
this.setMinHealth(this.minHealth);
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* Saves changes to this mod's configuration.
|
* Saves changes to this mod's configuration.
|
||||||
*/
|
*/
|
||||||
|
|||||||
14
src/main/java/markil3/immersive_hud/ConfigManagerCloth.java
Normal file
14
src/main/java/markil3/immersive_hud/ConfigManagerCloth.java
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
package markil3.immersive_hud;
|
||||||
|
|
||||||
|
import me.shedaniel.autoconfig.ConfigData;
|
||||||
|
import me.shedaniel.autoconfig.annotation.Config;
|
||||||
|
|
||||||
|
@Config(name = "immersive_hud")
|
||||||
|
public class ConfigManagerCloth extends ConfigManager implements ConfigData
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void validatePostLoad() throws ValidationException
|
||||||
|
{
|
||||||
|
this.setMinHealth(this.getMinHealth());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,18 +17,10 @@
|
|||||||
*/
|
*/
|
||||||
package markil3.immersive_hud;
|
package markil3.immersive_hud;
|
||||||
|
|
||||||
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
|
||||||
import com.terraformersmc.modmenu.api.ModMenuApi;
|
|
||||||
|
|
||||||
import net.fabricmc.api.ModInitializer;
|
import net.fabricmc.api.ModInitializer;
|
||||||
import net.minecraft.text.TranslatableText;
|
|
||||||
|
|
||||||
import me.shedaniel.autoconfig.AutoConfig;
|
import me.shedaniel.autoconfig.AutoConfig;
|
||||||
import me.shedaniel.autoconfig.serializer.Toml4jConfigSerializer;
|
import me.shedaniel.autoconfig.serializer.Toml4jConfigSerializer;
|
||||||
import me.shedaniel.clothconfig2.api.ConfigBuilder;
|
|
||||||
import me.shedaniel.clothconfig2.api.ConfigCategory;
|
|
||||||
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
|
|
||||||
import me.shedaniel.clothconfig2.gui.entries.DoubleListEntry;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The main entry point for the Immersive HUD mod.
|
* The main entry point for the Immersive HUD mod.
|
||||||
@@ -36,158 +28,25 @@ import me.shedaniel.clothconfig2.gui.entries.DoubleListEntry;
|
|||||||
* @author Markil 3
|
* @author Markil 3
|
||||||
* @version 0.1-1.16.4-fabric
|
* @version 0.1-1.16.4-fabric
|
||||||
*/
|
*/
|
||||||
public class Main implements ModInitializer, ModMenuApi
|
public class Main implements ModInitializer
|
||||||
{
|
{
|
||||||
public static final int TICKS_PER_SECOND = 20;
|
public static final int TICKS_PER_SECOND = 20;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInitialize()
|
public void onInitialize()
|
||||||
{
|
{
|
||||||
AutoConfig.register(ConfigManager.class, Toml4jConfigSerializer::new);
|
try
|
||||||
}
|
{
|
||||||
|
if (Class.forName("me.shedaniel.autoconfig.AutoConfig") != null)
|
||||||
private void startTimeField(String name, ConfigEntryBuilder entryBuilder,
|
{
|
||||||
ConfigCategory cat,
|
AutoConfig.register(ConfigManagerCloth.class,
|
||||||
ConfigManager.TimeValues value)
|
Toml4jConfigSerializer::new);
|
||||||
{
|
}
|
||||||
final float SHOW_TIME = 6;
|
}
|
||||||
final float FADE_IN = 0.25F;
|
catch (ClassNotFoundException e)
|
||||||
final float FADE_OUT = 0.5F;
|
{
|
||||||
|
// Do nothing
|
||||||
DoubleListEntry maxTime =
|
}
|
||||||
entryBuilder.startDoubleField(new TranslatableText(
|
|
||||||
"option.immersive_hud." + name +
|
|
||||||
"MaxTime"),
|
|
||||||
(float) value.getMaxTime() / TICKS_PER_SECOND)
|
|
||||||
.setDefaultValue(SHOW_TIME)
|
|
||||||
.setMin(0)
|
|
||||||
.setMax(10 * 60 * TICKS_PER_SECOND) // 10 Minutes
|
|
||||||
.setTooltip(new TranslatableText(
|
|
||||||
"tooltip.immersive_hud." + name +
|
|
||||||
"MaxTime"))
|
|
||||||
.setSaveConsumer(val -> value.setMaxTime((int) (val * TICKS_PER_SECOND)))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
DoubleListEntry fadeIn =
|
|
||||||
entryBuilder.startDoubleField(new TranslatableText(
|
|
||||||
"option.immersive_hud." + name +
|
|
||||||
"FadeIn"),
|
|
||||||
(float) value.getFadeInTime() / TICKS_PER_SECOND)
|
|
||||||
.setDefaultValue(FADE_IN)
|
|
||||||
.setMin(0)
|
|
||||||
.setMax(10 * 60 * TICKS_PER_SECOND)
|
|
||||||
.setTooltip(new TranslatableText(
|
|
||||||
"tooltip.immersive_hud." + name +
|
|
||||||
"FadeIn"))
|
|
||||||
.setSaveConsumer(val -> value.setFadeInTime((int) (val * TICKS_PER_SECOND)))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
DoubleListEntry fadeOut =
|
|
||||||
entryBuilder.startDoubleField(new TranslatableText(
|
|
||||||
"option.immersive_hud." + name +
|
|
||||||
"FadeOut"),
|
|
||||||
(float) value.getFadeOutTime() / TICKS_PER_SECOND)
|
|
||||||
.setDefaultValue(FADE_OUT)
|
|
||||||
.setMin(0)
|
|
||||||
.setMax(10 * 60 * TICKS_PER_SECOND)
|
|
||||||
.setTooltip(new TranslatableText(
|
|
||||||
"tooltip.immersive_hud." + name +
|
|
||||||
"FadeOut"))
|
|
||||||
.setSaveConsumer(val -> value.setFadeOutTime((int) (val * TICKS_PER_SECOND)))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
cat.addEntry(maxTime);
|
|
||||||
cat.addEntry(fadeIn);
|
|
||||||
cat.addEntry(fadeOut);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ConfigScreenFactory<?> getModConfigScreenFactory()
|
|
||||||
{
|
|
||||||
return screen -> {
|
|
||||||
ConfigCategory general;
|
|
||||||
ConfigEntryBuilder entryBuilder;
|
|
||||||
ConfigManager instance = ConfigManager.getInstance();
|
|
||||||
final ConfigBuilder builder = ConfigBuilder.create()
|
|
||||||
.setParentScreen(screen)
|
|
||||||
.setTitle(new TranslatableText(
|
|
||||||
"immersive_hud.configGui.title"))
|
|
||||||
.setSavingRunnable(() -> {
|
|
||||||
AutoConfig.getConfigHolder(ConfigManager.class).save();
|
|
||||||
});
|
|
||||||
general =
|
|
||||||
builder.getOrCreateCategory(new TranslatableText(
|
|
||||||
"category.immersive_hud.general"));
|
|
||||||
entryBuilder = builder.entryBuilder();
|
|
||||||
|
|
||||||
startTimeField("hotbar", entryBuilder,
|
|
||||||
general,
|
|
||||||
instance.getHotbarTime());
|
|
||||||
startTimeField("experience", entryBuilder,
|
|
||||||
general,
|
|
||||||
instance.getExperienceTime());
|
|
||||||
startTimeField("jump", entryBuilder,
|
|
||||||
general,
|
|
||||||
instance.getJumpTime());
|
|
||||||
startTimeField("jump", entryBuilder,
|
|
||||||
general,
|
|
||||||
instance.getHealthTime());
|
|
||||||
startTimeField("hunger", entryBuilder,
|
|
||||||
general,
|
|
||||||
instance.getHungerTime());
|
|
||||||
startTimeField("effect", entryBuilder,
|
|
||||||
general,
|
|
||||||
instance.getPotionTime());
|
|
||||||
|
|
||||||
general.addEntry(entryBuilder.startDoubleField(new TranslatableText(
|
|
||||||
"option.immersive_hud" +
|
|
||||||
".crosshairTime"),
|
|
||||||
(float) instance.getCrosshairTime() / TICKS_PER_SECOND)
|
|
||||||
.setDefaultValue(6)
|
|
||||||
.setTooltip(new TranslatableText(
|
|
||||||
"tooltip.immersive_hud" +
|
|
||||||
".crosshairTime"))
|
|
||||||
.setSaveConsumer(val -> instance.setCrosshairTime((int) (val * TICKS_PER_SECOND)))
|
|
||||||
.build());
|
|
||||||
|
|
||||||
general.addEntry(entryBuilder.startDoubleField(new TranslatableText(
|
|
||||||
"option.immersive_hud.handTime"),
|
|
||||||
(float) instance.getHandTime() / TICKS_PER_SECOND)
|
|
||||||
.setDefaultValue(30)
|
|
||||||
.setTooltip(new TranslatableText(
|
|
||||||
"tooltip.immersive_hud.handTime"))
|
|
||||||
.setSaveConsumer(val -> instance.setHandTime((int) (val * TICKS_PER_SECOND)))
|
|
||||||
.build());
|
|
||||||
|
|
||||||
general.addEntry(entryBuilder.startDoubleField(new TranslatableText(
|
|
||||||
"option.immersive_hud.minHealth"),
|
|
||||||
instance.getMinHealth())
|
|
||||||
.setDefaultValue(0.5)
|
|
||||||
.setTooltip(new TranslatableText(
|
|
||||||
"tooltip.immersive_hud.minHealth"))
|
|
||||||
.setSaveConsumer(val -> instance.setMinHealth(val))
|
|
||||||
.build());
|
|
||||||
|
|
||||||
general.addEntry(entryBuilder.startIntField(new TranslatableText(
|
|
||||||
"option.immersive_hud.minHunger"),
|
|
||||||
instance.getMinHunger())
|
|
||||||
.setDefaultValue(17)
|
|
||||||
.setTooltip(new TranslatableText(
|
|
||||||
"tooltip.immersive_hud.minHunger"))
|
|
||||||
.setSaveConsumer(val -> instance.setMinHunger(val))
|
|
||||||
.build());
|
|
||||||
|
|
||||||
general.addEntry(entryBuilder.startBooleanToggle(new TranslatableText(
|
|
||||||
"option.immersive_hud.showArmor"),
|
|
||||||
instance.shouldShowArmor())
|
|
||||||
.setDefaultValue(true)
|
|
||||||
.setTooltip(new TranslatableText(
|
|
||||||
"tooltip.immersive_hud.showArmor"))
|
|
||||||
.setSaveConsumer(val -> instance.shouldShowArmor(val))
|
|
||||||
.build());
|
|
||||||
|
|
||||||
return builder.build();
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -201,7 +60,10 @@ public class Main implements ModInitializer, ModMenuApi
|
|||||||
*
|
*
|
||||||
* @since 0.1-1.16.4-fabric
|
* @since 0.1-1.16.4-fabric
|
||||||
*/
|
*/
|
||||||
static float getAlpha(double renderTime, double maxTime, double fadeInTime, double fadeOutTime)
|
static float getAlpha(double renderTime,
|
||||||
|
double maxTime,
|
||||||
|
double fadeInTime,
|
||||||
|
double fadeOutTime)
|
||||||
{
|
{
|
||||||
if (renderTime <= fadeOutTime)
|
if (renderTime <= fadeOutTime)
|
||||||
{
|
{
|
||||||
|
|||||||
173
src/main/java/markil3/immersive_hud/ModMenu.java
Normal file
173
src/main/java/markil3/immersive_hud/ModMenu.java
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
package markil3.immersive_hud;
|
||||||
|
|
||||||
|
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
|
||||||
|
import com.terraformersmc.modmenu.api.ModMenuApi;
|
||||||
|
|
||||||
|
import net.minecraft.text.TranslatableText;
|
||||||
|
|
||||||
|
import me.shedaniel.autoconfig.AutoConfig;
|
||||||
|
import me.shedaniel.clothconfig2.api.ConfigBuilder;
|
||||||
|
import me.shedaniel.clothconfig2.api.ConfigCategory;
|
||||||
|
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
|
||||||
|
import me.shedaniel.clothconfig2.gui.entries.DoubleListEntry;
|
||||||
|
|
||||||
|
import static markil3.immersive_hud.Main.TICKS_PER_SECOND;
|
||||||
|
|
||||||
|
public class ModMenu implements ModMenuApi
|
||||||
|
{
|
||||||
|
|
||||||
|
private void startTimeField(String name, ConfigEntryBuilder entryBuilder,
|
||||||
|
ConfigCategory cat,
|
||||||
|
ConfigManager.TimeValues value)
|
||||||
|
{
|
||||||
|
final float SHOW_TIME = 6;
|
||||||
|
final float FADE_IN = 0.25F;
|
||||||
|
final float FADE_OUT = 0.5F;
|
||||||
|
|
||||||
|
DoubleListEntry maxTime =
|
||||||
|
entryBuilder.startDoubleField(new TranslatableText(
|
||||||
|
"option.immersive_hud." + name +
|
||||||
|
"MaxTime"),
|
||||||
|
(float) value.getMaxTime() / TICKS_PER_SECOND)
|
||||||
|
.setDefaultValue(SHOW_TIME)
|
||||||
|
.setMin(0)
|
||||||
|
.setMax(10 * 60 * TICKS_PER_SECOND) // 10 Minutes
|
||||||
|
.setTooltip(new TranslatableText(
|
||||||
|
"tooltip.immersive_hud." + name +
|
||||||
|
"MaxTime"))
|
||||||
|
.setSaveConsumer(val -> value.setMaxTime((int) (val * TICKS_PER_SECOND)))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
DoubleListEntry fadeIn =
|
||||||
|
entryBuilder.startDoubleField(new TranslatableText(
|
||||||
|
"option.immersive_hud." + name +
|
||||||
|
"FadeIn"),
|
||||||
|
(float) value.getFadeInTime() / TICKS_PER_SECOND)
|
||||||
|
.setDefaultValue(FADE_IN)
|
||||||
|
.setMin(0)
|
||||||
|
.setMax(10 * 60 * TICKS_PER_SECOND)
|
||||||
|
.setTooltip(new TranslatableText(
|
||||||
|
"tooltip.immersive_hud." + name +
|
||||||
|
"FadeIn"))
|
||||||
|
.setSaveConsumer(val -> value.setFadeInTime((int) (val * TICKS_PER_SECOND)))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
DoubleListEntry fadeOut =
|
||||||
|
entryBuilder.startDoubleField(new TranslatableText(
|
||||||
|
"option.immersive_hud." + name +
|
||||||
|
"FadeOut"),
|
||||||
|
(float) value.getFadeOutTime() / TICKS_PER_SECOND)
|
||||||
|
.setDefaultValue(FADE_OUT)
|
||||||
|
.setMin(0)
|
||||||
|
.setMax(10 * 60 * TICKS_PER_SECOND)
|
||||||
|
.setTooltip(new TranslatableText(
|
||||||
|
"tooltip.immersive_hud." + name +
|
||||||
|
"FadeOut"))
|
||||||
|
.setSaveConsumer(val -> value.setFadeOutTime((int) (val * TICKS_PER_SECOND)))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
cat.addEntry(maxTime);
|
||||||
|
cat.addEntry(fadeIn);
|
||||||
|
cat.addEntry(fadeOut);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ConfigScreenFactory<?> getModConfigScreenFactory()
|
||||||
|
{
|
||||||
|
return screen -> {
|
||||||
|
ConfigCategory general;
|
||||||
|
ConfigEntryBuilder entryBuilder;
|
||||||
|
ConfigManager instance = ConfigManager.getInstance();
|
||||||
|
final ConfigBuilder builder = ConfigBuilder.create()
|
||||||
|
.setParentScreen(screen)
|
||||||
|
.setTitle(new TranslatableText(
|
||||||
|
"immersive_hud.configGui.title"))
|
||||||
|
.setSavingRunnable(() -> {
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (Class.forName("me.shedaniel.autoconfig.AutoConfig") != null)
|
||||||
|
{
|
||||||
|
AutoConfig.getConfigHolder(ConfigManagerCloth.class)
|
||||||
|
.save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (ClassNotFoundException e)
|
||||||
|
{
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
});
|
||||||
|
general =
|
||||||
|
builder.getOrCreateCategory(new TranslatableText(
|
||||||
|
"category.immersive_hud.general"));
|
||||||
|
entryBuilder = builder.entryBuilder();
|
||||||
|
|
||||||
|
startTimeField("hotbar", entryBuilder,
|
||||||
|
general,
|
||||||
|
instance.getHotbarTime());
|
||||||
|
startTimeField("experience", entryBuilder,
|
||||||
|
general,
|
||||||
|
instance.getExperienceTime());
|
||||||
|
startTimeField("jump", entryBuilder,
|
||||||
|
general,
|
||||||
|
instance.getJumpTime());
|
||||||
|
startTimeField("jump", entryBuilder,
|
||||||
|
general,
|
||||||
|
instance.getHealthTime());
|
||||||
|
startTimeField("hunger", entryBuilder,
|
||||||
|
general,
|
||||||
|
instance.getHungerTime());
|
||||||
|
startTimeField("effect", entryBuilder,
|
||||||
|
general,
|
||||||
|
instance.getPotionTime());
|
||||||
|
|
||||||
|
general.addEntry(entryBuilder.startDoubleField(new TranslatableText(
|
||||||
|
"option.immersive_hud" +
|
||||||
|
".crosshairTime"),
|
||||||
|
(float) instance.getCrosshairTime() / TICKS_PER_SECOND)
|
||||||
|
.setDefaultValue(6)
|
||||||
|
.setTooltip(new TranslatableText(
|
||||||
|
"tooltip.immersive_hud" +
|
||||||
|
".crosshairTime"))
|
||||||
|
.setSaveConsumer(val -> instance.setCrosshairTime((int) (val * TICKS_PER_SECOND)))
|
||||||
|
.build());
|
||||||
|
|
||||||
|
general.addEntry(entryBuilder.startDoubleField(new TranslatableText(
|
||||||
|
"option.immersive_hud.handTime"),
|
||||||
|
(float) instance.getHandTime() / TICKS_PER_SECOND)
|
||||||
|
.setDefaultValue(30)
|
||||||
|
.setTooltip(new TranslatableText(
|
||||||
|
"tooltip.immersive_hud.handTime"))
|
||||||
|
.setSaveConsumer(val -> instance.setHandTime((int) (val * TICKS_PER_SECOND)))
|
||||||
|
.build());
|
||||||
|
|
||||||
|
general.addEntry(entryBuilder.startDoubleField(new TranslatableText(
|
||||||
|
"option.immersive_hud.minHealth"),
|
||||||
|
instance.getMinHealth())
|
||||||
|
.setDefaultValue(0.5)
|
||||||
|
.setTooltip(new TranslatableText(
|
||||||
|
"tooltip.immersive_hud.minHealth"))
|
||||||
|
.setSaveConsumer(val -> instance.setMinHealth(val))
|
||||||
|
.build());
|
||||||
|
|
||||||
|
general.addEntry(entryBuilder.startIntField(new TranslatableText(
|
||||||
|
"option.immersive_hud.minHunger"),
|
||||||
|
instance.getMinHunger())
|
||||||
|
.setDefaultValue(17)
|
||||||
|
.setTooltip(new TranslatableText(
|
||||||
|
"tooltip.immersive_hud.minHunger"))
|
||||||
|
.setSaveConsumer(val -> instance.setMinHunger(val))
|
||||||
|
.build());
|
||||||
|
|
||||||
|
general.addEntry(entryBuilder.startBooleanToggle(new TranslatableText(
|
||||||
|
"option.immersive_hud.showArmor"),
|
||||||
|
instance.shouldShowArmor())
|
||||||
|
.setDefaultValue(true)
|
||||||
|
.setTooltip(new TranslatableText(
|
||||||
|
"tooltip.immersive_hud.showArmor"))
|
||||||
|
.setSaveConsumer(val -> instance.shouldShowArmor(val))
|
||||||
|
.build());
|
||||||
|
|
||||||
|
return builder.build();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
"markil3.immersive_hud.Main"
|
"markil3.immersive_hud.Main"
|
||||||
],
|
],
|
||||||
"modmenu": [
|
"modmenu": [
|
||||||
"markil3.immersive_hud.Main"
|
"markil3.immersive_hud.ModMenu"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"mixins": [
|
"mixins": [
|
||||||
@@ -35,5 +35,9 @@
|
|||||||
"depends": {
|
"depends": {
|
||||||
"fabricloader": ">=0.7.4",
|
"fabricloader": ">=0.7.4",
|
||||||
"minecraft": "1.16.x"
|
"minecraft": "1.16.x"
|
||||||
|
},
|
||||||
|
"suggests": {
|
||||||
|
"modmenu": "*",
|
||||||
|
"cloth-config2": "*"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user