MidnightControls 0.1.0 (Beta)

Changes from LambdaControls:
- Support for Steam Deck and Dualsense
- Support for L4, L5, R4, R5 buttons
- Updated Libraries
- New Logo and Name
- Lots of Bugfixes
- MidnightConfig backend
This commit is contained in:
Motschen
2022-03-12 22:33:19 +01:00
parent bfaa4f5d9a
commit 5fcf4c2b1b
113 changed files with 2934 additions and 3307 deletions

View File

@@ -0,0 +1,66 @@
/*
* 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.ring;
import com.electronwill.nightconfig.core.Config;
import eu.midnightdust.midnightcontrols.client.util.KeyBindingAccessor;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.TranslatableText;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.function.Supplier;
public class KeyBindingRingAction extends RingAction {
public static final Factory FACTORY = new Factory();
public final KeyBinding binding;
public KeyBindingRingAction(@NotNull Config config, @NotNull KeyBinding binding) {
super(config);
this.binding = binding;
}
@Override
public @NotNull String getName() {
return this.binding.getTranslationKey();
}
@Override
public void onAction(@NotNull RingButtonMode mode) {
KeyBindingAccessor accessor = (KeyBindingAccessor) this.binding;
switch (mode) {
case PRESS, HOLD -> accessor.midnightcontrols$handlePressState(this.activated);
case TOGGLE -> {
accessor.midnightcontrols$handlePressState(!this.binding.isPressed());
this.activated = !this.binding.isPressed();
}
}
}
@Override
public void drawIcon(@NotNull MatrixStack matrices, @NotNull TextRenderer textRenderer, int x, int y, boolean hovered) {
drawCenteredText(matrices, textRenderer, new TranslatableText(this.getName()), x + 25, y + 25 - textRenderer.fontHeight / 2, 0xffffff);
}
protected static class Factory implements RingAction.Factory {
@Override
public @NotNull Supplier<RingAction> newFromGui(@NotNull Screen screen) {
return () -> null;
}
@Override
public @Nullable RingAction parse(@NotNull Config config) {
return null;
}
}
}