aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-07-08 15:30:37 +0800
committershedaniel <daniel@shedaniel.me>2020-07-08 15:30:37 +0800
commit1189bcf3a46777239462da0dc45aa088697fec40 (patch)
tree0987169de6fda56f3e90e55d285daceb0bc3f005 /src/main/java/me
parent17150bedcdf80944a64e165976cf2491d409b1c0 (diff)
downloadRoughlyEnoughItems-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/me')
-rw-r--r--src/main/java/me/shedaniel/rei/api/ConfigManager.java3
-rw-r--r--src/main/java/me/shedaniel/rei/api/TextRepresentable.java3
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java40
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;
+ }
+ }
+
}