1
0
forked from Clones/Controlify

scrollable vmouse, YACL compat, toggle sneak/sprint, 22w06a, custom name

This commit is contained in:
isXander
2023-02-08 21:54:01 +00:00
parent 6c5108469c
commit ab801e37b4
26 changed files with 400 additions and 91 deletions

View File

@ -0,0 +1,19 @@
package dev.isxander.controlify.mixins.compat.screen.vanilla;
import dev.isxander.controlify.compatibility.screen.component.ComponentProcessor;
import dev.isxander.controlify.compatibility.screen.component.ComponentProcessorProvider;
import dev.isxander.controlify.compatibility.vanilla.AbstractButtonComponentProcessor;
import net.minecraft.client.gui.components.AbstractButton;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
@Mixin(AbstractButton.class)
public class AbstractButtonMixin implements ComponentProcessorProvider {
@Unique private final AbstractButtonComponentProcessor controlify$processor
= new AbstractButtonComponentProcessor((AbstractButton) (Object) this);
@Override
public ComponentProcessor componentProcessor() {
return controlify$processor;
}
}

View File

@ -0,0 +1,19 @@
package dev.isxander.controlify.mixins.compat.screen.yacl;
import dev.isxander.controlify.compatibility.screen.component.ComponentProcessor;
import dev.isxander.controlify.compatibility.screen.component.ComponentProcessorProvider;
import dev.isxander.controlify.compatibility.yacl.CyclingControllerElementComponentProcessor;
import dev.isxander.yacl.gui.controllers.cycling.CyclingControllerElement;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
@Mixin(CyclingControllerElement.class)
public class CyclingControllerElementMixin implements ComponentProcessorProvider {
@Unique private final CyclingControllerElementComponentProcessor controlify$processor
= new CyclingControllerElementComponentProcessor((CyclingControllerElement) (Object) this);
@Override
public ComponentProcessor componentProcessor() {
return controlify$processor;
}
}

View File

@ -0,0 +1,19 @@
package dev.isxander.controlify.mixins.compat.screen.yacl;
import dev.isxander.controlify.compatibility.screen.component.ComponentProcessor;
import dev.isxander.controlify.compatibility.screen.component.ComponentProcessorProvider;
import dev.isxander.controlify.compatibility.yacl.SliderControllerElementComponentProcessor;
import dev.isxander.yacl.gui.controllers.slider.SliderControllerElement;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
@Mixin(SliderControllerElement.class)
public class SliderControllerElementMixin implements ComponentProcessorProvider {
@Unique private final SliderControllerElementComponentProcessor controlify$processor
= new SliderControllerElementComponentProcessor((SliderControllerElement) (Object) this);
@Override
public ComponentProcessor componentProcessor() {
return controlify$processor;
}
}

View File

@ -0,0 +1,18 @@
package dev.isxander.controlify.mixins.compat.screen.yacl;
import dev.isxander.controlify.compatibility.screen.ScreenProcessor;
import dev.isxander.controlify.compatibility.screen.ScreenProcessorProvider;
import dev.isxander.controlify.compatibility.yacl.YACLScreenProcessor;
import dev.isxander.yacl.gui.YACLScreen;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
@Mixin(YACLScreen.class)
public class YACLScreenMixin implements ScreenProcessorProvider {
@Unique private final YACLScreenProcessor controlify$processor = new YACLScreenProcessor((YACLScreen) (Object) this);
@Override
public ScreenProcessor<?> screenProcessor() {
return controlify$processor;
}
}

View File

@ -24,6 +24,6 @@ public class ClientPacketListenerMixin {
@Inject(method = "handleLogin", at = @At(value = "FIELD", target = "Lnet/minecraft/client/player/LocalPlayer;input:Lnet/minecraft/client/player/Input;", opcode = Opcodes.ASTORE, shift = At.Shift.AFTER))
private void useControllerInput(ClientboundLoginPacket packet, CallbackInfo ci) {
if (Controlify.instance().currentInputMode() == InputMode.CONTROLLER && minecraft.player != null)
minecraft.player.input = new ControllerPlayerMovement(Controlify.instance().currentController());
minecraft.player.input = new ControllerPlayerMovement(Controlify.instance().currentController(), minecraft.player);
}
}

View File

@ -9,4 +9,10 @@ import org.spongepowered.asm.mixin.gen.Accessor;
public interface KeyMappingAccessor {
@Accessor
InputConstants.Key getKey();
@Accessor
void setIsDown(boolean down);
@Accessor
boolean getIsDown();
}