diff options
| author | shedaniel <daniel@shedaniel.me> | 2020-07-08 15:30:37 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2020-07-08 15:30:37 +0800 |
| commit | 1189bcf3a46777239462da0dc45aa088697fec40 (patch) | |
| tree | 0987169de6fda56f3e90e55d285daceb0bc3f005 /src/main/java | |
| parent | 17150bedcdf80944a64e165976cf2491d409b1c0 (diff) | |
| download | RoughlyEnoughItems-1189bcf3a46777239462da0dc45aa088697fec40.tar.gz RoughlyEnoughItems-1189bcf3a46777239462da0dc45aa088697fec40.tar.bz2 RoughlyEnoughItems-1189bcf3a46777239462da0dc45aa088697fec40.zip | |
Optimise images and add warning screen for optifine.
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src/main/java')
3 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/api/ConfigManager.java b/src/main/java/me/shedaniel/rei/api/ConfigManager.java index b3da456da..f85d528e5 100644 --- a/src/main/java/me/shedaniel/rei/api/ConfigManager.java +++ b/src/main/java/me/shedaniel/rei/api/ConfigManager.java @@ -24,9 +24,12 @@ package me.shedaniel.rei.api; import me.shedaniel.rei.RoughlyEnoughItemsCore; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; +@Environment(EnvType.CLIENT) public interface ConfigManager { /** diff --git a/src/main/java/me/shedaniel/rei/api/TextRepresentable.java b/src/main/java/me/shedaniel/rei/api/TextRepresentable.java index 22b46f037..782ed3f40 100644 --- a/src/main/java/me/shedaniel/rei/api/TextRepresentable.java +++ b/src/main/java/me/shedaniel/rei/api/TextRepresentable.java @@ -25,11 +25,14 @@ package me.shedaniel.rei.api; import me.shedaniel.math.impl.PointHelper; import me.shedaniel.rei.api.widgets.Tooltip; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.text.LiteralText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import org.jetbrains.annotations.NotNull; +@Environment(EnvType.CLIENT) public interface TextRepresentable { @NotNull default Text asFormattedText() { diff --git a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java index e400f0392..6ffe07b06 100644 --- a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java +++ b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java @@ -49,11 +49,17 @@ import me.shedaniel.rei.gui.config.entry.NoFilteringEntry; import me.shedaniel.rei.gui.config.entry.RecipeScreenTypeEntry; import me.shedaniel.rei.gui.config.entry.ReloadPluginsEntry; import me.shedaniel.rei.gui.credits.CreditsScreen; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.ScreenTexts; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.client.util.InputUtil; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; import net.minecraft.text.TranslatableText; import net.minecraft.util.math.MathHelper; import org.jetbrains.annotations.ApiStatus; @@ -66,6 +72,7 @@ import static me.sargunvohra.mcmods.autoconfig1u.util.Utils.getUnsafely; import static me.sargunvohra.mcmods.autoconfig1u.util.Utils.setUnsafely; @ApiStatus.Internal +@Environment(EnvType.CLIENT) public class ConfigManagerImpl implements ConfigManager { private boolean craftableOnly; @@ -150,6 +157,9 @@ public class ConfigManagerImpl implements ConfigManager { @Override public Screen getConfigScreen(Screen parent) { try { + if (FabricLoader.getInstance().isModLoaded("optifabric")) { + return new ConfigErrorScreen(parent, new TranslatableText("text.rei.config.optifine.title"), new TranslatableText("text.rei.config.optifine.description")); + } ConfigScreenProvider<ConfigObjectImpl> provider = (ConfigScreenProvider<ConfigObjectImpl>) AutoConfig.getConfigScreen(ConfigObjectImpl.class, parent); provider.setI13nFunction(manager -> "config.roughlyenoughitems"); provider.setOptionFunction((baseI13n, field) -> field.isAnnotationPresent(ConfigObjectImpl.DontApplyFieldName.class) ? baseI13n : String.format("%s.%s", baseI13n, field.getName())); @@ -178,4 +188,34 @@ public class ConfigManagerImpl implements ConfigManager { return null; } + public static class ConfigErrorScreen extends Screen { + private final Text message; + private final Screen parent; + + public ConfigErrorScreen(Screen parent, Text title, Text message) { + super(title); + this.parent = parent; + this.message = message; + } + + @Override + protected void init() { + super.init(); + this.addButton(new ButtonWidget(this.width / 2 - 100, 140, 200, 20, ScreenTexts.CANCEL, button -> this.client.openScreen(parent))); + } + + @Override + public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { + this.renderBackground(matrices); + this.drawCenteredText(matrices, this.textRenderer, this.title, this.width / 2, 90, 16777215); + this.drawCenteredText(matrices, this.textRenderer, this.message, this.width / 2, 110, 16777215); + super.render(matrices, mouseX, mouseY, delta); + } + + @Override + public boolean shouldCloseOnEsc() { + return false; + } + } + } |
