mirror of
https://github.com/TeamMidnightDust/MidnightControls.git
synced 2025-12-17 17:05:09 +01:00
Compare commits
5 Commits
7375e5ad20
...
architectu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
54a43d41c0 | ||
|
|
c86df8714c | ||
|
|
ccad5e1d44 | ||
|
|
58fa3b5bc1 | ||
|
|
0f407ac245 |
@@ -72,7 +72,7 @@ public class MidnightControlsClient extends MidnightControls {
|
|||||||
public static final Identifier WAYLAND_CURSOR_TEXTURE_LIGHT = id("cursor/light/mouse_pointer");
|
public static final Identifier WAYLAND_CURSOR_TEXTURE_LIGHT = id("cursor/light/mouse_pointer");
|
||||||
public static final Identifier WAYLAND_CURSOR_TEXTURE_DARK = id("cursor/dark/mouse_pointer");
|
public static final Identifier WAYLAND_CURSOR_TEXTURE_DARK = id("cursor/dark/mouse_pointer");
|
||||||
public static final File MAPPINGS_FILE = new File("config/gamecontrollercustommappings.txt");
|
public static final File MAPPINGS_FILE = new File("config/gamecontrollercustommappings.txt");
|
||||||
public static final MinecraftClient client = MinecraftClient.getInstance();
|
public static MinecraftClient client = MinecraftClient.getInstance();
|
||||||
public static final MidnightInput input = new MidnightInput();
|
public static final MidnightInput input = new MidnightInput();
|
||||||
public static final MidnightRing ring = new MidnightRing();
|
public static final MidnightRing ring = new MidnightRing();
|
||||||
public static final MidnightReacharound reacharound = new MidnightReacharound();
|
public static final MidnightReacharound reacharound = new MidnightReacharound();
|
||||||
@@ -82,6 +82,7 @@ public class MidnightControlsClient extends MidnightControls {
|
|||||||
private static ControlsMode previousControlsMode;
|
private static ControlsMode previousControlsMode;
|
||||||
|
|
||||||
public static void initClient() {
|
public static void initClient() {
|
||||||
|
client = MinecraftClient.getInstance();
|
||||||
ring.registerAction("buttonbinding", ButtonBindingRingAction.FACTORY);
|
ring.registerAction("buttonbinding", ButtonBindingRingAction.FACTORY);
|
||||||
|
|
||||||
int delay = 0; // delay for 0 sec.
|
int delay = 0; // delay for 0 sec.
|
||||||
@@ -211,6 +212,7 @@ public class MidnightControlsClient extends MidnightControls {
|
|||||||
* Called when opening a screen.
|
* Called when opening a screen.
|
||||||
*/
|
*/
|
||||||
public static void onScreenOpen(Screen screen) {
|
public static void onScreenOpen(Screen screen) {
|
||||||
|
client = MinecraftClient.getInstance();
|
||||||
if (screen == null && MidnightControlsConfig.controlsMode == ControlsMode.TOUCHSCREEN) {
|
if (screen == null && MidnightControlsConfig.controlsMode == ControlsMode.TOUCHSCREEN) {
|
||||||
screen = new TouchscreenOverlay();
|
screen = new TouchscreenOverlay();
|
||||||
screen.init(client, client.getWindow().getScaledWidth(), client.getWindow().getScaledHeight());
|
screen.init(client, client.getWindow().getScaledWidth(), client.getWindow().getScaledHeight());
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
package eu.midnightdust.midnightcontrols.client.gui;
|
package eu.midnightdust.midnightcontrols.client.gui;
|
||||||
|
|
||||||
import eu.midnightdust.midnightcontrols.ControlsMode;
|
import eu.midnightdust.midnightcontrols.ControlsMode;
|
||||||
import eu.midnightdust.midnightcontrols.MidnightControlsConstants;
|
|
||||||
import eu.midnightdust.midnightcontrols.client.enums.HudSide;
|
import eu.midnightdust.midnightcontrols.client.enums.HudSide;
|
||||||
import eu.midnightdust.midnightcontrols.client.MidnightControlsClient;
|
import eu.midnightdust.midnightcontrols.client.MidnightControlsClient;
|
||||||
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
|
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
|
||||||
@@ -24,7 +23,6 @@ import net.minecraft.client.resource.language.I18n;
|
|||||||
import net.minecraft.client.util.math.MatrixStack;
|
import net.minecraft.client.util.math.MatrixStack;
|
||||||
import net.minecraft.item.BlockItem;
|
import net.minecraft.item.BlockItem;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.Identifier;
|
|
||||||
import net.minecraft.util.hit.BlockHitResult;
|
import net.minecraft.util.hit.BlockHitResult;
|
||||||
import net.minecraft.util.hit.HitResult;
|
import net.minecraft.util.hit.HitResult;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -40,7 +38,7 @@ import static eu.midnightdust.midnightcontrols.MidnightControls.id;
|
|||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public class MidnightControlsHud extends Hud {
|
public class MidnightControlsHud extends Hud {
|
||||||
private final MinecraftClient client = MinecraftClient.getInstance();
|
private MinecraftClient client = MinecraftClient.getInstance();
|
||||||
private int attackWidth = 0;
|
private int attackWidth = 0;
|
||||||
private int attackButtonWidth = 0;
|
private int attackButtonWidth = 0;
|
||||||
private int dropItemWidth = 0;
|
private int dropItemWidth = 0;
|
||||||
@@ -63,6 +61,7 @@ public class MidnightControlsHud extends Hud {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(@NotNull MinecraftClient client, int screenWidth, int screenHeight) {
|
public void init(@NotNull MinecraftClient client, int screenWidth, int screenHeight) {
|
||||||
|
this.client = MinecraftClient.getInstance();
|
||||||
super.init(client, screenWidth, screenHeight);
|
super.init(client, screenWidth, screenHeight);
|
||||||
this.inventoryWidth = this.width(ButtonBinding.INVENTORY);
|
this.inventoryWidth = this.width(ButtonBinding.INVENTORY);
|
||||||
this.inventoryButtonWidth = MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.INVENTORY);
|
this.inventoryButtonWidth = MidnightControlsRenderer.getBindingIconWidth(ButtonBinding.INVENTORY);
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
package eu.midnightdust.midnightcontrols.client.gui;
|
package eu.midnightdust.midnightcontrols.client.gui;
|
||||||
|
|
||||||
import com.mojang.blaze3d.opengl.GlStateManager;
|
|
||||||
import com.mojang.blaze3d.platform.GLX;
|
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import eu.midnightdust.midnightcontrols.ControlsMode;
|
import eu.midnightdust.midnightcontrols.ControlsMode;
|
||||||
import eu.midnightdust.midnightcontrols.client.enums.ControllerType;
|
import eu.midnightdust.midnightcontrols.client.enums.ControllerType;
|
||||||
@@ -171,8 +169,6 @@ public class MidnightControlsRenderer {
|
|||||||
case GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER + 100, GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER + 200 -> buttonOffset = 10 * 15;
|
case GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER + 100, GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER + 200 -> buttonOffset = 10 * 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
GlStateManager._disableDepthTest();
|
|
||||||
|
|
||||||
int assetSize = axis || (button >= 15 && button <= 18) ? AXIS_SIZE : BUTTON_SIZE;
|
int assetSize = axis || (button >= 15 && button <= 18) ? AXIS_SIZE : BUTTON_SIZE;
|
||||||
|
|
||||||
RenderSystem.setShaderColor(1.f, second ? 0.f : 1.f, 1.f, 1.f);
|
RenderSystem.setShaderColor(1.f, second ? 0.f : 1.f, 1.f, 1.f);
|
||||||
@@ -181,7 +177,6 @@ public class MidnightControlsRenderer {
|
|||||||
(float) buttonOffset, (float) (controllerType * assetSize),
|
(float) buttonOffset, (float) (controllerType * assetSize),
|
||||||
assetSize, assetSize,
|
assetSize, assetSize,
|
||||||
256, 256);
|
256, 256);
|
||||||
GlStateManager._enableDepthTest();
|
|
||||||
|
|
||||||
return ICON_SIZE;
|
return ICON_SIZE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -528,13 +528,10 @@ public class MidnightControlsSettingsScreen extends SpruceScreen {
|
|||||||
float g = (float)(color.getGreen()) / 255.0F;
|
float g = (float)(color.getGreen()) / 255.0F;
|
||||||
float b = (float)(color.getBlue()) / 255.0F;
|
float b = (float)(color.getBlue()) / 255.0F;
|
||||||
float t = (float)(transparency) / 255.0F;
|
float t = (float)(transparency) / 255.0F;
|
||||||
GlStateManager._enableBlend();
|
|
||||||
//GlStateManager._defaultBlendFunc();
|
|
||||||
vertexConsumer.vertex((float)x1, (float)y2, 0.0F).color(r, g, b, t);
|
vertexConsumer.vertex((float)x1, (float)y2, 0.0F).color(r, g, b, t);
|
||||||
vertexConsumer.vertex((float)x2, (float)y2, 0.0F).color(r, g, b, t);
|
vertexConsumer.vertex((float)x2, (float)y2, 0.0F).color(r, g, b, t);
|
||||||
vertexConsumer.vertex((float)x2, (float)y1, 0.0F).color(r, g, b, t);
|
vertexConsumer.vertex((float)x2, (float)y1, 0.0F).color(r, g, b, t);
|
||||||
vertexConsumer.vertex((float)x1, (float)y1, 0.0F).color(r, g, b, t);
|
vertexConsumer.vertex((float)x1, (float)y1, 0.0F).color(r, g, b, t);
|
||||||
GlStateManager._disableBlend();
|
|
||||||
context.draw();
|
context.draw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
package eu.midnightdust.midnightcontrols.client.mixin;
|
|
||||||
|
|
||||||
import net.minecraft.block.entity.SignText;
|
|
||||||
import net.minecraft.client.gui.screen.ingame.AbstractSignEditScreen;
|
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
|
||||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
|
||||||
|
|
||||||
@Mixin(AbstractSignEditScreen.class)
|
|
||||||
public interface AbstractSignEditScreenAccessor {
|
|
||||||
@Accessor("text")
|
|
||||||
SignText midnightcontrols$getText();
|
|
||||||
|
|
||||||
@Accessor("text")
|
|
||||||
void midnightcontrols$setText(SignText text);
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package eu.midnightdust.midnightcontrols.client.mixin;
|
||||||
|
|
||||||
|
import eu.midnightdust.midnightcontrols.client.util.AbstractSignEditScreenAccessor;
|
||||||
|
import net.minecraft.block.entity.SignBlockEntity;
|
||||||
|
import net.minecraft.block.entity.SignText;
|
||||||
|
import net.minecraft.client.gui.screen.ingame.AbstractSignEditScreen;
|
||||||
|
import net.minecraft.text.Text;
|
||||||
|
import org.spongepowered.asm.mixin.Final;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
|
@Mixin(AbstractSignEditScreen.class)
|
||||||
|
public class AbstractSignEditScreenMixin implements AbstractSignEditScreenAccessor {
|
||||||
|
@Shadow @Final private String[] messages;
|
||||||
|
@Shadow private SignText text;
|
||||||
|
@Shadow @Final protected SignBlockEntity blockEntity;
|
||||||
|
@Shadow @Final private boolean front;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] midnightcontrols$getMessages() {
|
||||||
|
return messages;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void midnightcontrols$setMessage(int line, String text) {
|
||||||
|
this.messages[line] = text;
|
||||||
|
this.text = this.text.withMessage(line, Text.literal(text));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void midnightcontrols$writeToBlockEntity() {
|
||||||
|
this.blockEntity.setText(this.text, this.front);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package eu.midnightdust.midnightcontrols.client.util;
|
||||||
|
|
||||||
|
import org.spongepowered.asm.mixin.Unique;
|
||||||
|
|
||||||
|
public interface AbstractSignEditScreenAccessor {
|
||||||
|
@Unique
|
||||||
|
String[] midnightcontrols$getMessages();
|
||||||
|
|
||||||
|
@Unique
|
||||||
|
void midnightcontrols$setMessage(int line, String text);
|
||||||
|
|
||||||
|
@Unique
|
||||||
|
void midnightcontrols$writeToBlockEntity();
|
||||||
|
}
|
||||||
@@ -1,8 +1,11 @@
|
|||||||
package eu.midnightdust.midnightcontrols.client.virtualkeyboard.clickhandler;
|
package eu.midnightdust.midnightcontrols.client.virtualkeyboard.clickhandler;
|
||||||
|
|
||||||
import eu.midnightdust.midnightcontrols.client.mixin.AbstractSignEditScreenAccessor;
|
import eu.midnightdust.midnightcontrols.client.util.AbstractSignEditScreenAccessor;
|
||||||
|
import eu.midnightdust.midnightcontrols.client.virtualkeyboard.gui.VirtualKeyboardScreen;
|
||||||
import net.minecraft.client.gui.screen.ingame.SignEditScreen;
|
import net.minecraft.client.gui.screen.ingame.SignEditScreen;
|
||||||
|
|
||||||
|
import static eu.midnightdust.midnightcontrols.client.MidnightControlsClient.client;
|
||||||
|
|
||||||
public class SignEditScreenClickHandler extends AbstractScreenClickHandler<SignEditScreen> {
|
public class SignEditScreenClickHandler extends AbstractScreenClickHandler<SignEditScreen> {
|
||||||
@Override
|
@Override
|
||||||
public void handle(SignEditScreen screen, double mouseX, double mouseY) {
|
public void handle(SignEditScreen screen, double mouseX, double mouseY) {
|
||||||
@@ -12,5 +15,22 @@ public class SignEditScreenClickHandler extends AbstractScreenClickHandler<SignE
|
|||||||
}
|
}
|
||||||
|
|
||||||
var accessor = (AbstractSignEditScreenAccessor) screen;
|
var accessor = (AbstractSignEditScreenAccessor) screen;
|
||||||
|
|
||||||
|
StringBuilder linesToString = new StringBuilder();
|
||||||
|
String[] messages = accessor.midnightcontrols$getMessages();
|
||||||
|
for (int i = 0; i < Math.min(4, messages.length); i++) {
|
||||||
|
String line = messages[i];
|
||||||
|
linesToString.append(line);
|
||||||
|
if (!line.isEmpty() && i < 3) linesToString.append("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
VirtualKeyboardScreen virtualKeyboardScreen = new VirtualKeyboardScreen(linesToString.toString(), (text) -> {
|
||||||
|
client.setScreen(screen);
|
||||||
|
String[] lines = text.split("\n");
|
||||||
|
for (int i = 0; i < 4; i++) accessor.midnightcontrols$setMessage(i, lines.length > i ? lines[i] : "");
|
||||||
|
accessor.midnightcontrols$writeToBlockEntity();
|
||||||
|
}, true);
|
||||||
|
|
||||||
|
client.setScreen(virtualKeyboardScreen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"package": "eu.midnightdust.midnightcontrols.client.mixin",
|
"package": "eu.midnightdust.midnightcontrols.client.mixin",
|
||||||
"compatibilityLevel": "JAVA_21",
|
"compatibilityLevel": "JAVA_21",
|
||||||
"client": [
|
"client": [
|
||||||
|
"AbstractBlockAccessor",
|
||||||
|
"AbstractSignEditScreenMixin",
|
||||||
"AdvancementsScreenAccessor",
|
"AdvancementsScreenAccessor",
|
||||||
"BookEditScreenAccessor",
|
"BookEditScreenAccessor",
|
||||||
"ChatScreenMixin",
|
"ChatScreenMixin",
|
||||||
@@ -24,10 +26,8 @@
|
|||||||
"RecipeBookScreenAccessor",
|
"RecipeBookScreenAccessor",
|
||||||
"RecipeBookWidgetAccessor",
|
"RecipeBookWidgetAccessor",
|
||||||
"ScreenMixin",
|
"ScreenMixin",
|
||||||
"AbstractSignEditScreenAccessor",
|
|
||||||
"TabNavigationWidgetAccessor",
|
"TabNavigationWidgetAccessor",
|
||||||
"WorldRendererMixin",
|
"WorldRendererMixin"
|
||||||
"AbstractBlockAccessor"
|
|
||||||
],
|
],
|
||||||
"injectors": {
|
"injectors": {
|
||||||
"defaultRequire": 1
|
"defaultRequire": 1
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ yarn_mappings=1.21.5+build.1
|
|||||||
enabled_platforms=fabric,neoforge
|
enabled_platforms=fabric,neoforge
|
||||||
|
|
||||||
archives_base_name=midnightcontrols
|
archives_base_name=midnightcontrols
|
||||||
mod_version=1.10.6
|
mod_version=1.11.0
|
||||||
maven_group=eu.midnightdust
|
maven_group=eu.midnightdust
|
||||||
release_type=release
|
release_type=release
|
||||||
modrinth_id = bXX9h73M
|
modrinth_id = bXX9h73M
|
||||||
|
|||||||
Reference in New Issue
Block a user