mirror of
https://github.com/Shiewk/BedrockDeathScreen.git
synced 2026-04-27 22:44:17 +02:00
1.21.9 support
This commit is contained in:
+2
-2
@@ -1,5 +1,5 @@
|
||||
plugins {
|
||||
id 'fabric-loom' version '1.10.1'
|
||||
id 'fabric-loom' version "1.11-SNAPSHOT"
|
||||
id 'maven-publish'
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ dependencies {
|
||||
|
||||
// Fabric API. This is technically optional, but you probably want it anyway.
|
||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
||||
modImplementation "maven.modrinth:modmenu:15.0.0-beta.3"
|
||||
modImplementation "maven.modrinth:modmenu:${project.modmenu_version}"
|
||||
}
|
||||
|
||||
processResources {
|
||||
|
||||
+5
-4
@@ -3,9 +3,9 @@ org.gradle.jvmargs=-Xmx1G
|
||||
|
||||
# Fabric Properties
|
||||
# check these on https://modmuss50.me/fabric.html
|
||||
minecraft_version=1.21.6
|
||||
yarn_mappings=1.21.6+build.1
|
||||
loader_version=0.16.13
|
||||
minecraft_version=1.21.9
|
||||
yarn_mappings=1.21.9+build.1
|
||||
loader_version=0.17.2
|
||||
|
||||
# Mod Properties
|
||||
mod_version = 1.3.1
|
||||
@@ -14,4 +14,5 @@ org.gradle.jvmargs=-Xmx1G
|
||||
|
||||
# Dependencies
|
||||
# check this on https://modmuss50.me/fabric.html
|
||||
fabric_version=0.127.0+1.21.6
|
||||
fabric_version=0.134.0+1.21.9
|
||||
modmenu_version=16.0.0-rc.1
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
@@ -4,6 +4,7 @@ import de.shiewk.bedrockdeathscreen.client.BedrockDeathScreenClient;
|
||||
import de.shiewk.bedrockdeathscreen.client.screen.components.BedrockDeathScreenButton;
|
||||
import de.shiewk.bedrockdeathscreen.config.BedrockDeathScreenConfig;
|
||||
import net.minecraft.client.gl.RenderPipelines;
|
||||
import net.minecraft.client.gui.Click;
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.client.gui.screen.DeathScreen;
|
||||
import net.minecraft.client.gui.screen.TitleScreen;
|
||||
@@ -15,13 +16,11 @@ import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.Util;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.joml.Matrix3x2fStack;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
public class BedrockDeathScreen extends DeathScreen {
|
||||
|
||||
public static final long CURSOR_HAND = GLFW.glfwCreateStandardCursor(GLFW.GLFW_POINTING_HAND_CURSOR);
|
||||
public static final Identifier VIGNETTE = Identifier.of("bedrockdeathscreen", "textures/gui/death_vignette.png");
|
||||
|
||||
private final BedrockDeathScreenConfig config;
|
||||
@@ -100,13 +99,6 @@ public class BedrockDeathScreen extends DeathScreen {
|
||||
boolean hoveringButton = menuButton.isHovered() || respawnButton.isHovered();
|
||||
if (hoveringButton != wasHoveringButtons){
|
||||
wasHoveringButtons = hoveringButton;
|
||||
assert client != null;
|
||||
long window = client.getWindow().getHandle();
|
||||
if (hoveringButton){
|
||||
GLFW.glfwSetCursor(window, CURSOR_HAND);
|
||||
} else {
|
||||
GLFW.glfwSetCursor(window, 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -162,15 +154,15 @@ public class BedrockDeathScreen extends DeathScreen {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseClicked(double mouseX, double mouseY, int button) {
|
||||
if (respawnButton.mouseClicked(mouseX, mouseY, button)) return true;
|
||||
return menuButton.mouseClicked(mouseX, mouseY, button);
|
||||
public boolean mouseClicked(Click click, boolean doubled) {
|
||||
if (respawnButton.mouseClicked(click, doubled)) return true;
|
||||
return menuButton.mouseClicked(click, doubled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean mouseReleased(double mouseX, double mouseY, int button) {
|
||||
respawnButton.mouseReleased(mouseX, mouseY, button);
|
||||
menuButton.mouseReleased(mouseX, mouseY, button);
|
||||
public boolean mouseReleased(Click click) {
|
||||
respawnButton.mouseReleased(click);
|
||||
menuButton.mouseReleased(click);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -189,22 +181,6 @@ public class BedrockDeathScreen extends DeathScreen {
|
||||
return (float) (ep / (1d + ep) * 7d + 2d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
assert client != null;
|
||||
long window = client.getWindow().getHandle();
|
||||
GLFW.glfwSetCursor(window, 0);
|
||||
super.close();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removed() {
|
||||
assert client != null;
|
||||
long window = client.getWindow().getHandle();
|
||||
GLFW.glfwSetCursor(window, 0);
|
||||
super.removed();
|
||||
}
|
||||
|
||||
private void clickQuitButton() {
|
||||
if (confirmingExit) {
|
||||
quitLevel();
|
||||
|
||||
+14
-8
@@ -1,7 +1,9 @@
|
||||
package de.shiewk.bedrockdeathscreen.client.screen.components;
|
||||
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.gui.Click;
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.client.gui.cursor.StandardCursors;
|
||||
import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
|
||||
import net.minecraft.client.gui.widget.ClickableWidget;
|
||||
import net.minecraft.client.sound.SoundManager;
|
||||
@@ -57,6 +59,10 @@ public class BedrockDeathScreenButton extends ClickableWidget {
|
||||
protected void renderWidget(DrawContext context, int mouseX, int mouseY, float deltaTicks) {
|
||||
final boolean mouseHover = isHovered();
|
||||
|
||||
if (mouseHover) {
|
||||
context.setCursor(StandardCursors.POINTING_HAND);
|
||||
}
|
||||
|
||||
final int opacity = getOpacity();
|
||||
if (opacity < 4) return;
|
||||
final int startX = getX();
|
||||
@@ -67,13 +73,13 @@ public class BedrockDeathScreenButton extends ClickableWidget {
|
||||
boolean shouldAppearPressed = pressed || clicked;
|
||||
if (shouldAppearPressed){
|
||||
context.fill(startX+2, startY+4, endX-2, endY+2, changeColorOpacity(colorPrimaryPressed, opacity));
|
||||
context.drawBorder(startX+1, startY+3, (endX-1) - (startX+1), (endY+1) - (startY+1), changeColorOpacity(colorBorderPressed, opacity));
|
||||
context.drawBorder(startX, startY+2, endX - startX, (endY+2) - startY, changeColorOpacity(colorBlack, opacity));
|
||||
context.drawStrokedRectangle(startX+1, startY+3, (endX-1) - (startX+1), (endY+1) - (startY+1), changeColorOpacity(colorBorderPressed, opacity));
|
||||
context.drawStrokedRectangle(startX, startY+2, endX - startX, (endY+2) - startY, changeColorOpacity(colorBlack, opacity));
|
||||
} else {
|
||||
context.fill(startX+2, startY+2, endX-2, endY-1, (mouseHover ? changeColorOpacity(colorHover, opacity) : changeColorOpacity(colorPrimary, opacity)));
|
||||
context.drawBorder(startX+1, startY+1, (endX-1) - (startX+1), (endY) - (startY+1), changeColorOpacity(colorBorder, opacity));
|
||||
context.drawStrokedRectangle(startX+1, startY+1, (endX-1) - (startX+1), (endY) - (startY+1), changeColorOpacity(colorBorder, opacity));
|
||||
context.fill(startX+1, endY, endX-1, endY+3, changeColorOpacity(colorSecondary, opacity));
|
||||
context.drawBorder(startX, startY, endX - startX, (endY+4) - startY, changeColorOpacity(colorBlack, opacity));
|
||||
context.drawStrokedRectangle(startX, startY, endX - startX, (endY+4) - startY, changeColorOpacity(colorBlack, opacity));
|
||||
}
|
||||
|
||||
if (textShadow){
|
||||
@@ -97,12 +103,12 @@ public class BedrockDeathScreenButton extends ClickableWidget {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(double mouseX, double mouseY) {
|
||||
public void onClick(Click click, boolean doubled) {
|
||||
pressed = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRelease(double mouseX, double mouseY) {
|
||||
public void onRelease(Click click) {
|
||||
if (pressed && hovered) {
|
||||
clicked = true;
|
||||
clickAction.run();
|
||||
@@ -119,9 +125,9 @@ public class BedrockDeathScreenButton extends ClickableWidget {
|
||||
protected void appendClickableNarrations(NarrationMessageBuilder builder) {}
|
||||
|
||||
@Override
|
||||
public boolean mouseClicked(double mouseX, double mouseY, int button) {
|
||||
public boolean mouseClicked(Click click, boolean doubled) {
|
||||
if (getOpacity() > 0){
|
||||
return super.mouseClicked(mouseX, mouseY, button);
|
||||
return super.mouseClicked(click, doubled);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2,32 +2,28 @@ package de.shiewk.bedrockdeathscreen.mixin;
|
||||
|
||||
import de.shiewk.bedrockdeathscreen.client.screen.BedrockDeathScreen;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.screen.DeathScreen;
|
||||
import net.minecraft.client.world.ClientWorld;
|
||||
import net.minecraft.text.Text;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.ModifyVariable;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
|
||||
@Mixin(MinecraftClient.class)
|
||||
public class MixinMinecraftClient {
|
||||
|
||||
@Shadow @Nullable public ClientWorld world;
|
||||
@Shadow
|
||||
@Nullable
|
||||
public ClientWorld world;
|
||||
|
||||
@ModifyVariable(
|
||||
@Redirect(
|
||||
method = "setScreen",
|
||||
at = @At("STORE"),
|
||||
name = "screen",
|
||||
index = 1,
|
||||
argsOnly = true
|
||||
at = @At(value = "NEW", target = "(Lnet/minecraft/text/Text;Z)Lnet/minecraft/client/gui/screen/DeathScreen;")
|
||||
)
|
||||
public Screen onCreateDeathScreen(Screen value){
|
||||
if (world != null){
|
||||
return new BedrockDeathScreen(null, world.getLevelProperties().isHardcore());
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
public DeathScreen bedrockdeathscreen$createModifiedDeathScreen(Text message, boolean isHardcore){
|
||||
return new BedrockDeathScreen(null, world != null && world.getLevelProperties().isHardcore());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user