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.render.tileentities.skull.PonySkullRenderer;
|
||||
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.sprite.TextureSprite;
|
||||
import com.minelittlepony.common.event.ClientReadyCallback;
|
||||
|
@ -52,11 +53,14 @@ public class MineLittlePony implements ClientModInitializer {
|
|||
|
||||
private final PonyRenderManager renderManager = PonyRenderManager.getInstance();
|
||||
|
||||
private PonyConfig config;
|
||||
private ClientPonyConfig config;
|
||||
private PonyManager ponyManager;
|
||||
|
||||
private FabricKeyBinding keyBinding;
|
||||
|
||||
private boolean hasHdSkins;
|
||||
private boolean hasModMenu;
|
||||
|
||||
public MineLittlePony() {
|
||||
instance = this;
|
||||
}
|
||||
|
@ -70,6 +74,9 @@ public class MineLittlePony implements ClientModInitializer {
|
|||
|
||||
@Override
|
||||
public void onInitializeClient() {
|
||||
hasHdSkins = FabricLoader.getInstance().isModLoaded("hdskins");
|
||||
hasModMenu = FabricLoader.getInstance().isModLoaded("modmenu");
|
||||
|
||||
config = JsonConfig.of(GamePaths.getConfigDirectory().resolve("minelp.json"), ClientPonyConfig::new);
|
||||
ponyManager = new PonyManager(config);
|
||||
keyBinding = FabricKeyBinding.Builder.create(new Identifier("minelittlepony", "settings"), InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_F9, "key.categories.misc").build();
|
||||
|
@ -134,17 +141,23 @@ public class MineLittlePony implements ClientModInitializer {
|
|||
|
||||
private void onScreenInit(Screen screen, ScreenInitCallback.ButtonList buttons) {
|
||||
if (screen instanceof TitleScreen) {
|
||||
int y = FabricLoader.getInstance().isModLoaded("hdskins") ? 80 : 50;
|
||||
|
||||
buttons.add(new Button(screen.width - 50, screen.height - y, 20, 20).onClick(sender -> {
|
||||
MinecraftClient.getInstance().openScreen(new GuiPonySettings());
|
||||
}).setStyle(new com.minelittlepony.common.client.gui.style.Style()
|
||||
.setIcon(new TextureSprite()
|
||||
.setPosition(2, 2)
|
||||
.setTexture(new Identifier("minelittlepony", "textures/gui/pony.png"))
|
||||
.setTextureSize(16, 16)
|
||||
.setSize(16, 16))
|
||||
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 -> {
|
||||
MinecraftClient.getInstance().openScreen(new GuiPonySettings());
|
||||
}).setStyle(new com.minelittlepony.common.client.gui.style.Style()
|
||||
.setIcon(new TextureSprite()
|
||||
.setPosition(2, 2)
|
||||
.setTexture(new Identifier("minelittlepony", "textures/gui/pony.png"))
|
||||
.setTextureSize(16, 16)
|
||||
.setSize(16, 16))
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,14 +6,14 @@ import net.minecraft.text.LiteralText;
|
|||
|
||||
import com.minelittlepony.client.MineLittlePony;
|
||||
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.ScrollContainer;
|
||||
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.Slider;
|
||||
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.PonySettings;
|
||||
|
||||
|
@ -29,7 +29,7 @@ public class GuiPonySettings extends GameGui {
|
|||
|
||||
private static final String MOB_PREFIX = "minelp.mobs.";
|
||||
|
||||
private PonyConfig config;
|
||||
private ClientPonyConfig config;
|
||||
|
||||
private final ScrollContainer content = new ScrollContainer();
|
||||
|
||||
|
@ -38,7 +38,7 @@ public class GuiPonySettings extends GameGui {
|
|||
public GuiPonySettings() {
|
||||
super(new LiteralText(OPTIONS_PREFIX + "title"));
|
||||
|
||||
config = MineLittlePony.getInstance().getConfig();
|
||||
config = (ClientPonyConfig)MineLittlePony.getInstance().getConfig();
|
||||
|
||||
content.margin.top = 30;
|
||||
content.margin.bottom = 30;
|
||||
|
@ -90,9 +90,8 @@ public class GuiPonySettings extends GameGui {
|
|||
.onChange(config::setGlobalScaleFactor)
|
||||
.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 Slider(LEFT, row += 15, 0, Size.REGISTRY.length - 1, config.getOverrideSize().ordinal())
|
||||
.onChange(config::setSizeOverride)
|
||||
.setFormatter(value -> value < Size.REGISTRY.length ? Size.REGISTRY[(int)(float)value].name() : "Unset"));
|
||||
content.addButton(new EnumSlider<>(LEFT, row += 15, config.getOverrideSize())
|
||||
.onChange(config::setSizeOverride));
|
||||
}
|
||||
|
||||
row += 20;
|
||||
|
@ -103,6 +102,11 @@ public class GuiPonySettings extends GameGui {
|
|||
.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) {
|
||||
row = 0;
|
||||
} else {
|
||||
|
|
|
@ -4,10 +4,13 @@ import net.minecraft.client.MinecraftClient;
|
|||
import net.minecraft.entity.player.PlayerEntity;
|
||||
|
||||
import com.minelittlepony.client.render.entities.MobRenderers;
|
||||
import com.minelittlepony.common.client.gui.VisibilityMode;
|
||||
import com.minelittlepony.settings.PonyConfig;
|
||||
|
||||
public class ClientPonyConfig extends PonyConfig {
|
||||
|
||||
private final Setting<VisibilityMode> buttonMode = new Value<>("horseButton", VisibilityMode.AUTO);
|
||||
|
||||
public ClientPonyConfig() {
|
||||
initWith(MobRenderers.values());
|
||||
}
|
||||
|
@ -20,4 +23,13 @@ public class ClientPonyConfig extends PonyConfig {
|
|||
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();
|
||||
}
|
||||
|
||||
public float setSizeOverride(float value) {
|
||||
value = Math.round(value);
|
||||
Size size = Size.REGISTRY[(int) value % Size.REGISTRY.length];
|
||||
|
||||
sizeOverride.set(size);
|
||||
return size.ordinal();
|
||||
public Size setSizeOverride(Size value) {
|
||||
sizeOverride.set(value);
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
"minelp.options.fpsmagic": "Ponies use magic in first-person",
|
||||
"minelp.options.ponyskulls": "Render mob heads as ponies",
|
||||
"minelp.options.frustrum": "Enable Frustum checks",
|
||||
"minelp.options.button": "Display On Title Screen",
|
||||
"minelp.mobs.title": "Mob Settings",
|
||||
"minelp.mobs.villagers": "Ponify villagers",
|
||||
"minelp.mobs.zombies": "Ponify zombies",
|
||||
|
|
Loading…
Reference in a new issue