mirror of
https://github.com/chylex/Better-Controls.git
synced 2025-04-22 18:15:46 +02:00
parent
ffc5c00201
commit
73a6571f20
src/main/java/chylex/bettercontrols
@ -16,8 +16,8 @@ import net.minecraft.client.KeyMapping;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.components.CycleButton;
|
||||
import net.minecraft.client.gui.components.events.GuiEventListener;
|
||||
import net.minecraft.client.gui.screens.OptionsSubScreen;
|
||||
import net.minecraft.client.gui.screens.Screen;
|
||||
import net.minecraft.client.gui.screens.options.OptionsSubScreen;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
@ -211,9 +211,7 @@ public class BetterControlsScreen extends OptionsSubScreen {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
super.init();
|
||||
|
||||
protected void addContents() {
|
||||
allKeyBindings.clear();
|
||||
|
||||
final List<GuiEventListener> elements = new ArrayList<>();
|
||||
@ -234,6 +232,9 @@ public class BetterControlsScreen extends OptionsSubScreen {
|
||||
optionsWidget = addRenderableWidget(new OptionListWidget(width, layout.getContentHeight(), layout.getHeaderHeight(), y - TITLE_MARGIN_TOP + BOTTOM_PADDING, elements));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addOptions() {}
|
||||
|
||||
@Override
|
||||
protected void repositionElements() {
|
||||
super.repositionElements();
|
||||
|
@ -5,8 +5,8 @@ import net.minecraft.client.KeyMapping;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.Options;
|
||||
import net.minecraft.client.gui.components.ContainerObjectSelectionList;
|
||||
import net.minecraft.client.gui.screens.controls.KeyBindsList;
|
||||
import net.minecraft.client.gui.screens.controls.KeyBindsList.Entry;
|
||||
import net.minecraft.client.gui.screens.options.controls.KeyBindsList;
|
||||
import net.minecraft.client.gui.screens.options.controls.KeyBindsList.Entry;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
|
@ -4,14 +4,13 @@ import chylex.bettercontrols.gui.BetterControlsScreen;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.Options;
|
||||
import net.minecraft.client.gui.components.Button;
|
||||
import net.minecraft.client.gui.components.OptionsList;
|
||||
import net.minecraft.client.gui.components.events.GuiEventListener;
|
||||
import net.minecraft.client.gui.screens.OptionsSubScreen;
|
||||
import net.minecraft.client.gui.screens.Screen;
|
||||
import net.minecraft.client.gui.screens.controls.ControlsScreen;
|
||||
import net.minecraft.client.gui.screens.options.OptionsSubScreen;
|
||||
import net.minecraft.client.gui.screens.options.controls.ControlsScreen;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
@ -24,20 +23,18 @@ public abstract class HookControlsScreen extends OptionsSubScreen {
|
||||
super(parentScreen, options, title);
|
||||
}
|
||||
|
||||
@Inject(method = "init", at = @At("RETURN"))
|
||||
public void afterInit(final CallbackInfo ci) {
|
||||
@Inject(method = "addOptions", at = @At("RETURN"))
|
||||
public void afterAddOptions(final CallbackInfo ci) {
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
final ControlsScreen screen = (ControlsScreen)(Object)this;
|
||||
|
||||
for (final GuiEventListener child : children()) {
|
||||
if (child instanceof final OptionsList optionsList) {
|
||||
final MutableComponent buttonTitle = BetterControlsScreen.TITLE.plainCopy().append("...");
|
||||
optionsList.addSmall(List.of(Button.builder(buttonTitle, btn -> showOptionsScreen(screen)).build()));
|
||||
break;
|
||||
}
|
||||
if (list != null) {
|
||||
final MutableComponent buttonTitle = BetterControlsScreen.TITLE.plainCopy().append("...");
|
||||
list.addSmall(List.of(Button.builder(buttonTitle, btn -> showOptionsScreen(screen)).build()));
|
||||
}
|
||||
}
|
||||
|
||||
@Unique
|
||||
private static void showOptionsScreen(final ControlsScreen screen) {
|
||||
final Minecraft mc = Minecraft.getInstance();
|
||||
mc.setScreen(new BetterControlsScreen(mc, screen));
|
||||
|
@ -10,12 +10,14 @@ import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Mutable;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(Options.class)
|
||||
public abstract class HookLoadGameOptions {
|
||||
@Unique
|
||||
private boolean hasLoaded = false;
|
||||
|
||||
@Mutable
|
||||
|
Loading…
Reference in New Issue
Block a user