nosingleplayer 1.1.2: fond via Redirect appel (extractPanorama hérité de Screen)

This commit is contained in:
kisakay
2026-10-18 21:33:51 +02:00
parent 3be064ad25
commit e800fde2ca
5 changed files with 13 additions and 21 deletions
+4 -4
View File
@@ -402,13 +402,13 @@
} }
}, },
{ {
"id": "fr.surviepote:nosingleplayer:1.1.1@jar", "id": "fr.surviepote:nosingleplayer:1.1.2@jar",
"name": "NoSingleplayer (SurviePote)", "name": "NoSingleplayer (SurviePote)",
"type": "FabricMod", "type": "FabricMod",
"artifact": { "artifact": {
"size": 2292688, "size": 2292471,
"url": "https://git.kisakay.com/k/mc/raw/branch/main/atlas/root/servers/SurviePote-26.3/fabricmods/required/nosingleplayer-1.1.1.jar", "url": "https://git.kisakay.com/k/mc/raw/branch/main/atlas/root/servers/SurviePote-26.3/fabricmods/required/nosingleplayer-1.1.2.jar",
"MD5": "8778f7015b2c2dd2655c0b4d5c8e8b00" "MD5": "2ba50ec99adb670cdb34fe41b0e3d7dd"
} }
}, },
{ {
+1 -1
View File
@@ -5,7 +5,7 @@ loader_version=0.20.0
loom_version=1.19.1 loom_version=1.19.1
# Mod Properties # Mod Properties
mod_version=1.1.1 mod_version=1.1.2
maven_group=fr.surviepote maven_group=fr.surviepote
archives_base_name=nosingleplayer archives_base_name=nosingleplayer
@@ -10,9 +10,7 @@ import net.minecraft.resources.Identifier;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(TitleScreen.class) @Mixin(TitleScreen.class)
public abstract class TitleScreenRenderMixin { public abstract class TitleScreenRenderMixin {
@@ -27,19 +25,13 @@ public abstract class TitleScreenRenderMixin {
@Unique @Unique
private static final int BACKGROUND_TEX_H = 2400; private static final int BACKGROUND_TEX_H = 2400;
// Pas de panorama dynamique : fond statique. // Pas de panorama dynamique : fond statique custom à la place.
@Inject(method = "extractPanorama", at = @At("HEAD"), cancellable = true) // Note : extractPanorama est déclarée dans Screen (héritée), on redirige donc
private void surviepote$skipPanorama(GuiGraphicsExtractor extractor, float partialTick, CallbackInfo ci) { // l'APPEL dans TitleScreen plutôt que la méthode elle-même.
ci.cancel(); @Redirect(method = "extractRenderState",
}
// Fond plein écran dessiné à la place du panorama (avant widgets/logo/textes).
@Inject(method = "extractRenderState",
at = @At(value = "INVOKE", at = @At(value = "INVOKE",
target = "Lnet/minecraft/client/gui/screens/TitleScreen;extractPanorama(Lnet/minecraft/client/gui/GuiGraphicsExtractor;F)V", target = "Lnet/minecraft/client/gui/screens/TitleScreen;extractPanorama(Lnet/minecraft/client/gui/GuiGraphicsExtractor;F)V"))
shift = At.Shift.AFTER)) private void surviepote$customBackground(TitleScreen self, GuiGraphicsExtractor extractor, float partialTick) {
private void surviepote$drawBackground(GuiGraphicsExtractor extractor, int mouseX, int mouseY, float partialTick,
CallbackInfo ci) {
int w = Minecraft.getInstance().getWindow().getGuiScaledWidth(); int w = Minecraft.getInstance().getWindow().getGuiScaledWidth();
int h = Minecraft.getInstance().getWindow().getGuiScaledHeight(); int h = Minecraft.getInstance().getWindow().getGuiScaledHeight();
extractor.blit(RenderPipelines.GUI_TEXTURED, SURVIEPOTE_BACKGROUND, 0, 0, 0.0F, 0.0F, extractor.blit(RenderPipelines.GUI_TEXTURED, SURVIEPOTE_BACKGROUND, 0, 0, 0.0F, 0.0F,
+2 -2
View File
@@ -54,10 +54,10 @@ cp -u "$HOME/.local/share/PrismLauncher/instances/26.3/minecraft/resourcepacks/F
cp -u "$HOME/.local/share/PrismLauncher/instances/26.3/minecraft/shaderpacks/Revelation-dev.zip" "atlas/root/servers/SurviePote-26.3/files/shaderpacks/" 2>/dev/null || true cp -u "$HOME/.local/share/PrismLauncher/instances/26.3/minecraft/shaderpacks/Revelation-dev.zip" "atlas/root/servers/SurviePote-26.3/files/shaderpacks/" 2>/dev/null || true
echo "== mod maison nosingleplayer (build si besoin) ==" echo "== mod maison nosingleplayer (build si besoin) =="
if [ ! -f mods/nosingleplayer/build/libs/nosingleplayer-1.1.1.jar ]; then if [ ! -f mods/nosingleplayer/build/libs/nosingleplayer-1.1.2.jar ]; then
(cd mods/nosingleplayer && ./gradlew build 2>&1 | tail -n 2) || echo "BUILD nosingleplayer échoué (réseau/gradle requis)" (cd mods/nosingleplayer && ./gradlew build 2>&1 | tail -n 2) || echo "BUILD nosingleplayer échoué (réseau/gradle requis)"
fi fi
cp -u mods/nosingleplayer/build/libs/nosingleplayer-1.1.1.jar "$ATLAS_MODS/" 2>/dev/null || true cp -u mods/nosingleplayer/build/libs/nosingleplayer-1.1.2.jar "$ATLAS_MODS/" 2>/dev/null || true
# Note : environment=client (menu titre), inutile côté serveur. # Note : environment=client (menu titre), inutile côté serveur.
echo "== regen distribution.json ==" echo "== regen distribution.json =="