Compare commits

...

4 Commits
1.18 ... 1.19.4

Author SHA1 Message Date
Jill 6c71aa8668
updated changelog 2023-03-28 20:29:34 +03:00
Jill 551e06f092
1.19.4 port
Co-authored-by: Pqtato <jay@pqtato.pw>
2023-03-28 20:21:41 +03:00
Jill 720ced2e96 add translations by MIPOHBOPOHIH 2022-11-11 15:04:22 +03:00
Jill a154072f03 quick 1.19.2 port 2022-11-10 14:22:53 +03:00
8 changed files with 111 additions and 112 deletions

View File

@ -1 +1,2 @@
Initial release - Ported to 1.19.4 (thanks, [Pqtato](https://pqtato.neocities.org/)!)
- Mod Menu is no longer a strictly required dependency

View File

@ -16,7 +16,8 @@ repositories {
// See https://docs.gradle.org/current/userguide/declaring_repositories.html // See https://docs.gradle.org/current/userguide/declaring_repositories.html
// for more information about repositories. // for more information about repositories.
maven { url = "https://api.modrinth.com/maven" } // LazyDFU, Suggestion Tweaker // no longer needed, see dependencies below
// maven { url = "https://api.modrinth.com/maven" } // LazyDFU, Suggestion Tweaker
maven { url = "https://maven.terraformersmc.com" } // Mod Menu maven { url = "https://maven.terraformersmc.com" } // Mod Menu
maven { url = "https://maven.shedaniel.me/" } // Cloth Config maven { url = "https://maven.shedaniel.me/" } // Cloth Config
} }
@ -30,9 +31,11 @@ dependencies {
// Fabric API. This is technically optional, but you probably want it anyway. // Fabric API. This is technically optional, but you probably want it anyway.
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modLocalRuntime("maven.modrinth:lazydfu:0.1.2") // lazydfu - improves start times // lazydfu is no longer needed on 1.19.4+
//modLocalRuntime("maven.modrinth:lazydfu:0.1.2") // lazydfu - improves start times
//modLocalRuntime("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}") { exclude(group: "net.fabricmc.fabric-api") } // required for suggestion tweaker //modLocalRuntime("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}") { exclude(group: "net.fabricmc.fabric-api") } // required for suggestion tweaker
modLocalRuntime("maven.modrinth:suggestion-tweaker:${project.suggestion_tweaker_version}") // suggestion tweaker - dev QOL, improves command suggestions // does not function on 1.19.2
//modLocalRuntime("maven.modrinth:suggestion-tweaker:${project.suggestion_tweaker_version}") // suggestion tweaker - dev QOL, improves command suggestions
modApi("com.terraformersmc:modmenu:${project.modmenu_version}") modApi("com.terraformersmc:modmenu:${project.modmenu_version}")

View File

@ -3,24 +3,24 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/develop # check these on https://fabricmc.net/develop
minecraft_version=1.18.2 minecraft_version=1.19.4
accepted_minecraft_version=1.18,1.18.1,1.18.2 accepted_minecraft_version=1.19.4
yarn_mappings=1.18.2+build.4 yarn_mappings=1.19.4+build.1
loader_version=0.14.10 loader_version=0.14.18
# Mod Properties # Mod Properties
mod_version = 1.0+1.18 mod_version = 1.2+1.19.4
mod_version_friendly = 1.0 for 1.18.2 mod_version_friendly = 1.2 for 1.19.4
maven_group = zone.oat maven_group = zone.oat
archives_base_name = gmod-title-screen archives_base_name = gmod-title-screen
# Dependencies # Dependencies
fabric_version=0.66.0+1.18.2 fabric_version=0.76.0+1.19.4
# https://modrinth.com/mod/modmenu # https://modrinth.com/mod/modmenu
modmenu_version=3.2.3 modmenu_version=6.1.0-rc.4
# Dev environment # Dev environment
# https://modrinth.com/mod/suggestion-tweaker # https://modrinth.com/mod/suggestion-tweaker
suggestion_tweaker_version = 1.18.x-1.2.0 #suggestion_tweaker_version = 1.19.1-1.3.1
# https://modrinth.com/mod/cloth-config # https://modrinth.com/mod/cloth-config
cloth_config_version = 6.3.81 cloth_config_version = 10.0.96

View File

@ -3,32 +3,17 @@ package zone.oat.gmodtitlescreen;
import net.fabricmc.api.EnvType; import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment; import net.fabricmc.api.Environment;
import net.minecraft.client.font.TextRenderer; import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.gui.tooltip.Tooltip;
import net.minecraft.client.gui.screen.narration.NarrationPart;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.widget.PressableTextWidget; import net.minecraft.client.gui.widget.PressableTextWidget;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text; import net.minecraft.text.Text;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class PressableTextWithTooltipWidget extends PressableTextWidget { public class PressableTextWithTooltipWidget extends PressableTextWidget {
protected final ButtonWidget.TooltipSupplier tooltipSupplier; protected final Tooltip tooltip;
public PressableTextWithTooltipWidget(int x, int y, int width, int height, Text text, ButtonWidget.PressAction onPress, TextRenderer textRenderer, ButtonWidget.TooltipSupplier tooltipSupplier) { public PressableTextWithTooltipWidget(int x, int y, int width, int height, Text text, PressAction onPress, TextRenderer textRenderer, Tooltip tooltip) {
super(x, y, width, height, text, onPress, textRenderer); super(x, y, width, height, text, onPress, textRenderer);
this.tooltipSupplier = tooltipSupplier; this.tooltip = tooltip;
} setTooltip(tooltip);
@Override
public void renderTooltip(MatrixStack matrices, int mouseX, int mouseY) {
super.renderTooltip(matrices, mouseX, mouseY);
this.tooltipSupplier.onTooltip(this, matrices, mouseX, mouseY);
}
@Override
public void appendNarrations(NarrationMessageBuilder builder) {
super.appendNarrations(builder);
this.appendDefaultNarrations(builder);
this.tooltipSupplier.supply(text -> builder.put(NarrationPart.HINT, text));
} }
} }

View File

@ -9,12 +9,14 @@ import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.SharedConstants; import net.minecraft.SharedConstants;
import net.minecraft.client.font.TextRenderer; import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.gui.DrawableHelper;
import net.minecraft.client.gui.screen.*; import net.minecraft.client.gui.screen.ConfirmLinkScreen;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen;
import net.minecraft.client.gui.screen.option.AccessibilityOptionsScreen; import net.minecraft.client.gui.screen.option.AccessibilityOptionsScreen;
import net.minecraft.client.gui.screen.option.LanguageOptionsScreen; import net.minecraft.client.gui.screen.option.LanguageOptionsScreen;
import net.minecraft.client.gui.screen.option.OptionsScreen; import net.minecraft.client.gui.screen.option.OptionsScreen;
import net.minecraft.client.gui.screen.world.SelectWorldScreen; import net.minecraft.client.gui.screen.world.SelectWorldScreen;
import net.minecraft.client.gui.tooltip.Tooltip;
import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.client.gui.widget.PressableTextWidget; import net.minecraft.client.gui.widget.PressableTextWidget;
import net.minecraft.client.gui.widget.TexturedButtonWidget; import net.minecraft.client.gui.widget.TexturedButtonWidget;
@ -22,13 +24,11 @@ import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.texture.TextureManager; import net.minecraft.client.texture.TextureManager;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.text.Text; import net.minecraft.text.Text;
import net.minecraft.text.TranslatableText;
import net.minecraft.util.Formatting; import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.Util; import net.minecraft.util.Util;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec2f; import net.minecraft.util.math.RotationAxis;
import net.minecraft.util.math.Vec3f;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import zone.oat.gmodtitlescreen.Mod; import zone.oat.gmodtitlescreen.Mod;
import zone.oat.gmodtitlescreen.ModIdentifier; import zone.oat.gmodtitlescreen.ModIdentifier;
@ -37,11 +37,10 @@ import zone.oat.gmodtitlescreen.PressableTextWithTooltipWidget;
import java.util.Random; import java.util.Random;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.function.Consumer;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class CustomTitleScreen extends Screen { public class CustomTitleScreen extends Screen {
public static final Text VERSION_TEXT = new TranslatableText("menu.gmod-title-screen.version", SharedConstants.getGameVersion().getName(), FabricLoader.getInstance().getModContainer("gmod-title-screen").get().getMetadata().getVersion().getFriendlyString()); public static final Text VERSION_TEXT = Text.translatable("menu.gmod-title-screen.version", SharedConstants.getGameVersion().getName(), FabricLoader.getInstance().getModContainer("gmod-title-screen").get().getMetadata().getVersion().getFriendlyString());
private static final Identifier ACCESSIBILITY_ICON_TEXTURE = new Identifier("textures/gui/accessibility.png"); private static final Identifier ACCESSIBILITY_ICON_TEXTURE = new Identifier("textures/gui/accessibility.png");
private final boolean isMinceraft; private final boolean isMinceraft;
@Nullable @Nullable
@ -52,30 +51,6 @@ public class CustomTitleScreen extends Screen {
private PressableTextWidget version; private PressableTextWidget version;
private class DisabledTooltipSupplier implements ButtonWidget.TooltipSupplier {
private final Text tooltip;
public DisabledTooltipSupplier(Text tooltip) {
this.tooltip = tooltip;
}
@Override
public void onTooltip(ButtonWidget button, MatrixStack matrices, int i, int j) {
if (!button.active) {
CustomTitleScreen.this.renderOrderedTooltip(
matrices,
CustomTitleScreen.this.client.textRenderer.wrapLines(this.tooltip, Math.max(CustomTitleScreen.this.width / 2 - 43, 170)),
i, j
);
}
}
@Override
public void supply(Consumer<Text> consumer) {
consumer.accept(this.tooltip);
}
}
private class SmallPressableTextWidget extends PressableTextWidget { private class SmallPressableTextWidget extends PressableTextWidget {
public SmallPressableTextWidget(int x, int y, int width, int height, Text text, PressAction onPress, TextRenderer textRenderer) { public SmallPressableTextWidget(int x, int y, int width, int height, Text text, PressAction onPress, TextRenderer textRenderer) {
super(x, y, width, height, text, onPress, textRenderer); super(x, y, width, height, text, onPress, textRenderer);
@ -97,9 +72,9 @@ public class CustomTitleScreen extends Screen {
int padding = 3; int padding = 3;
RenderSystem.disableBlend(); RenderSystem.disableBlend();
RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShader(GameRenderer::getPositionTexProgram);
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
DrawableHelper.fill(matrices, version.x - padding, version.y - padding, version.x + version.getWidth() + padding * 2, version.y + version.getHeight() + padding * 2, 0xFF111111); DrawableHelper.fill(matrices, version.getX() - padding, version.getY() - padding, version.getX() + version.getWidth() + padding * 2, version.getY() + version.getHeight() + padding * 2, 0xFF111111);
super.renderButton(matrices, mouseX, mouseY, delta); super.renderButton(matrices, mouseX, mouseY, delta);
@ -112,7 +87,7 @@ public class CustomTitleScreen extends Screen {
} }
private void openLink(String url) { private void openLink(String url) {
this.client.setScreen(new ConfirmChatLinkScreen(openInBrowser -> { this.client.setScreen(new ConfirmLinkScreen(openInBrowser -> {
if (openInBrowser) { if (openInBrowser) {
Util.getOperatingSystem().open(url); Util.getOperatingSystem().open(url);
} }
@ -122,7 +97,7 @@ public class CustomTitleScreen extends Screen {
} }
public CustomTitleScreen() { public CustomTitleScreen() {
super(new TranslatableText("narrator.screen.title")); super(Text.translatable("narrator.screen.title"));
this.isMinceraft = (double)new Random().nextFloat() < 1.0E-4; this.isMinceraft = (double)new Random().nextFloat() < 1.0E-4;
} }
@ -189,46 +164,59 @@ public class CustomTitleScreen extends Screen {
int buttonSectionSpacing = 6; int buttonSectionSpacing = 6;
this.addDrawableChild(new PressableTextWidget( this.addDrawableChild(new PressableTextWidget(
buttonsX, buttonsX,
buttonsY, buttonsY,
130, 130,
buttonHeight, buttonHeight,
new TranslatableText("menu.gmod-title-screen.singleplayer"), Text.translatable("menu.gmod-title-screen.singleplayer"),
button -> this.client.setScreen(new SelectWorldScreen(this)), button -> this.client.setScreen(new SelectWorldScreen(this)),
this.textRenderer this.textRenderer
)); ));
this.addDrawableChild(new PressableTextWidget( this.addDrawableChild(new PressableTextWidget(
buttonsX, buttonsX,
buttonsY + buttonSpacing * 1, buttonsY + buttonSpacing * 1,
130, 130,
buttonHeight, buttonHeight,
new TranslatableText("menu.gmod-title-screen.multiplayer"), Text.translatable("menu.gmod-title-screen.multiplayer"),
button -> { button -> {
this.client.setScreen(new MultiplayerScreen(this)); this.client.setScreen(new MultiplayerScreen(this));
}, },
this.textRenderer this.textRenderer
)); ));
boolean modsButtonActive = FabricLoader.getInstance().isModLoaded("modmenu"); boolean modsButtonActive = FabricLoader.getInstance().isModLoaded("modmenu");
var modsButton = this.addDrawableChild(new PressableTextWithTooltipWidget( if (modsButtonActive) {
buttonsX, var modsButton = this.addDrawableChild(new PressableTextWidget(
buttonsY + buttonSpacing * 2 + buttonSectionSpacing, buttonsX,
98, buttonsY + buttonSpacing * 2 + buttonSectionSpacing,
buttonHeight, 98,
new TranslatableText("menu.gmod-title-screen.modmenu").formatted(modsButtonActive ? Formatting.RESET : Formatting.GRAY), buttonHeight,
button -> this.client.setScreen(new ModsScreen(this)), Text.translatable("menu.gmod-title-screen.modmenu"),
textRenderer, button -> this.client.setScreen(new ModsScreen(this)),
new DisabledTooltipSupplier(new TranslatableText("menu.gmod-title-screen.modmenu.not-installed")) textRenderer
)); ));
modsButton.active = modsButtonActive; modsButton.active = true;
} else {
var modsButton = this.addDrawableChild(new PressableTextWithTooltipWidget(
buttonsX,
buttonsY + buttonSpacing * 2 + buttonSectionSpacing,
98,
buttonHeight,
Text.translatable("menu.gmod-title-screen.modmenu").formatted(Formatting.GRAY),
button -> {},
textRenderer,
Tooltip.of(Text.translatable("menu.gmod-title-screen.modmenu.not-installed"), Text.translatable("menu.gmod-title-screen.modmenu.not-installed"))
));
modsButton.active = false;
}
this.addDrawableChild(new PressableTextWidget( this.addDrawableChild(new PressableTextWidget(
buttonsX, buttonsX,
buttonsY + buttonSpacing * 3 + buttonSectionSpacing, buttonsY + buttonSpacing * 3 + buttonSectionSpacing,
98, 98,
buttonHeight, buttonHeight,
new TranslatableText("menu.gmod-title-screen.dupes").formatted(Formatting.GRAY), Text.translatable("menu.gmod-title-screen.dupes").formatted(Formatting.GRAY),
button -> {}, button -> {},
textRenderer textRenderer
)).active = false; )).active = false;
@ -237,7 +225,7 @@ public class CustomTitleScreen extends Screen {
buttonsY + buttonSpacing * 4 + buttonSectionSpacing, buttonsY + buttonSpacing * 4 + buttonSectionSpacing,
98, 98,
buttonHeight, buttonHeight,
new TranslatableText("menu.gmod-title-screen.demos").formatted(Formatting.GRAY), Text.translatable("menu.gmod-title-screen.demos").formatted(Formatting.GRAY),
button -> {}, button -> {},
textRenderer textRenderer
)).active = false; )).active = false;
@ -246,7 +234,7 @@ public class CustomTitleScreen extends Screen {
buttonsY + buttonSpacing * 5 + buttonSectionSpacing, buttonsY + buttonSpacing * 5 + buttonSectionSpacing,
98, 98,
buttonHeight, buttonHeight,
new TranslatableText("menu.gmod-title-screen.saves").formatted(Formatting.GRAY), Text.translatable("menu.gmod-title-screen.saves").formatted(Formatting.GRAY),
button -> {}, button -> {},
textRenderer textRenderer
)).active = false; )).active = false;
@ -256,7 +244,7 @@ public class CustomTitleScreen extends Screen {
buttonsY + buttonSpacing * 6 + buttonSectionSpacing * 2, buttonsY + buttonSpacing * 6 + buttonSectionSpacing * 2,
98, 98,
buttonHeight, buttonHeight,
new TranslatableText("menu.gmod-title-screen.options"), Text.translatable("menu.gmod-title-screen.options"),
button -> this.client.setScreen(new OptionsScreen(this, this.client.options)), button -> this.client.setScreen(new OptionsScreen(this, this.client.options)),
textRenderer textRenderer
)); ));
@ -266,7 +254,7 @@ public class CustomTitleScreen extends Screen {
buttonsY + buttonSpacing * 7 + buttonSectionSpacing * 3, buttonsY + buttonSpacing * 7 + buttonSectionSpacing * 3,
98, 98,
buttonHeight, buttonHeight,
new TranslatableText("menu.gmod-title-screen.quit"), Text.translatable("menu.gmod-title-screen.quit"),
button -> this.client.scheduleStop(), button -> this.client.scheduleStop(),
textRenderer textRenderer
)); ));
@ -284,7 +272,7 @@ public class CustomTitleScreen extends Screen {
256, 256,
256, 256,
button -> this.client.setScreen(new LanguageOptionsScreen(this, this.client.options, this.client.getLanguageManager())), button -> this.client.setScreen(new LanguageOptionsScreen(this, this.client.options, this.client.getLanguageManager())),
new TranslatableText("narrator.button.language") Text.translatable("narrator.button.language")
) )
); );
this.addDrawableChild(new TexturedButtonWidget( this.addDrawableChild(new TexturedButtonWidget(
@ -299,7 +287,7 @@ public class CustomTitleScreen extends Screen {
32, 32,
64, 64,
button -> this.client.setScreen(new AccessibilityOptionsScreen(this, this.client.options)), button -> this.client.setScreen(new AccessibilityOptionsScreen(this, this.client.options)),
new TranslatableText("narrator.button.accessibility") Text.translatable("narrator.button.accessibility")
)); ));
version = this.addDrawableChild( version = this.addDrawableChild(
@ -318,21 +306,21 @@ public class CustomTitleScreen extends Screen {
SlideshowBackground.render(matrices, delta, this.width, this.height); SlideshowBackground.render(matrices, delta, this.width, this.height);
RenderSystem.disableBlend(); RenderSystem.disableBlend();
RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShader(GameRenderer::getPositionTexProgram);
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
int gradientWidth = (int)(this.width * 0.7); int gradientWidth = (int)(this.width * 0.7);
matrices.push(); matrices.push();
matrices.translate(gradientWidth/2f, this.height/2f, 0); matrices.translate(gradientWidth/2f, this.height/2f, 0);
matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(-90f)); matrices.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(-90f));
DrawableHelper.fillGradient(matrices, -(int)Math.floor(this.height/2f), -(int)Math.floor(gradientWidth/2f) - 1, (int)Math.ceil(this.height/2f), (int)Math.ceil(gradientWidth/2f), 0x7b000000, 0x00000000, 0); DrawableHelper.fillGradient(matrices, -(int)Math.floor(this.height/2f), -(int)Math.floor(gradientWidth/2f) - 1, (int)Math.ceil(this.height/2f), (int)Math.ceil(gradientWidth/2f), 0x7b000000, 0x00000000, 0);
matrices.pop(); matrices.pop();
DrawableHelper.fill(matrices, 0, this.height - 24, this.width, this.height, 0x70111111); DrawableHelper.fill(matrices, 0, this.height - 24, this.width, this.height, 0x70111111);
if (Mod.config.showGModLogo) { if (Mod.config.showGModLogo) {
RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShader(GameRenderer::getPositionTexProgram);
//RenderSystem.defaultBlendFunc(); //RenderSystem.defaultBlendFunc();
RenderSystem.enableBlend(); RenderSystem.enableBlend();
RenderSystem.blendFunc(GlStateManager.SrcFactor.ONE, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA); RenderSystem.blendFunc(GlStateManager.SrcFactor.ONE, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA);
@ -344,7 +332,7 @@ public class CustomTitleScreen extends Screen {
RenderSystem.disableBlend(); RenderSystem.disableBlend();
RenderSystem.defaultBlendFunc(); RenderSystem.defaultBlendFunc();
} else { } else {
RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShader(GameRenderer::getPositionTexProgram);
RenderSystem.setShaderTexture(0, MINECRAFT_TITLE_TEXTURE); RenderSystem.setShaderTexture(0, MINECRAFT_TITLE_TEXTURE);
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
if (this.isMinceraft) { if (this.isMinceraft) {
@ -371,11 +359,11 @@ public class CustomTitleScreen extends Screen {
if (this.splashText != null && Mod.config.showSplashText) { if (this.splashText != null && Mod.config.showSplashText) {
matrices.push(); matrices.push();
matrices.translate(getSplashTextX(), logoY + getLogoHeight() - 10, 0.0); matrices.translate(getSplashTextX(), logoY + getLogoHeight() - 10, 0.0);
matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(-20.0F)); matrices.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(-20.0F));
float h = 1.8F - MathHelper.abs(MathHelper.sin((float)(Util.getMeasuringTimeMs() % 1000L) / 1000.0F * (float) (Math.PI * 2)) * 0.1F); float h = 1.8F - MathHelper.abs(MathHelper.sin((float)(Util.getMeasuringTimeMs() % 1000L) / 1000.0F * (float) (Math.PI * 2)) * 0.1F);
h = h * 100.0F / (float)(this.textRenderer.getWidth(this.splashText) + 32); h = h * 100.0F / (float)(this.textRenderer.getWidth(this.splashText) + 32);
matrices.scale(h, h, h); matrices.scale(h, h, h);
drawCenteredText(matrices, this.textRenderer, this.splashText, 0, -8, 16776960); drawCenteredTextWithShadow(matrices, this.textRenderer, this.splashText, 0, -8, 16776960);
matrices.pop(); matrices.pop();
} }

View File

@ -10,7 +10,7 @@ import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.client.util.math.Vector2f; import net.minecraft.client.util.math.Vector2f;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3f; import net.minecraft.util.math.RotationAxis;
import zone.oat.gmodtitlescreen.ModIdentifier; import zone.oat.gmodtitlescreen.ModIdentifier;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@ -60,7 +60,7 @@ public class SlideshowBackground {
float baseScale = Math.max(width / (float) backgroundSize[0], height / (float) backgroundSize[1]); float baseScale = Math.max(width / (float) backgroundSize[0], height / (float) backgroundSize[1]);
Vector2f overscan = new Vector2f(backgroundSize[0] * baseScale - width, backgroundSize[1] * baseScale - height); Vector2f overscan = new Vector2f(backgroundSize[0] * baseScale - width, backgroundSize[1] * baseScale - height);
RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShader(GameRenderer::getPositionTexProgram);
RenderSystem.setShaderTexture(0, bg); RenderSystem.setShaderTexture(0, bg);
RenderSystem.enableBlend(); RenderSystem.enableBlend();
RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA); RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA);
@ -71,7 +71,7 @@ public class SlideshowBackground {
matrices.translate(width / 2f, height / 2f, 0f); matrices.translate(width / 2f, height / 2f, 0f);
matrices.scale(scale, scale, 1f); matrices.scale(scale, scale, 1f);
matrices.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion(angle)); matrices.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(angle));
drawTexture( drawTexture(
matrices, matrices,
(int) Math.floor(-overscan.getX()/2f - width/2f), (int) Math.floor(-overscan.getX()/2f - width/2f),

View File

@ -0,0 +1,22 @@
{
"menu.gmod-title-screen.singleplayer": "Начать новую игру",
"menu.gmod-title-screen.multiplayer": "Сетевая игра",
"menu.gmod-title-screen.options": "Настройки",
"menu.gmod-title-screen.modmenu": "Аддоны",
"menu.gmod-title-screen.modmenu.not-installed": "Скачайте мод меню, чтобы использовать это!",
"menu.gmod-title-screen.dupes": "Дюпы",
"menu.gmod-title-screen.demos": "Демо",
"menu.gmod-title-screen.saves": "Сохранения",
"menu.gmod-title-screen.quit": "Выйти",
"menu.gmod-title-screen.version": "Сейчас вы используете minecraft-%s branch. Нажмите сюда, чтобы узнать большее. ( %s )",
"title.gmod-title-screen.config": "GMod Title Screen Конфиг",
"category.gmod-title-screen.general": "Основные",
"text.autoconfig.gmod-title-screen.title": "GMod Title Screen Конфиг",
"text.autoconfig.gmod-title-screen.option.showGModLogo": "Показывать GMod логотип",
"text.autoconfig.gmod-title-screen.option.showSplashText": "Показывать сплеши",
"text.autoconfig.gmod-title-screen.option.showGModLogo.@Tooltip[0]": "Показывать иконку GMod вместо иконки Minecraft",
"text.autoconfig.gmod-title-screen.option.showGModLogo.@Tooltip[1]": "сделайте это более интересным"
}

View File

@ -32,7 +32,7 @@
"depends": { "depends": {
"fabricloader": ">=0.14.6", "fabricloader": ">=0.14.6",
"fabric": "*", "fabric": "*",
"minecraft": "~1.18.2", "minecraft": ["1.19.4"],
"java": ">=17", "java": ">=17",
"cloth-config": ">=6.0.0" "cloth-config": ">=6.0.0"
}, },