aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/impl
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2020-01-20 22:00:51 +0800
committershedaniel <daniel@shedaniel.me>2020-01-20 22:00:51 +0800
commitc0b54fae494fcd8bba476eb0153c8689a85231cc (patch)
treef5b7266225093fa811e05e2f6dcf320c7e0ae146 /src/main/java/me/shedaniel/rei/impl
parentc683eb4cf0b621c5ac176915e3aeea604cea26fd (diff)
downloadRoughlyEnoughItems-c0b54fae494fcd8bba476eb0153c8689a85231cc.tar.gz
RoughlyEnoughItems-c0b54fae494fcd8bba476eb0153c8689a85231cc.tar.bz2
RoughlyEnoughItems-c0b54fae494fcd8bba476eb0153c8689a85231cc.zip
Fix #246
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl')
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java37
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java9
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java6
-rw-r--r--src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java28
4 files changed, 48 insertions, 32 deletions
diff --git a/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java b/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
index e05e6b004..7dcdc069c 100644
--- a/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
+++ b/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
@@ -5,9 +5,9 @@
package me.shedaniel.rei.impl;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.Maps;
import io.netty.buffer.Unpooled;
+import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry;
import me.shedaniel.clothconfig2.api.FakeModifierKeyCodeAdder;
import me.shedaniel.clothconfig2.api.ModifierKeyCode;
import me.shedaniel.rei.RoughlyEnoughItemsCore;
@@ -31,21 +31,41 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.text.TranslatableText;
-import net.minecraft.util.DefaultedList;
import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
+import net.minecraft.util.Lazy;
import net.minecraft.util.PacketByteBuf;
import net.minecraft.util.registry.Registry;
import org.jetbrains.annotations.ApiStatus;
import java.lang.reflect.Field;
+import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.UUID;
@ApiStatus.Internal
public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
+ @ApiStatus.Internal public final Lazy<Boolean> isYog = new Lazy<>(() -> {
+ try {
+ if (MinecraftClient.getInstance().getSession().getProfile().getId().equals(UUID.fromString("f9546389-9415-4358-9c29-2c26b25bff5b")))
+ return true;
+ } catch (Throwable ignored) {
+ }
+ return false;
+ });
+ @ApiStatus.Internal public final Lazy<Boolean> ok = new Lazy<>(() -> {
+ try {
+ if (isYog.get())
+ return true;
+ LocalDateTime now = LocalDateTime.now();
+ return now.getMonthValue() == 4 && now.getDayOfMonth() == 1;
+ } catch (Throwable ignored) {
+ }
+ return false;
+ });
public static ClientHelperImpl instance;
private final Map<String, String> modNameCache = Maps.newHashMap();
@@ -150,12 +170,9 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
@Override
public List<ItemStack> getInventoryItemsTypes() {
- List<DefaultedList<ItemStack>> field_7543 = ImmutableList.of(MinecraftClient.getInstance().player.inventory.main, MinecraftClient.getInstance().player.inventory.armor, MinecraftClient.getInstance().player.inventory.offHand);
- List<ItemStack> inventoryStacks = new ArrayList<>();
- field_7543.forEach(itemStacks -> itemStacks.forEach(itemStack -> {
- if (!itemStack.isEmpty())
- inventoryStacks.add(itemStack);
- }));
+ List<ItemStack> inventoryStacks = new ArrayList<>(MinecraftClient.getInstance().player.inventory.main);
+ inventoryStacks.addAll(MinecraftClient.getInstance().player.inventory.armor);
+ inventoryStacks.addAll(MinecraftClient.getInstance().player.inventory.offHand);
return inventoryStacks;
}
@@ -233,9 +250,9 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer {
if (!FabricLoader.getInstance().isModLoaded("amecs")) {
try {
ConfigObjectImpl.General general = ConfigObject.getInstance().getGeneral();
- ConfigObjectImpl.General instance = general.getClass().newInstance();
+ ConfigObjectImpl.General instance = general.getClass().getConstructor().newInstance();
for (Field declaredField : general.getClass().getDeclaredFields()) {
- if (declaredField.getType() == ModifierKeyCode.class) {
+ if (declaredField.getType() == ModifierKeyCode.class && !declaredField.isAnnotationPresent(ConfigEntry.Gui.Excluded.class)) {
declaredField.setAccessible(true);
FakeModifierKeyCodeAdder.INSTANCE.registerModifierKeyCode(category, "config.roughlyenoughitems." + declaredField.getName(), () -> {
try {
diff --git a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
index b51eaa871..07049ac62 100644
--- a/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
+++ b/src/main/java/me/shedaniel/rei/impl/ConfigManagerImpl.java
@@ -11,6 +11,7 @@ import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import io.github.prospector.modmenu.ModMenu;
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
+import me.sargunvohra.mcmods.autoconfig1u.annotation.ConfigEntry;
import me.sargunvohra.mcmods.autoconfig1u.gui.ConfigScreenProvider;
import me.sargunvohra.mcmods.autoconfig1u.gui.registry.GuiRegistry;
import me.sargunvohra.mcmods.autoconfig1u.serializer.JanksonConfigSerializer;
@@ -96,23 +97,19 @@ public class ConfigManagerImpl implements ConfigManager {
// return Collections.singletonList(entry);
// }, field -> field.getType() == InputUtil.KeyCode.class);
guiRegistry.registerPredicateProvider((i13n, field, config, defaults, guiProvider) -> {
+ if (field.isAnnotationPresent(ConfigEntry.Gui.Excluded.class))
+ return Collections.emptyList();
KeyCodeEntry entry = ConfigEntryBuilder.create().startModifierKeyCodeField(i13n, getUnsafely(field, config, ModifierKeyCode.unknown())).setModifierDefaultValue(() -> getUnsafely(field, defaults)).setModifierSaveConsumer(newValue -> setUnsafely(field, config, newValue)).build();
entry.setAllowMouse(false);
return Collections.singletonList(entry);
}, field -> field.getType() == ModifierKeyCode.class);
guiRegistry.registerAnnotationProvider((i13n, field, config, defaults, guiProvider) -> {
- KeyCodeEntry entry = ConfigEntryBuilder.create().startModifierKeyCodeField(i13n, getUnsafely(field, config, ModifierKeyCode.unknown())).setModifierDefaultValue(() -> getUnsafely(field, defaults)).setModifierSaveConsumer(newValue -> setUnsafely(field, config, newValue)).build();
- entry.setAllowMouse(false);
- return Collections.singletonList(entry);
- }, field -> field.getType() == ModifierKeyCode.class, ConfigObject.UsePercentage.class);
- guiRegistry.registerAnnotationProvider((i13n, field, config, defaults, guiProvider) -> {
ConfigObject.UsePercentage bounds = field.getAnnotation(ConfigObject.UsePercentage.class);
return Collections.singletonList(ConfigEntryBuilder.create().startIntSlider(i13n, MathHelper.ceil(Utils.getUnsafely(field, config, 0.0) * 100), MathHelper.ceil(bounds.min() * 100), MathHelper.ceil(bounds.max() * 100)).setDefaultValue(() -> MathHelper.ceil((double) Utils.getUnsafely(field, defaults) * 100)).setSaveConsumer((newValue) -> {
Utils.setUnsafely(field, config, newValue / 100d);
}).setTextGetter(integer -> String.format("Size: %d%%", integer)).build());
}, (field) -> field.getType() == Double.TYPE || field.getType() == Double.class, ConfigObject.UsePercentage.class);
-
guiRegistry.registerAnnotationProvider((i13n, field, config, defaults, guiProvider) -> {
int width = 220;
return Collections.singletonList(new TooltipListEntry<RecipeScreenType>(i13n, null) {
diff --git a/src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java b/src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java
index 595809acc..9e9f05bc3 100644
--- a/src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java
+++ b/src/main/java/me/shedaniel/rei/impl/ConfigObjectImpl.java
@@ -253,6 +253,11 @@ public class ConfigObjectImpl implements ConfigObject, ConfigData {
}
@Override
+ public ModifierKeyCode getExportImageKeybind() {
+ return general.exportImageKeybind == null ? ModifierKeyCode.unknown() : general.exportImageKeybind;
+ }
+
+ @Override
public double getEntrySize() {
return appearance.entrySize;
}
@@ -281,6 +286,7 @@ public class ConfigObjectImpl implements ConfigObject, ConfigData {
private ModifierKeyCode focusSearchFieldKeybind = ModifierKeyCode.unknown();
private ModifierKeyCode copyRecipeIdentifierKeybind = ModifierKeyCode.unknown();
private ModifierKeyCode favoriteKeybind = ModifierKeyCode.of(InputUtil.Type.KEYSYM.createFromCode(65), Modifier.none());
+ @ConfigEntry.Gui.Excluded private ModifierKeyCode exportImageKeybind = ModifierKeyCode.unknown();
}
public static class Appearance {
diff --git a/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java b/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java
index ca33abdd5..4c5bbd0f9 100644
--- a/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java
+++ b/src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java
@@ -13,7 +13,6 @@ import me.shedaniel.rei.gui.widget.QueuedTooltip;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.OverlayTexture;
import net.minecraft.client.render.VertexConsumerProvider;
-import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.render.model.BakedModel;
import net.minecraft.client.render.model.json.ModelTransformation;
import net.minecraft.client.texture.SpriteAtlasTexture;
@@ -31,8 +30,7 @@ import java.util.Optional;
@ApiStatus.Internal
public class ItemEntryStack extends AbstractEntryStack implements OptimalEntryStack {
- private static final MatrixStack matrices = new MatrixStack();
- private final ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer();
+ private static final MatrixStack MATRICES = new MatrixStack();
private ItemStack itemStack;
private int hash = -1;
@@ -129,7 +127,7 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt
// }
return hash;
}
-
+
@Nullable
@Override
public QueuedTooltip getTooltip(int mouseX, int mouseY) {
@@ -171,12 +169,12 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt
}
private BakedModel getModelFromStack(ItemStack stack) {
- BakedModel model = itemRenderer.getModels().getModel(stack);
+ BakedModel model = MinecraftClient.getInstance().getItemRenderer().getModels().getModel(stack);
if (stack.getItem().hasPropertyGetters())
model = model.getItemPropertyOverrides().apply(model, stack, null, null);
if (model != null)
return model;
- return itemRenderer.getModels().getModelManager().getMissingModel();
+ return MinecraftClient.getInstance().getItemRenderer().getModels().getModelManager().getMissingModel();
}
@Override
@@ -184,21 +182,19 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt
if (!isEmpty() && get(Settings.RENDER).get()) {
ItemStack stack = getItemStack();
((ItemStackHook) (Object) stack).rei_setRenderEnchantmentGlint(get(Settings.Item.RENDER_ENCHANTMENT_GLINT).get());
- itemRenderer.zOffset = getZ();
- matrices.push();
- matrices.translate(bounds.getCenterX(), bounds.getCenterY(), 100.0F + getZ());
- matrices.scale(bounds.getWidth(), (bounds.getWidth() + bounds.getHeight()) / -2f, bounds.getHeight());
+ MATRICES.push();
+ MATRICES.translate(bounds.getCenterX(), bounds.getCenterY(), 100.0F + getZ());
+ MATRICES.scale(bounds.getWidth(), (bounds.getWidth() + bounds.getHeight()) / -2f, bounds.getHeight());
VertexConsumerProvider.Immediate immediate = MinecraftClient.getInstance().getBufferBuilders().getEntityVertexConsumers();
BakedModel model = getModelFromStack(stack);
boolean bl = !model.hasDepthInGui();
if (bl)
GlStateManager.method_24221();
- itemRenderer.renderItem(stack, ModelTransformation.Type.GUI, false, matrices, immediate, 15728880, OverlayTexture.DEFAULT_UV, model);
+ MinecraftClient.getInstance().getItemRenderer().renderItem(stack, ModelTransformation.Type.GUI, false, MATRICES, immediate, 15728880, OverlayTexture.DEFAULT_UV, model);
immediate.draw();
if (bl)
GlStateManager.method_24222();
- itemRenderer.zOffset = 0.0F;
- matrices.pop();
+ MATRICES.pop();
((ItemStackHook) (Object) stack).rei_setRenderEnchantmentGlint(false);
}
}
@@ -206,9 +202,9 @@ public class ItemEntryStack extends AbstractEntryStack implements OptimalEntrySt
@Override
public void optimisedRenderOverlay(Rectangle bounds, int mouseX, int mouseY, float delta) {
if (!isEmpty() && get(Settings.RENDER).get()) {
- itemRenderer.zOffset = getZ();
- itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, getItemStack(), bounds.x, bounds.y, get(Settings.RENDER_COUNTS).get() ? get(Settings.COUNTS).apply(this) : "");
- itemRenderer.zOffset = 0.0F;
+ MinecraftClient.getInstance().getItemRenderer().zOffset = getZ();
+ MinecraftClient.getInstance().getItemRenderer().renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, getItemStack(), bounds.x, bounds.y, get(Settings.RENDER_COUNTS).get() ? get(Settings.COUNTS).apply(this) : "");
+ MinecraftClient.getInstance().getItemRenderer().zOffset = 0.0F;
}
}
}