aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbuild.gradle4
-rw-r--r--gradle.properties4
-rw-r--r--src/main/java/me/shedaniel/rei/api/ConfigObject.java5
-rw-r--r--src/main/java/me/shedaniel/rei/api/ItemStackRenderOverlayHook.java5
-rw-r--r--src/main/java/me/shedaniel/rei/api/Renderer.java15
-rw-r--r--src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java11
-rw-r--r--src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java7
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java17
-rw-r--r--src/main/java/me/shedaniel/rei/mixin/MixinItemStack.java25
-rw-r--r--src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java4
-rw-r--r--src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java2
-rwxr-xr-xsrc/main/resources/assets/roughlyenoughitems/lang/en_us.json1
-rwxr-xr-xsrc/main/resources/mixin.roughlyenoughitems.json3
13 files changed, 90 insertions, 13 deletions
diff --git a/build.gradle b/build.gradle
index 5071aa6d5..6f59d7d54 100755
--- a/build.gradle
+++ b/build.gradle
@@ -48,7 +48,7 @@ dependencies {
modImplementation("me.shedaniel.cloth:config-2:${cloth_config_version}") {
transitive = false
}
- modApi("me.shedaniel.cloth:fiber2cloth:1.1.0") {
+ modApi("me.shedaniel.cloth:fiber2cloth:1.2.0") {
transitive = false
}
modApi "me.zeroeightsix:fiber:0.6.0-7"
@@ -60,7 +60,7 @@ dependencies {
include("me.shedaniel.cloth:config-2:${cloth_config_version}") {
transitive = false
}
- include("me.shedaniel.cloth:fiber2cloth:1.1.0") {
+ include("me.shedaniel.cloth:fiber2cloth:1.2.0") {
transitive = false
}
include "me.zeroeightsix:fiber:0.6.0-7"
diff --git a/gradle.properties b/gradle.properties
index e519b5311..2be40f273 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,10 +1,10 @@
-mod_version=3.1.3
+mod_version=3.1.4
minecraft_version=1.14.4
yarn_version=1.14.4+build.1
fabricloader_version=0.6.1+build.164
jankson_version=1.1.0
cloth_events_version=0.6.0
-cloth_config_version=1.1.1
+cloth_config_version=1.1.2
modmenu_version=1.7.9+build.118
fabric_api=0.3.2+build.218-1.14
diff --git a/src/main/java/me/shedaniel/rei/api/ConfigObject.java b/src/main/java/me/shedaniel/rei/api/ConfigObject.java
index f60d6bc35..f529d4581 100644
--- a/src/main/java/me/shedaniel/rei/api/ConfigObject.java
+++ b/src/main/java/me/shedaniel/rei/api/ConfigObject.java
@@ -10,9 +10,12 @@ import me.shedaniel.rei.gui.config.ItemListOrdering;
import me.shedaniel.rei.gui.config.RecipeScreenType;
import me.shedaniel.rei.gui.config.SearchFieldLocation;
import me.zeroeightsix.fiber.tree.ConfigNode;
+import me.zeroeightsix.fiber.tree.Node;
public interface ConfigObject {
+ Node getGeneral();
+
ConfigNode getConfigNode();
boolean isCheating();
@@ -25,6 +28,8 @@ public interface ConfigObject {
boolean isUsingDarkTheme();
+ boolean doesRenderEntryExtraOverlay();
+
boolean isEntryListWidgetScrolled();
boolean shouldAppendModNames();
diff --git a/src/main/java/me/shedaniel/rei/api/ItemStackRenderOverlayHook.java b/src/main/java/me/shedaniel/rei/api/ItemStackRenderOverlayHook.java
new file mode 100644
index 000000000..6baf5f218
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/api/ItemStackRenderOverlayHook.java
@@ -0,0 +1,5 @@
+package me.shedaniel.rei.api;
+
+public interface ItemStackRenderOverlayHook {
+ void rei_setRenderOverlay(boolean b);
+}
diff --git a/src/main/java/me/shedaniel/rei/api/Renderer.java b/src/main/java/me/shedaniel/rei/api/Renderer.java
index 5bd86e058..cb356be5e 100644
--- a/src/main/java/me/shedaniel/rei/api/Renderer.java
+++ b/src/main/java/me/shedaniel/rei/api/Renderer.java
@@ -20,6 +20,7 @@ import java.util.Collections;
import java.util.List;
import java.util.function.Function;
import java.util.function.Supplier;
+import java.util.stream.Collectors;
public abstract class Renderer extends DrawableHelper {
/**
@@ -114,12 +115,17 @@ public abstract class Renderer extends DrawableHelper {
}
public static ItemStackRenderer fromItemStacks(Supplier<List<ItemStack>> stacksSupplier, @Nullable Function<ItemStack, String> countsFunction, @Nullable Function<ItemStack, List<String>> extraTooltipSupplier) {
+ return fromItemStacks(stacksSupplier, countsFunction, extraTooltipSupplier, true);
+ }
+
+ public static ItemStackRenderer fromItemStacks(Supplier<List<ItemStack>> stacksSupplier, @Nullable Function<ItemStack, String> countsFunction, @Nullable Function<ItemStack, List<String>> extraTooltipSupplier, boolean renderOverlay) {
+ List<ItemStack> stacks = stacksSupplier.get().stream().map(ItemStack::copy).collect(Collectors.toList());
return new ItemStackRenderer() {
@Override
public ItemStack getItemStack() {
- if (stacksSupplier.get().isEmpty())
+ if (stacks.isEmpty())
return ItemStack.EMPTY;
- return stacksSupplier.get().get(MathHelper.floor((System.currentTimeMillis() / 500 % (double) stacksSupplier.get().size()) / 1f));
+ return stacks.get(MathHelper.floor((System.currentTimeMillis() / 500 % (double) stacks.size()) / 1f));
}
@Override
@@ -128,6 +134,11 @@ public abstract class Renderer extends DrawableHelper {
}
@Override
+ protected boolean renderOverlay() {
+ return renderOverlay;
+ }
+
+ @Override
protected List<String> getExtraToolTips(ItemStack stack) {
if (extraTooltipSupplier == null)
return super.getExtraToolTips(stack);
diff --git a/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java b/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java
index 106a85561..f916843b8 100644
--- a/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java
+++ b/src/main/java/me/shedaniel/rei/gui/renderers/ItemStackRenderer.java
@@ -9,6 +9,7 @@ import com.google.common.collect.Lists;
import me.shedaniel.math.compat.RenderHelper;
import me.shedaniel.rei.RoughlyEnoughItemsCore;
import me.shedaniel.rei.api.ClientHelper;
+import me.shedaniel.rei.api.ItemStackRenderOverlayHook;
import me.shedaniel.rei.api.Renderer;
import me.shedaniel.rei.gui.widget.EntryListWidget;
import me.shedaniel.rei.gui.widget.QueuedTooltip;
@@ -35,6 +36,8 @@ public abstract class ItemStackRenderer extends Renderer {
@Override
public void render(int x, int y, double mouseX, double mouseY, float delta) {
int l = x - 8, i1 = y - 6;
+ ItemStack stack = getItemStack();
+ ((ItemStackRenderOverlayHook) (Object) stack).rei_setRenderOverlay(renderOverlay());
RenderHelper.color4f(1.0F, 1.0F, 1.0F, 1.0F);
ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer();
itemRenderer.zOffset = blitOffset;
@@ -43,8 +46,8 @@ public abstract class ItemStackRenderer extends Renderer {
RenderHelper.enableLighting();
RenderHelper.enableRescaleNormal();
RenderHelper.enableDepthTest();
- itemRenderer.renderGuiItem(getItemStack(), l, i1);
- itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, getItemStack(), l, i1, getCounts());
+ itemRenderer.renderGuiItem(stack, l, i1);
+ itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, stack, l, i1, getCounts());
itemRenderer.zOffset = 0.0F;
this.blitOffset = 0;
}
@@ -71,6 +74,10 @@ public abstract class ItemStackRenderer extends Renderer {
return true;
}
+ protected boolean renderOverlay() {
+ return true;
+ }
+
protected String getCounts() {
return renderCounts() ? null : "";
}
diff --git a/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java
index 850e1973a..1c11b136d 100644
--- a/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java
+++ b/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java
@@ -376,7 +376,12 @@ public class EntryListWidget extends Widget {
protected String getCounts() {
return "";
}
-
+
+ @Override
+ protected boolean renderOverlay() {
+ return RoughlyEnoughItemsCore.getConfigManager().getConfig().doesRenderEntryExtraOverlay();
+ }
+
@Nullable
@Override
public QueuedTooltip getQueuedTooltip(float delta) {
diff --git a/src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java b/src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java
index 5fc06cdd5..910d1aeb5 100644
--- a/src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java
+++ b/src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java
@@ -42,6 +42,13 @@ public class ConfigObjectImpl implements ConfigObject {
.withName("darkTheme")
.build();
+ private ConfigValue<Boolean> renderEntryExtraOverlay = ConfigValue.builder(Boolean.class)
+ .withParent(appearance)
+ .withDefaultValue(true)
+ .withComment("Whether REI should render entry's overlay.\nExample: Enchantment Glint")
+ .withName("renderEntryExtraOverlay")
+ .build();
+
private ConfigValue<RecipeScreenType> recipeScreenType = ConfigValue.builder(RecipeScreenType.class)
.withParent(appearance)
.withDefaultValue(RecipeScreenType.UNSET)
@@ -180,6 +187,11 @@ public class ConfigObjectImpl implements ConfigObject {
}
@Override
+ public Node getGeneral() {
+ return general;
+ }
+
+ @Override
public ConfigNode getConfigNode() {
return configNode;
}
@@ -210,6 +222,11 @@ public class ConfigObjectImpl implements ConfigObject {
}
@Override
+ public boolean doesRenderEntryExtraOverlay() {
+ return renderEntryExtraOverlay.getValue().booleanValue();
+ }
+
+ @Override
public boolean isEntryListWidgetScrolled() {
return scrollingEntryListWidget.getValue().booleanValue();
}
diff --git a/src/main/java/me/shedaniel/rei/mixin/MixinItemStack.java b/src/main/java/me/shedaniel/rei/mixin/MixinItemStack.java
new file mode 100644
index 000000000..a9d6563e8
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/mixin/MixinItemStack.java
@@ -0,0 +1,25 @@
+package me.shedaniel.rei.mixin;
+
+import me.shedaniel.rei.api.ItemStackRenderOverlayHook;
+import net.minecraft.item.ItemStack;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
+
+@Mixin(ItemStack.class)
+public class MixinItemStack implements ItemStackRenderOverlayHook {
+ private boolean rei_dontRenderOverlay = false;
+
+ @Override
+ public void rei_setRenderOverlay(boolean b) {
+ rei_dontRenderOverlay = !b;
+ }
+
+ @Inject(method = "hasEnchantmentGlint", at = @At("HEAD"), cancellable = true)
+ public void hasEnchantmentGlint(CallbackInfoReturnable<Boolean> callbackInfo) {
+ if (rei_dontRenderOverlay)
+ callbackInfo.setReturnValue(false);
+ }
+
+}
diff --git a/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java b/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java
index c7eba25b1..03abd2170 100644
--- a/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java
+++ b/src/main/java/me/shedaniel/rei/server/InputSlotCrafter.java
@@ -65,7 +65,7 @@ public class InputSlotCrafter<C extends Inventory> implements RecipeGridAligner<
player.inventory.markDirty();
throw new NotEnoughMaterialsException();
}
-
+
player.inventory.markDirty();
}
}
@@ -73,7 +73,7 @@ public class InputSlotCrafter<C extends Inventory> implements RecipeGridAligner<
@Override
public void acceptAlignedInput(Iterator<Integer> iterator_1, int int_1, int int_2, int int_3, int int_4) {
Slot slot_1 = this.craftingContainer.getSlot(int_1);
- ItemStack itemStack_1 = net.minecraft.recipe.RecipeFinder.getStackFromId((Integer) iterator_1.next());
+ ItemStack itemStack_1 = RecipeFinder.getStackFromId(iterator_1.next());
if (!itemStack_1.isEmpty()) {
for (int int_5 = 0; int_5 < int_2; ++int_5) {
this.fillInputSlot(slot_1, itemStack_1);
diff --git a/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java b/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java
index 2a91ae0fb..b76ae996f 100644
--- a/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java
+++ b/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java
@@ -78,7 +78,7 @@ public class ClothScreenRegistry {
MinecraftClient.getInstance().openScreen(new CreditsScreen(screen));
}
});
- }).build().getScreen();
+ }).setDefaultCategoryNode(configManager.getConfig().getGeneral()).build().getScreen();
}
}
diff --git a/src/main/resources/assets/roughlyenoughitems/lang/en_us.json b/src/main/resources/assets/roughlyenoughitems/lang/en_us.json
index 861c7fdbd..1a2da4c9e 100755
--- a/src/main/resources/assets/roughlyenoughitems/lang/en_us.json
+++ b/src/main/resources/assets/roughlyenoughitems/lang/en_us.json
@@ -88,6 +88,7 @@
"config.roughlyenoughitems.clickableRecipeArrows": "Clickable Recipe Arrows:",
"config.roughlyenoughitems.clickableRecipeArrows.boolean.true": "Enabled",
"config.roughlyenoughitems.clickableRecipeArrows.boolean.false": "Disabled",
+ "config.roughlyenoughitems.renderEntryExtraOverlay": "Render Entry Extra Overlay:",
"config.roughlyenoughitems.darkTheme": "Appearance Theme:",
"config.roughlyenoughitems.darkTheme.boolean.true": "Dark Theme",
"config.roughlyenoughitems.darkTheme.boolean.false": "Light Theme",
diff --git a/src/main/resources/mixin.roughlyenoughitems.json b/src/main/resources/mixin.roughlyenoughitems.json
index a8334dea1..e44c85e3d 100755
--- a/src/main/resources/mixin.roughlyenoughitems.json
+++ b/src/main/resources/mixin.roughlyenoughitems.json
@@ -5,7 +5,8 @@
"compatibilityLevel": "JAVA_8",
"mixins": [],
"client": [
- "MixinBrewingRecipeRegistry"
+ "MixinBrewingRecipeRegistry",
+ "MixinItemStack"
],
"injectors": {
"defaultRequire": 1