mirror of
https://github.com/TeamMidnightDust/MidnightControls.git
synced 2025-12-13 15:25:08 +01:00
Mostly related to touch screen support - Added selection outlines for Break-at-Finger mode - Breaking blocks/interacting with entities will now just check if the target changed, not the finger position - Added the ability to create custom touch buttons out of ButtonBindings - Redesigned top touch buttons - Added emote touch button when Emotecraft is installed - Updated SpruceUI - Removed old mixins
41 lines
1.9 KiB
Java
41 lines
1.9 KiB
Java
/*
|
|
* Copyright © 2021 LambdAurora <aurora42lambda@gmail.com>
|
|
*
|
|
* This file is part of midnightcontrols.
|
|
*
|
|
* Licensed under the MIT license. For more information,
|
|
* see the LICENSE file.
|
|
*/
|
|
|
|
package eu.midnightdust.midnightcontrols.client.mixin;
|
|
|
|
import eu.midnightdust.midnightcontrols.client.gui.MidnightControlsSettingsScreen;
|
|
import net.minecraft.client.gui.screen.Screen;
|
|
import net.minecraft.client.gui.screen.option.ControlsOptionsScreen;
|
|
import net.minecraft.client.gui.screen.option.GameOptionsScreen;
|
|
import net.minecraft.client.gui.widget.TextIconButtonWidget;
|
|
import net.minecraft.client.option.GameOptions;
|
|
import net.minecraft.text.Text;
|
|
import net.minecraft.util.Identifier;
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
import org.spongepowered.asm.mixin.injection.At;
|
|
import org.spongepowered.asm.mixin.injection.Inject;
|
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|
|
|
/**
|
|
* Injects the new controls settings button.
|
|
*/
|
|
@Mixin(ControlsOptionsScreen.class)
|
|
public abstract class ControlsOptionsScreenMixin extends GameOptionsScreen {
|
|
public ControlsOptionsScreenMixin(Screen parent, GameOptions gameOptions, Text text) {
|
|
super(parent, gameOptions, text);
|
|
}
|
|
@Inject(method = "init", at = @At(value = "INVOKE", ordinal = 1, shift = At.Shift.AFTER, target = "Lnet/minecraft/client/gui/screen/option/ControlsOptionsScreen;addDrawableChild(Lnet/minecraft/client/gui/Element;)Lnet/minecraft/client/gui/Element;"))
|
|
private void addControllerButton(CallbackInfo ci) {
|
|
TextIconButtonWidget iconWidget = TextIconButtonWidget.builder(Text.translatable("midnightcontrols.menu.title.controller"), (button -> this.client.setScreen(new MidnightControlsSettingsScreen(this, false))), true)
|
|
.dimension(20,20).texture(new Identifier("midnightcontrols", "icon/controller"), 20, 20).build();
|
|
iconWidget.setPosition(this.width / 2 + 158, this.height / 6 - 12);
|
|
this.addDrawableChild(iconWidget);
|
|
}
|
|
}
|