Scaffold NeoForge port
Some checks failed
Build / build (push) Failing after 13s

This commit is contained in:
MrSphay
2026-05-04 12:09:37 +02:00
parent 0b99b2130a
commit dcd08a876e
559 changed files with 19697 additions and 0 deletions

View File

@@ -0,0 +1,145 @@
/*
* Decompiled with CFR 0.152.
*/
package com.vinlanx.explosionoverhaul.client;
import com.mojang.blaze3d.systems.RenderSystem;
import com.vinlanx.explosionoverhaul.ExplosionOverhaul;
import com.vinlanx.explosionoverhaul.ModSounds;
import com.vinlanx.explosionoverhaul.client.GuideSlidesScreen;
import com.vinlanx.explosionoverhaul.client.SpriteSheetAnimator;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.client.resources.sounds.SimpleSoundInstance;
import net.minecraft.client.resources.sounds.SoundInstance;
import net.minecraft.client.sounds.SoundManager;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
public class VinlanxSplashScreen
extends Screen {
private static final ResourceLocation SPRITE_SHEET = ResourceLocation.fromNamespaceAndPath((String)"explosionoverhaul", (String)"intro_gui/vinlanx_screen.png");
private static final int FRAME_WIDTH = 1280;
private static final int FRAME_HEIGHT = 720;
private static final int COLUMNS = 12;
private static final int ROWS = 12;
private static final int TOTAL_FRAMES = 126;
private static final int FPS = 24;
private SpriteSheetAnimator animator;
private boolean animationFinished = false;
private long lastFrameTime = System.currentTimeMillis();
private SimpleSoundInstance boomSoundInstance;
public VinlanxSplashScreen() {
super((Component)Component.m_237113_((String)"Vinlanx Intro"));
}
protected void m_7856_() {
super.m_7856_();
this.animator = new SpriteSheetAnimator(SPRITE_SHEET, 1280, 720, 12, 12, 126, 24);
this.animator.load();
this.animator.play();
try {
SoundManager soundManager = Minecraft.m_91087_().m_91106_();
this.boomSoundInstance = SimpleSoundInstance.m_119755_((SoundEvent)((SoundEvent)ModSounds.INTRO_BOOM_2.get()), (float)1.0f, (float)1.0f);
soundManager.m_120367_((SoundInstance)this.boomSoundInstance);
}
catch (Exception e) {
ExplosionOverhaul.LOGGER.warn("Failed to play intro_boom_2: {}", (Object)e.toString());
}
}
public void m_86600_() {
super.m_86600_();
long currentTime = System.currentTimeMillis();
float deltaTime = (float)(currentTime - this.lastFrameTime) / 1000.0f;
this.lastFrameTime = currentTime;
if (this.animator != null) {
this.animator.tick(deltaTime);
if (!this.animationFinished && this.animator.getCurrentFrame() >= 125) {
this.animationFinished = true;
this.transitionToFirstTimeScreen();
}
}
}
public void m_88315_(GuiGraphics graphics, int mouseX, int mouseY, float partialTick) {
int displayWidth;
int displayHeight;
graphics.m_280509_(0, 0, this.f_96543_, this.f_96544_, -16777216);
if (this.animator == null) {
return;
}
ResourceLocation texture = this.animator.getTextureLocation();
if (texture == null) {
return;
}
float screenAspectRatio = (float)this.f_96543_ / (float)this.f_96544_;
float targetAspectRatio = 1.7777778f;
if (screenAspectRatio > targetAspectRatio) {
displayHeight = this.f_96544_;
displayWidth = (int)((float)displayHeight * targetAspectRatio);
} else {
displayWidth = this.f_96543_;
displayHeight = (int)((float)displayWidth / targetAspectRatio);
}
int x = (this.f_96543_ - displayWidth) / 2;
int y = (this.f_96544_ - displayHeight) / 2;
RenderSystem.setShader(GameRenderer::m_172817_);
RenderSystem.setShaderTexture((int)0, (ResourceLocation)texture);
RenderSystem.setShaderColor((float)1.0f, (float)1.0f, (float)1.0f, (float)1.0f);
RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc();
graphics.m_280411_(texture, x, y, displayWidth, displayHeight, 0.0f, 0.0f, 1280, 720, 1280, 720);
RenderSystem.disableBlend();
}
public boolean m_6913_() {
return true;
}
public boolean m_7933_(int keyCode, int scanCode, int modifiers) {
if (keyCode == 256) {
this.skipToNext();
return true;
}
return super.m_7933_(keyCode, scanCode, modifiers);
}
public boolean m_6375_(double mouseX, double mouseY, int button) {
this.skipToNext();
return true;
}
public boolean m_7043_() {
return false;
}
public void m_7861_() {
super.m_7861_();
if (this.animator != null) {
this.animator.close();
}
if (this.boomSoundInstance != null) {
try {
Minecraft.m_91087_().m_91106_().m_120399_((SoundInstance)this.boomSoundInstance);
}
catch (Exception e) {
ExplosionOverhaul.LOGGER.warn("Failed to stop intro_boom_2: {}", (Object)e.toString());
}
}
}
private void skipToNext() {
this.animationFinished = true;
this.transitionToFirstTimeScreen();
}
private void transitionToFirstTimeScreen() {
Minecraft mc = Minecraft.m_91087_();
mc.m_91152_((Screen)new GuideSlidesScreen());
}
}