Compare commits
4 Commits
Author | SHA1 | Date |
---|---|---|
Jill | 6c71aa8668 | |
Jill | 551e06f092 | |
Jill | 720ced2e96 | |
Jill | a154072f03 |
|
@ -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
|
||||||
|
|
|
@ -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}")
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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),
|
||||||
|
|
|
@ -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]": "сделайте это более интересным"
|
||||||
|
}
|
|
@ -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"
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue