mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2025-02-13 16:24:23 +01:00
Added an option to control whether the Horse Button is visible or not
This commit is contained in:
parent
c871bcb3c0
commit
ec34f58d3d
5 changed files with 51 additions and 24 deletions
|
@ -5,6 +5,7 @@ import com.minelittlepony.client.hdskins.IndirectHDSkins;
|
||||||
import com.minelittlepony.client.pony.PonyManager;
|
import com.minelittlepony.client.pony.PonyManager;
|
||||||
import com.minelittlepony.client.render.tileentities.skull.PonySkullRenderer;
|
import com.minelittlepony.client.render.tileentities.skull.PonySkullRenderer;
|
||||||
import com.minelittlepony.client.settings.ClientPonyConfig;
|
import com.minelittlepony.client.settings.ClientPonyConfig;
|
||||||
|
import com.minelittlepony.common.client.gui.VisibilityMode;
|
||||||
import com.minelittlepony.common.client.gui.element.Button;
|
import com.minelittlepony.common.client.gui.element.Button;
|
||||||
import com.minelittlepony.common.client.gui.sprite.TextureSprite;
|
import com.minelittlepony.common.client.gui.sprite.TextureSprite;
|
||||||
import com.minelittlepony.common.event.ClientReadyCallback;
|
import com.minelittlepony.common.event.ClientReadyCallback;
|
||||||
|
@ -52,11 +53,14 @@ public class MineLittlePony implements ClientModInitializer {
|
||||||
|
|
||||||
private final PonyRenderManager renderManager = PonyRenderManager.getInstance();
|
private final PonyRenderManager renderManager = PonyRenderManager.getInstance();
|
||||||
|
|
||||||
private PonyConfig config;
|
private ClientPonyConfig config;
|
||||||
private PonyManager ponyManager;
|
private PonyManager ponyManager;
|
||||||
|
|
||||||
private FabricKeyBinding keyBinding;
|
private FabricKeyBinding keyBinding;
|
||||||
|
|
||||||
|
private boolean hasHdSkins;
|
||||||
|
private boolean hasModMenu;
|
||||||
|
|
||||||
public MineLittlePony() {
|
public MineLittlePony() {
|
||||||
instance = this;
|
instance = this;
|
||||||
}
|
}
|
||||||
|
@ -70,6 +74,9 @@ public class MineLittlePony implements ClientModInitializer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeClient() {
|
public void onInitializeClient() {
|
||||||
|
hasHdSkins = FabricLoader.getInstance().isModLoaded("hdskins");
|
||||||
|
hasModMenu = FabricLoader.getInstance().isModLoaded("modmenu");
|
||||||
|
|
||||||
config = JsonConfig.of(GamePaths.getConfigDirectory().resolve("minelp.json"), ClientPonyConfig::new);
|
config = JsonConfig.of(GamePaths.getConfigDirectory().resolve("minelp.json"), ClientPonyConfig::new);
|
||||||
ponyManager = new PonyManager(config);
|
ponyManager = new PonyManager(config);
|
||||||
keyBinding = FabricKeyBinding.Builder.create(new Identifier("minelittlepony", "settings"), InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_F9, "key.categories.misc").build();
|
keyBinding = FabricKeyBinding.Builder.create(new Identifier("minelittlepony", "settings"), InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_F9, "key.categories.misc").build();
|
||||||
|
@ -134,8 +141,13 @@ public class MineLittlePony implements ClientModInitializer {
|
||||||
|
|
||||||
private void onScreenInit(Screen screen, ScreenInitCallback.ButtonList buttons) {
|
private void onScreenInit(Screen screen, ScreenInitCallback.ButtonList buttons) {
|
||||||
if (screen instanceof TitleScreen) {
|
if (screen instanceof TitleScreen) {
|
||||||
int y = FabricLoader.getInstance().isModLoaded("hdskins") ? 80 : 50;
|
VisibilityMode mode = config.getHorseButtonMode();
|
||||||
|
boolean show = mode == VisibilityMode.ON || (mode == VisibilityMode.AUTO
|
||||||
|
&& !(hasHdSkins || hasModMenu
|
||||||
|
));
|
||||||
|
|
||||||
|
if (show) {
|
||||||
|
int y = hasHdSkins ? 80 : 50;
|
||||||
buttons.add(new Button(screen.width - 50, screen.height - y, 20, 20).onClick(sender -> {
|
buttons.add(new Button(screen.width - 50, screen.height - y, 20, 20).onClick(sender -> {
|
||||||
MinecraftClient.getInstance().openScreen(new GuiPonySettings());
|
MinecraftClient.getInstance().openScreen(new GuiPonySettings());
|
||||||
}).setStyle(new com.minelittlepony.common.client.gui.style.Style()
|
}).setStyle(new com.minelittlepony.common.client.gui.style.Style()
|
||||||
|
@ -147,6 +159,7 @@ public class MineLittlePony implements ClientModInitializer {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the global MineLP client configuration.
|
* Gets the global MineLP client configuration.
|
||||||
|
|
|
@ -6,14 +6,14 @@ import net.minecraft.text.LiteralText;
|
||||||
|
|
||||||
import com.minelittlepony.client.MineLittlePony;
|
import com.minelittlepony.client.MineLittlePony;
|
||||||
import com.minelittlepony.client.render.entities.MobRenderers;
|
import com.minelittlepony.client.render.entities.MobRenderers;
|
||||||
|
import com.minelittlepony.client.settings.ClientPonyConfig;
|
||||||
import com.minelittlepony.common.client.gui.GameGui;
|
import com.minelittlepony.common.client.gui.GameGui;
|
||||||
import com.minelittlepony.common.client.gui.ScrollContainer;
|
import com.minelittlepony.common.client.gui.ScrollContainer;
|
||||||
import com.minelittlepony.common.client.gui.element.Button;
|
import com.minelittlepony.common.client.gui.element.Button;
|
||||||
|
import com.minelittlepony.common.client.gui.element.EnumSlider;
|
||||||
import com.minelittlepony.common.client.gui.element.Label;
|
import com.minelittlepony.common.client.gui.element.Label;
|
||||||
import com.minelittlepony.common.client.gui.element.Slider;
|
import com.minelittlepony.common.client.gui.element.Slider;
|
||||||
import com.minelittlepony.common.client.gui.element.Toggle;
|
import com.minelittlepony.common.client.gui.element.Toggle;
|
||||||
import com.minelittlepony.pony.meta.Size;
|
|
||||||
import com.minelittlepony.settings.PonyConfig;
|
|
||||||
import com.minelittlepony.settings.PonyLevel;
|
import com.minelittlepony.settings.PonyLevel;
|
||||||
import com.minelittlepony.settings.PonySettings;
|
import com.minelittlepony.settings.PonySettings;
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ public class GuiPonySettings extends GameGui {
|
||||||
|
|
||||||
private static final String MOB_PREFIX = "minelp.mobs.";
|
private static final String MOB_PREFIX = "minelp.mobs.";
|
||||||
|
|
||||||
private PonyConfig config;
|
private ClientPonyConfig config;
|
||||||
|
|
||||||
private final ScrollContainer content = new ScrollContainer();
|
private final ScrollContainer content = new ScrollContainer();
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ public class GuiPonySettings extends GameGui {
|
||||||
public GuiPonySettings() {
|
public GuiPonySettings() {
|
||||||
super(new LiteralText(OPTIONS_PREFIX + "title"));
|
super(new LiteralText(OPTIONS_PREFIX + "title"));
|
||||||
|
|
||||||
config = MineLittlePony.getInstance().getConfig();
|
config = (ClientPonyConfig)MineLittlePony.getInstance().getConfig();
|
||||||
|
|
||||||
content.margin.top = 30;
|
content.margin.top = 30;
|
||||||
content.margin.bottom = 30;
|
content.margin.bottom = 30;
|
||||||
|
@ -90,9 +90,8 @@ public class GuiPonySettings extends GameGui {
|
||||||
.onChange(config::setGlobalScaleFactor)
|
.onChange(config::setGlobalScaleFactor)
|
||||||
.setFormatter(value -> I18n.translate("minelp.debug.scale.value", I18n.translate(describeCurrentScale(value)))));
|
.setFormatter(value -> I18n.translate("minelp.debug.scale.value", I18n.translate(describeCurrentScale(value)))));
|
||||||
content.addButton(new Label(LEFT, row += 30)).getStyle().setText("minelp.debug.size");
|
content.addButton(new Label(LEFT, row += 30)).getStyle().setText("minelp.debug.size");
|
||||||
content.addButton(new Slider(LEFT, row += 15, 0, Size.REGISTRY.length - 1, config.getOverrideSize().ordinal())
|
content.addButton(new EnumSlider<>(LEFT, row += 15, config.getOverrideSize())
|
||||||
.onChange(config::setSizeOverride)
|
.onChange(config::setSizeOverride));
|
||||||
.setFormatter(value -> value < Size.REGISTRY.length ? Size.REGISTRY[(int)(float)value].name() : "Unset"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
row += 20;
|
row += 20;
|
||||||
|
@ -103,6 +102,11 @@ public class GuiPonySettings extends GameGui {
|
||||||
.getStyle().setText(OPTIONS_PREFIX + i.name().toLowerCase());
|
.getStyle().setText(OPTIONS_PREFIX + i.name().toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
content.addButton(new Label(LEFT, row += 20)).getStyle().setText(OPTIONS_PREFIX + "button");
|
||||||
|
|
||||||
|
content.addButton(new EnumSlider<>(LEFT, row += 20, config.getHorseButtonMode())
|
||||||
|
.onChange(config::setHorseButtonMode));
|
||||||
|
|
||||||
if (RIGHT != LEFT) {
|
if (RIGHT != LEFT) {
|
||||||
row = 0;
|
row = 0;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -4,10 +4,13 @@ import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
|
||||||
import com.minelittlepony.client.render.entities.MobRenderers;
|
import com.minelittlepony.client.render.entities.MobRenderers;
|
||||||
|
import com.minelittlepony.common.client.gui.VisibilityMode;
|
||||||
import com.minelittlepony.settings.PonyConfig;
|
import com.minelittlepony.settings.PonyConfig;
|
||||||
|
|
||||||
public class ClientPonyConfig extends PonyConfig {
|
public class ClientPonyConfig extends PonyConfig {
|
||||||
|
|
||||||
|
private final Setting<VisibilityMode> buttonMode = new Value<>("horseButton", VisibilityMode.AUTO);
|
||||||
|
|
||||||
public ClientPonyConfig() {
|
public ClientPonyConfig() {
|
||||||
initWith(MobRenderers.values());
|
initWith(MobRenderers.values());
|
||||||
}
|
}
|
||||||
|
@ -20,4 +23,13 @@ public class ClientPonyConfig extends PonyConfig {
|
||||||
player.calculateDimensions();
|
player.calculateDimensions();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public VisibilityMode getHorseButtonMode() {
|
||||||
|
return buttonMode.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public VisibilityMode setHorseButtonMode(VisibilityMode value) {
|
||||||
|
buttonMode.set(value);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,11 +62,8 @@ public class PonyConfig extends JsonConfig {
|
||||||
return sizeOverride.get();
|
return sizeOverride.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
public float setSizeOverride(float value) {
|
public Size setSizeOverride(Size value) {
|
||||||
value = Math.round(value);
|
sizeOverride.set(value);
|
||||||
Size size = Size.REGISTRY[(int) value % Size.REGISTRY.length];
|
return value;
|
||||||
|
|
||||||
sizeOverride.set(size);
|
|
||||||
return size.ordinal();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
"minelp.options.fpsmagic": "Ponies use magic in first-person",
|
"minelp.options.fpsmagic": "Ponies use magic in first-person",
|
||||||
"minelp.options.ponyskulls": "Render mob heads as ponies",
|
"minelp.options.ponyskulls": "Render mob heads as ponies",
|
||||||
"minelp.options.frustrum": "Enable Frustum checks",
|
"minelp.options.frustrum": "Enable Frustum checks",
|
||||||
|
"minelp.options.button": "Display On Title Screen",
|
||||||
"minelp.mobs.title": "Mob Settings",
|
"minelp.mobs.title": "Mob Settings",
|
||||||
"minelp.mobs.villagers": "Ponify villagers",
|
"minelp.mobs.villagers": "Ponify villagers",
|
||||||
"minelp.mobs.zombies": "Ponify zombies",
|
"minelp.mobs.zombies": "Ponify zombies",
|
||||||
|
|
Loading…
Reference in a new issue