mirror of
https://github.com/PuzzleMC/Puzzle.git
synced 2025-12-15 19:35:10 +01:00
Puzzle 1.6.0 - 1.20.2 & Stability improvements
- Port to 1.20.2 - Improve stability by skipping outdated compat entries - Update EMF integration
This commit is contained in:
@@ -3,38 +3,37 @@ org.gradle.jvmargs=-Xmx4G
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check these on https://fabricmc.net/use
|
# check these on https://fabricmc.net/use
|
||||||
minecraft_version=1.20
|
minecraft_version=1.20.2
|
||||||
yarn_mappings=1.20+build.1
|
yarn_mappings=1.20.2+build.1
|
||||||
loader_version=0.14.21
|
loader_version=0.14.22
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 1.5.2+1.20
|
mod_version = 1.6.0+1.20.2
|
||||||
maven_group = net.puzzlemc
|
maven_group = net.puzzlemc
|
||||||
archives_base_name = puzzle
|
archives_base_name = puzzle
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
|
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
|
||||||
fabric_version=0.83.0+1.20
|
fabric_version=0.89.2+1.20.2
|
||||||
mod_menu_version = 7.0.1
|
mod_menu_version = 7.0.1
|
||||||
midnightlib_version = 1.4.1-fabric
|
midnightlib_version = 1.5.0-fabric
|
||||||
|
|
||||||
cull_leaves_version = 3.0.2-fabric
|
cull_leaves_version = 3.0.2-fabric
|
||||||
ldl_version = 2.3.0+1.19.4
|
ldl_version = 2.3.2+1.20.1
|
||||||
lbg_version = 1.5.1+1.20
|
lbg_version = 1.5.2+1.20.1
|
||||||
iris_version = 1.6.4+1.20
|
iris_version = 1.6.9+1.20.2
|
||||||
continuity_version = 3.0.0-beta.2+1.19.3
|
continuity_version = 3.0.0-beta.3+1.20.1
|
||||||
animatica_version = 0.5+1.19
|
animatica_version = 0.6+1.20
|
||||||
colormatic_version = 3.1.2
|
colormatic_version = 3.1.2
|
||||||
borderless_mining_version = 1.1.7+1.19.4
|
borderless_mining_version = 1.1.8+1.20.1
|
||||||
dynamic_fps_version = v2.2.0
|
dynamic_fps_version = 3.2.0
|
||||||
toml4j_version = 0.7.2
|
toml4j_version = 0.7.2
|
||||||
cit_resewn_version = 1.1.3+1.20
|
cit_resewn_version = 1.1.3+1.20
|
||||||
cem_version = 0.7.1-1.19.3
|
|
||||||
complete_config_version = 2.3.0
|
complete_config_version = 2.3.0
|
||||||
spruceui_version=5.0.0+1.20
|
spruceui_version=5.0.0+1.20
|
||||||
emf_version=0.2.10
|
emf_version=1.0.2
|
||||||
etf_version=4.4.4
|
etf_version=4.5.1
|
||||||
exordium_version=1.1.1-1.19.4
|
exordium_version=1.2.1-1.20.2
|
||||||
# Required for LBG
|
# Required for LBG
|
||||||
quilt_loader_version=0.19.0-beta.18
|
quilt_loader_version=0.19.0-beta.18
|
||||||
quilt_fabric_api_version=7.0.1+0.83.0-1.20
|
quilt_fabric_api_version=7.0.1+0.83.0-1.20
|
||||||
|
|||||||
@@ -43,10 +43,10 @@ dependencies {
|
|||||||
modCompileOnlyApi ("maven.modrinth:lambdabettergrass:${project.lbg_version}")
|
modCompileOnlyApi ("maven.modrinth:lambdabettergrass:${project.lbg_version}")
|
||||||
modCompileOnly "org.quiltmc:quilt-loader:${rootProject.quilt_loader_version}"
|
modCompileOnly "org.quiltmc:quilt-loader:${rootProject.quilt_loader_version}"
|
||||||
modCompileOnlyApi "org.quiltmc.quilted-fabric-api:quilted-fabric-api:${rootProject.quilt_fabric_api_version}"
|
modCompileOnlyApi "org.quiltmc.quilted-fabric-api:quilted-fabric-api:${rootProject.quilt_fabric_api_version}"
|
||||||
modImplementation ("maven.modrinth:iris:${project.iris_version}")
|
modCompileOnlyApi ("maven.modrinth:iris:${project.iris_version}")
|
||||||
modCompileOnly ("maven.modrinth:cit-resewn:${project.cit_resewn_version}")
|
modCompileOnly ("maven.modrinth:cit-resewn:${project.cit_resewn_version}")
|
||||||
modCompileOnlyApi ("maven.modrinth:continuity:${project.continuity_version}")
|
modCompileOnlyApi ("maven.modrinth:continuity:${project.continuity_version}")
|
||||||
modImplementation ("maven.modrinth:animatica:${project.animatica_version}")
|
modCompileOnlyApi ("maven.modrinth:animatica:${project.animatica_version}")
|
||||||
modCompileOnlyApi ("maven.modrinth:colormatic:${project.colormatic_version}")
|
modCompileOnlyApi ("maven.modrinth:colormatic:${project.colormatic_version}")
|
||||||
modImplementation ("maven.modrinth:borderless-mining:${project.borderless_mining_version}")
|
modImplementation ("maven.modrinth:borderless-mining:${project.borderless_mining_version}")
|
||||||
modImplementation ("maven.modrinth:dynamic-fps:${project.dynamic_fps_version}")
|
modImplementation ("maven.modrinth:dynamic-fps:${project.dynamic_fps_version}")
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
package net.puzzlemc.gui;
|
package net.puzzlemc.gui;
|
||||||
|
|
||||||
import eu.midnightdust.lib.util.MidnightColorUtil;
|
|
||||||
import net.fabricmc.loader.api.FabricLoader;
|
import net.fabricmc.loader.api.FabricLoader;
|
||||||
import net.irisshaders.iris.api.v0.IrisApi;
|
import net.irisshaders.iris.api.v0.IrisApi;
|
||||||
import net.irisshaders.iris.api.v0.IrisApiConfig;
|
import net.irisshaders.iris.api.v0.IrisApiConfig;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.text.Style;
|
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
|
import net.minecraft.util.Formatting;
|
||||||
import net.puzzlemc.gui.screen.widget.PuzzleWidget;
|
import net.puzzlemc.gui.screen.widget.PuzzleWidget;
|
||||||
|
|
||||||
public class IrisCompat {
|
public class IrisCompat {
|
||||||
@@ -18,7 +17,7 @@ public class IrisCompat {
|
|||||||
IrisApiConfig irisConfig = IrisApi.getInstance().getConfig();
|
IrisApiConfig irisConfig = IrisApi.getInstance().getConfig();
|
||||||
irisConfig.setShadersEnabledAndApply(!irisConfig.areShadersEnabled());
|
irisConfig.setShadersEnabledAndApply(!irisConfig.areShadersEnabled());
|
||||||
}));
|
}));
|
||||||
PuzzleApi.addToGraphicsOptions(new PuzzleWidget(Text.translatable("options.iris.shaderPackSelection.title"), (button) -> button.setMessage(Text.literal("➥ ").append(Text.translatable("iris.puzzle.option.open").setStyle(Style.EMPTY.withColor(MidnightColorUtil.radialRainbow(0.5f, 1).getRGB())))), (button) -> {
|
PuzzleApi.addToGraphicsOptions(new PuzzleWidget(Text.translatable("options.iris.shaderPackSelection.title"), (button) -> button.setMessage(Text.literal("➥ ").append(Text.translatable("iris.puzzle.option.open").formatted(Formatting.GOLD))), (button) -> {
|
||||||
MinecraftClient client = MinecraftClient.getInstance();
|
MinecraftClient client = MinecraftClient.getInstance();
|
||||||
client.setScreen((Screen) IrisApi.getInstance().openMainIrisScreenObj(client.currentScreen));
|
client.setScreen((Screen) IrisApi.getInstance().openMainIrisScreenObj(client.currentScreen));
|
||||||
}));
|
}));
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ import dev.lambdaurora.lambdabettergrass.LBGConfig;
|
|||||||
import dev.lambdaurora.lambdabettergrass.LambdaBetterGrass;
|
import dev.lambdaurora.lambdabettergrass.LambdaBetterGrass;
|
||||||
import dev.lambdaurora.lambdynlights.DynamicLightsConfig;
|
import dev.lambdaurora.lambdynlights.DynamicLightsConfig;
|
||||||
import dev.lambdaurora.lambdynlights.LambDynLights;
|
import dev.lambdaurora.lambdynlights.LambDynLights;
|
||||||
import dynamicfps.DynamicFPSConfig;
|
|
||||||
import dynamicfps.DynamicFPSMod;
|
|
||||||
import eu.midnightdust.core.MidnightLibClient;
|
import eu.midnightdust.core.MidnightLibClient;
|
||||||
import eu.midnightdust.cullleaves.config.CullLeavesConfig;
|
import eu.midnightdust.cullleaves.config.CullLeavesConfig;
|
||||||
import eu.midnightdust.lib.util.PlatformFunctions;
|
import eu.midnightdust.lib.util.PlatformFunctions;
|
||||||
@@ -14,6 +12,8 @@ import io.github.kvverti.colormatic.ColormaticConfigController;
|
|||||||
import link.infra.borderlessmining.config.ConfigHandler;
|
import link.infra.borderlessmining.config.ConfigHandler;
|
||||||
import me.pepperbell.continuity.client.config.ContinuityConfig;
|
import me.pepperbell.continuity.client.config.ContinuityConfig;
|
||||||
import me.pepperbell.continuity.client.config.Option;
|
import me.pepperbell.continuity.client.config.Option;
|
||||||
|
import net.minecraft.screen.ScreenTexts;
|
||||||
|
import net.minecraft.util.Identifier;
|
||||||
import net.puzzlemc.core.config.PuzzleConfig;
|
import net.puzzlemc.core.config.PuzzleConfig;
|
||||||
import net.puzzlemc.gui.screen.widget.PuzzleWidget;
|
import net.puzzlemc.gui.screen.widget.PuzzleWidget;
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
@@ -23,7 +23,6 @@ import net.minecraft.util.Formatting;
|
|||||||
import net.puzzlemc.splashscreen.PuzzleSplashScreen;
|
import net.puzzlemc.splashscreen.PuzzleSplashScreen;
|
||||||
import shcm.shsupercm.fabric.citresewn.config.CITResewnConfig;
|
import shcm.shsupercm.fabric.citresewn.config.CITResewnConfig;
|
||||||
import traben.entity_model_features.config.EMFConfig;
|
import traben.entity_model_features.config.EMFConfig;
|
||||||
import traben.entity_model_features.utils.EMFManager;
|
|
||||||
import traben.entity_texture_features.ETFApi;
|
import traben.entity_texture_features.ETFApi;
|
||||||
import traben.entity_texture_features.config.ETFConfig;
|
import traben.entity_texture_features.config.ETFConfig;
|
||||||
import io.github.kvverti.colormatic.ColormaticConfig;
|
import io.github.kvverti.colormatic.ColormaticConfig;
|
||||||
@@ -33,6 +32,7 @@ public class PuzzleClient implements ClientModInitializer {
|
|||||||
public final static String id = "puzzle";
|
public final static String id = "puzzle";
|
||||||
public static final Text YES = Text.translatable("gui.yes").formatted(Formatting.GREEN);
|
public static final Text YES = Text.translatable("gui.yes").formatted(Formatting.GREEN);
|
||||||
public static final Text NO = Text.translatable("gui.no").formatted(Formatting.RED);
|
public static final Text NO = Text.translatable("gui.no").formatted(Formatting.RED);
|
||||||
|
public static final Identifier PUZZLE_BUTTON = new Identifier(id, "icon/button");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeClient() {
|
public void onInitializeClient() {
|
||||||
@@ -109,49 +109,6 @@ public class PuzzleClient implements ClientModInitializer {
|
|||||||
catch (NumberFormatException ignored) {}
|
catch (NumberFormatException ignored) {}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
if (isActive("dynamicfps")) {
|
|
||||||
PuzzleApi.addToPerformanceOptions(new PuzzleWidget(Text.of("Dynamic FPS")));
|
|
||||||
DynamicFPSConfig fpsConfig = DynamicFPSMod.config;
|
|
||||||
PuzzleApi.addToPerformanceOptions(new PuzzleWidget(Text.translatable("config.dynamicfps.reduce_when_unfocused"), (button) -> button.setMessage(fpsConfig.reduceFPSWhenUnfocused ? YES : NO), (button) -> {
|
|
||||||
fpsConfig.reduceFPSWhenUnfocused = !fpsConfig.reduceFPSWhenUnfocused;
|
|
||||||
fpsConfig.save();
|
|
||||||
}));
|
|
||||||
PuzzleApi.addToPerformanceOptions(new PuzzleWidget(0, 60,Text.translatable("config.dynamicfps.unfocused_fps"), () -> fpsConfig.unfocusedFPS,
|
|
||||||
(button) -> button.setMessage(Text.of(fpsConfig.unfocusedFPS + " FPS")),
|
|
||||||
(slider) -> {
|
|
||||||
try {
|
|
||||||
fpsConfig.unfocusedFPS = slider.getInt();
|
|
||||||
}
|
|
||||||
catch (NumberFormatException ignored) {}
|
|
||||||
finally {fpsConfig.save();}
|
|
||||||
}));
|
|
||||||
PuzzleApi.addToPerformanceOptions(new PuzzleWidget(Text.translatable("config.dynamicfps.restore_when_hovered"), (button) -> button.setMessage(fpsConfig.restoreFPSWhenHovered ? YES : NO), (button) -> {
|
|
||||||
fpsConfig.restoreFPSWhenHovered = !fpsConfig.restoreFPSWhenHovered;
|
|
||||||
fpsConfig.save();
|
|
||||||
}));
|
|
||||||
PuzzleApi.addToPerformanceOptions(new PuzzleWidget(Text.translatable("config.dynamicfps.run_gc_on_unfocus"), (button) -> button.setMessage(fpsConfig.runGCOnUnfocus ? YES : NO), (button) -> {
|
|
||||||
fpsConfig.runGCOnUnfocus = !fpsConfig.runGCOnUnfocus;
|
|
||||||
fpsConfig.save();
|
|
||||||
}));
|
|
||||||
PuzzleApi.addToPerformanceOptions(new PuzzleWidget(0, 100,Text.translatable("config.dynamicfps.unfocused_volume"), () -> ((Number)(fpsConfig.unfocusedVolumeMultiplier * 100)).intValue(),
|
|
||||||
(button) -> button.setMessage(Text.of(((Number)(fpsConfig.unfocusedVolumeMultiplier * 100)).intValue() + "%")),
|
|
||||||
(slider) -> {
|
|
||||||
try {
|
|
||||||
fpsConfig.unfocusedVolumeMultiplier = ((Number)slider.getInt()).floatValue() / 100;
|
|
||||||
}
|
|
||||||
catch (NumberFormatException ignored) {}
|
|
||||||
finally {fpsConfig.save();}
|
|
||||||
}));
|
|
||||||
PuzzleApi.addToPerformanceOptions(new PuzzleWidget(0, 100,Text.translatable("config.dynamicfps.hidden_volume"), () -> ((Number)(fpsConfig.hiddenVolumeMultiplier * 100)).intValue(),
|
|
||||||
(button) -> button.setMessage(Text.of(((Number)(fpsConfig.hiddenVolumeMultiplier * 100)).intValue() + "%")),
|
|
||||||
(slider) -> {
|
|
||||||
try {
|
|
||||||
fpsConfig.hiddenVolumeMultiplier = ((Number)slider.getInt()).floatValue() / 100;
|
|
||||||
}
|
|
||||||
catch (NumberFormatException ignored) {}
|
|
||||||
finally {fpsConfig.save();}
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
if (isActive("borderlessmining")) {
|
if (isActive("borderlessmining")) {
|
||||||
PuzzleApi.addToMiscOptions(new PuzzleWidget(Text.of("Borderless Mining")));
|
PuzzleApi.addToMiscOptions(new PuzzleWidget(Text.of("Borderless Mining")));
|
||||||
ConfigHandler bmConfig = ConfigHandler.getInstance();
|
ConfigHandler bmConfig = ConfigHandler.getInstance();
|
||||||
@@ -229,7 +186,6 @@ public class PuzzleClient implements ClientModInitializer {
|
|||||||
Option.BooleanOption booleanOption = ((Option.BooleanOption)option);
|
Option.BooleanOption booleanOption = ((Option.BooleanOption)option);
|
||||||
PuzzleApi.addToResourceOptions(new PuzzleWidget(Text.translatable("options.continuity."+s), (button) -> button.setMessage(booleanOption.get() ? YES : NO), (button) -> {
|
PuzzleApi.addToResourceOptions(new PuzzleWidget(Text.translatable("options.continuity."+s), (button) -> button.setMessage(booleanOption.get() ? YES : NO), (button) -> {
|
||||||
booleanOption.set(!booleanOption.get());
|
booleanOption.set(!booleanOption.get());
|
||||||
contConfig.onChange();
|
|
||||||
contConfig.save();
|
contConfig.save();
|
||||||
}));
|
}));
|
||||||
} catch (Exception ignored) {}
|
} catch (Exception ignored) {}
|
||||||
@@ -263,13 +219,17 @@ public class PuzzleClient implements ClientModInitializer {
|
|||||||
if (isActive("entity_model_features")) {
|
if (isActive("entity_model_features")) {
|
||||||
PuzzleApi.addToResourceOptions(new PuzzleWidget(Text.translatable("entity_model_features.title")));
|
PuzzleApi.addToResourceOptions(new PuzzleWidget(Text.translatable("entity_model_features.title")));
|
||||||
EMFConfig emfConfig = EMFConfig.getConfig();
|
EMFConfig emfConfig = EMFConfig.getConfig();
|
||||||
PuzzleApi.addToResourceOptions(new PuzzleWidget(Text.translatable("entity_model_features.config.substitute_vanilla"), (button) -> button.setMessage(emfConfig.attemptToCopyVanillaModelIntoMissingModelPart ? YES : NO), (button) -> {
|
PuzzleApi.addToResourceOptions(new PuzzleWidget(Text.translatable("entity_model_features.config.force_models"), (button) -> button.setMessage(emfConfig.attemptRevertingEntityModelsAlteredByAnotherMod ? YES : NO), (button) -> {
|
||||||
emfConfig.attemptToCopyVanillaModelIntoMissingModelPart = !emfConfig.attemptToCopyVanillaModelIntoMissingModelPart;
|
emfConfig.attemptRevertingEntityModelsAlteredByAnotherMod = !emfConfig.attemptRevertingEntityModelsAlteredByAnotherMod;
|
||||||
EMFConfig.EMF_saveConfig();
|
EMFConfig.EMF_saveConfig();
|
||||||
if (EMFConfig.getConfig().reloadMode == EMFConfig.ModelDataRefreshMode.MANUAL) {
|
|
||||||
EMFManager.resetInstance();
|
|
||||||
}
|
|
||||||
}));
|
}));
|
||||||
|
if (PlatformFunctions.isModLoaded("physicsmod")) {
|
||||||
|
PuzzleApi.addToResourceOptions(new PuzzleWidget(Text.translatable("entity_model_features.config.physics"), (button) -> button.setMessage(emfConfig.attemptPhysicsModPatch_2 != EMFConfig.PhysicsModCompatChoice.OFF ?
|
||||||
|
Text.translatable("entity_model_features.config." + (emfConfig.attemptPhysicsModPatch_2 == EMFConfig.PhysicsModCompatChoice.VANILLA ? "physics.1" : "physics.2")) : ScreenTexts.OFF), (button) -> {
|
||||||
|
emfConfig.attemptPhysicsModPatch_2 = emfConfig.attemptPhysicsModPatch_2.next();
|
||||||
|
EMFConfig.EMF_saveConfig();
|
||||||
|
}));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
lateInitDone = true;
|
lateInitDone = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
package net.puzzlemc.gui.mixin;
|
package net.puzzlemc.gui.mixin;
|
||||||
|
|
||||||
import eu.midnightdust.core.config.MidnightLibConfig;
|
import eu.midnightdust.core.config.MidnightLibConfig;
|
||||||
import eu.midnightdust.lib.util.screen.TexturedOverlayButtonWidget;
|
|
||||||
import net.fabricmc.loader.api.FabricLoader;
|
import net.fabricmc.loader.api.FabricLoader;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.client.gui.widget.TextIconButtonWidget;
|
||||||
import net.puzzlemc.core.config.PuzzleConfig;
|
import net.puzzlemc.core.config.PuzzleConfig;
|
||||||
import net.puzzlemc.gui.PuzzleClient;
|
import net.puzzlemc.gui.PuzzleClient;
|
||||||
import net.puzzlemc.gui.screen.PuzzleOptionsScreen;
|
import net.puzzlemc.gui.screen.PuzzleOptionsScreen;
|
||||||
@@ -19,8 +18,6 @@ import java.util.Objects;
|
|||||||
|
|
||||||
@Mixin(OptionsScreen.class)
|
@Mixin(OptionsScreen.class)
|
||||||
public abstract class MixinOptionsScreen extends Screen {
|
public abstract class MixinOptionsScreen extends Screen {
|
||||||
private static final Identifier PUZZLE_ICON_TEXTURE = new Identifier(PuzzleClient.id, "textures/gui/puzzle_button.png");
|
|
||||||
|
|
||||||
protected MixinOptionsScreen(Text title) {
|
protected MixinOptionsScreen(Text title) {
|
||||||
super(title);
|
super(title);
|
||||||
}
|
}
|
||||||
@@ -31,7 +28,9 @@ public abstract class MixinOptionsScreen extends Screen {
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
if (FabricLoader.getInstance().isModLoaded("lod")) i = i + 358;
|
if (FabricLoader.getInstance().isModLoaded("lod")) i = i + 358;
|
||||||
if (MidnightLibConfig.config_screen_list.equals(MidnightLibConfig.ConfigButton.FALSE)) i = i - 25;
|
if (MidnightLibConfig.config_screen_list.equals(MidnightLibConfig.ConfigButton.FALSE)) i = i - 25;
|
||||||
this.addDrawableChild(new TexturedOverlayButtonWidget(this.width / 2 - 178 + i, this.height / 6 - 12, 20, 20, 0, 0, 20, PUZZLE_ICON_TEXTURE, 32, 64, (buttonWidget) -> (Objects.requireNonNull(this.client)).setScreen(new PuzzleOptionsScreen(this)), Text.translatable("midnightlib.overview.title")));
|
TextIconButtonWidget iconButton = TextIconButtonWidget.builder(Text.translatable("puzzle.screen.title"), (buttonWidget) -> (Objects.requireNonNull(this.client)).setScreen(new PuzzleOptionsScreen(this)), true).dimension(20, 20).texture(PuzzleClient.PUZZLE_BUTTON, 20, 20).build();
|
||||||
|
iconButton.setPosition(this.width / 2 - 178 + i, this.height / 6 - 12);
|
||||||
|
this.addDrawableChild(iconButton);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ public class PuzzleOptionsScreen extends Screen {
|
|||||||
this.addSelectableChild(this.list);
|
this.addSelectableChild(this.list);
|
||||||
|
|
||||||
super.init();
|
super.init();
|
||||||
|
if (client != null && client.world != null) this.list.setRenderBackground(false);
|
||||||
|
|
||||||
this.addDrawableChild(ButtonWidget.builder(ScreenTexts.DONE, (button) -> Objects.requireNonNull(client).setScreen(parent)).dimensions(this.width / 2 - 100, this.height - 28, 200, 20).build());
|
this.addDrawableChild(ButtonWidget.builder(ScreenTexts.DONE, (button) -> Objects.requireNonNull(client).setScreen(parent)).dimensions(this.width / 2 - 100, this.height - 28, 200, 20).build());
|
||||||
}
|
}
|
||||||
@@ -86,11 +87,10 @@ public class PuzzleOptionsScreen extends Screen {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
|
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
|
||||||
this.renderBackground(context);
|
super.render(context, mouseX, mouseY, delta);
|
||||||
if (client != null && client.world != null) this.list.setRenderBackground(false);
|
|
||||||
this.list.render(context, mouseX, mouseY, delta);
|
this.list.render(context, mouseX, mouseY, delta);
|
||||||
|
|
||||||
super.render(context, mouseX, mouseY, delta);
|
|
||||||
if (tooltip != null) {
|
if (tooltip != null) {
|
||||||
if (this.list.getFocused() != null && (this.list.getHoveredEntry() == null || this.list.getHoveredEntry().button == null || !this.list.getHoveredEntry().button.isMouseOver(mouseX, mouseY))) {
|
if (this.list.getFocused() != null && (this.list.getHoveredEntry() == null || this.list.getHoveredEntry().button == null || !this.list.getHoveredEntry().button.isMouseOver(mouseX, mouseY))) {
|
||||||
context.drawTooltip(textRenderer, tooltip, this.list.getFocused().getX(), this.list.getFocused().getY() + (this.list.getFocused().getHeight() * 2));
|
context.drawTooltip(textRenderer, tooltip, this.list.getFocused().getX(), this.list.getFocused().getY() + (this.list.getFocused().getHeight() * 2));
|
||||||
|
|||||||
@@ -16,7 +16,9 @@ public class PuzzleButtonWidget extends ButtonWidget {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void renderButton(DrawContext context, int mouseX, int mouseY, float delta) {
|
public void renderButton(DrawContext context, int mouseX, int mouseY, float delta) {
|
||||||
title.setTitle(this);
|
try {
|
||||||
|
title.setTitle(this);
|
||||||
|
} catch (Exception e) {e.printStackTrace(); this.visible = false;}
|
||||||
super.renderButton(context, mouseX, mouseY, delta);
|
super.renderButton(context, mouseX, mouseY, delta);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import net.minecraft.client.gui.Selectable;
|
|||||||
import net.minecraft.client.gui.widget.ClickableWidget;
|
import net.minecraft.client.gui.widget.ClickableWidget;
|
||||||
import net.minecraft.client.gui.widget.ElementListWidget;
|
import net.minecraft.client.gui.widget.ElementListWidget;
|
||||||
import net.minecraft.client.resource.language.I18n;
|
import net.minecraft.client.resource.language.I18n;
|
||||||
import net.minecraft.client.util.math.MatrixStack;
|
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.text.TranslatableTextContent;
|
import net.minecraft.text.TranslatableTextContent;
|
||||||
import net.puzzlemc.gui.screen.PuzzleOptionsScreen;
|
import net.puzzlemc.gui.screen.PuzzleOptionsScreen;
|
||||||
|
|||||||
@@ -17,7 +17,9 @@ public class PuzzleSliderWidget extends SliderWidget {
|
|||||||
|
|
||||||
this.setTextAction = setTextAction;
|
this.setTextAction = setTextAction;
|
||||||
this.changeAction = changeAction;
|
this.changeAction = changeAction;
|
||||||
this.updateMessage();
|
try {
|
||||||
|
this.updateMessage();
|
||||||
|
} catch (Exception e) {e.printStackTrace(); this.visible = false;}
|
||||||
}
|
}
|
||||||
public int getInt() {
|
public int getInt() {
|
||||||
int difference = max - min;
|
int difference = max - min;
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ public class PuzzleTextFieldWidget extends TextFieldWidget {
|
|||||||
super(textRenderer, x, y, width, height, Text.of(""));
|
super(textRenderer, x, y, width, height, Text.of(""));
|
||||||
this.setValueAction = setValue;
|
this.setValueAction = setValue;
|
||||||
this.change = change;
|
this.change = change;
|
||||||
setValueAction.setTextValue(this);
|
try {
|
||||||
|
setValueAction.setTextValue(this);
|
||||||
|
} catch (Exception e) {e.printStackTrace(); this.setVisible(false);}
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void write(String text) {
|
public void write(String text) {
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 152 B |
@@ -8,7 +8,6 @@ import net.minecraft.client.gui.screen.SplashOverlay;
|
|||||||
import net.minecraft.client.render.GameRenderer;
|
import net.minecraft.client.render.GameRenderer;
|
||||||
import net.minecraft.client.texture.NativeImage;
|
import net.minecraft.client.texture.NativeImage;
|
||||||
import net.minecraft.client.texture.NativeImageBackedTexture;
|
import net.minecraft.client.texture.NativeImageBackedTexture;
|
||||||
import net.minecraft.client.util.math.MatrixStack;
|
|
||||||
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;
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
"environment": "client",
|
"environment": "client",
|
||||||
|
|
||||||
"depends": {
|
"depends": {
|
||||||
"fabric": "*"
|
"fabric": "*",
|
||||||
|
"minecraft": ">=1.20.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user