shedaniel 5 年之前
父節點
當前提交
060f073c49

+ 2 - 2
build.gradle

@@ -68,10 +68,10 @@ dependencies {
             transitive = false
         }
     }
-    modCompileOnly ("io.github.prospector:modmenu:${modmenu_version}") {
+    modCompileOnly("io.github.prospector:modmenu:${modmenu_version}") {
         transitive = false
     }
-    modRuntime ("io.github.prospector:modmenu:${modmenu_version}") {
+    modRuntime("io.github.prospector:modmenu:${modmenu_version}") {
         transitive = false
     }
     compile "org.lwjgl:lwjgl-jemalloc:3.2.1"

+ 4 - 4
gradle.properties

@@ -1,9 +1,9 @@
-mod_version=3.3.0
-minecraft_version=1.15
-yarn_version=1.15+build.1
+mod_version=3.3.1
+minecraft_version=1.15.1
+yarn_version=1.15.1+build.1
 fabricloader_version=0.7.2+build.174
 cloth_events_version=1.1.0
 cloth_config_version=2.6.5
 modmenu_version=1.8.0+build.16
-fabric_api=0.4.20+build.273-1.15
+fabric_api=0.4.27+build.286-1.15
 autoconfig1u=1.2.4

+ 0 - 18
src/main/java/me/shedaniel/rei/api/ItemRendererHooks.java

@@ -1,18 +0,0 @@
-/*
- * Roughly Enough Items by Danielshe.
- * Licensed under the MIT License.
- */
-
-package me.shedaniel.rei.api;
-
-import me.shedaniel.rei.api.annotations.Internal;
-import net.minecraft.client.render.VertexConsumer;
-import net.minecraft.client.render.model.BakedModel;
-import net.minecraft.client.util.math.MatrixStack;
-import net.minecraft.item.ItemStack;
-
-@Internal
-@Deprecated
-public interface ItemRendererHooks {
-    void rei_renderBakedItemModel(BakedModel model, ItemStack stack, int light, int overlay, MatrixStack matrices, VertexConsumer vertices);
-}

+ 22 - 34
src/main/java/me/shedaniel/rei/impl/ItemEntryStack.java

@@ -8,10 +8,7 @@ package me.shedaniel.rei.impl;
 import com.google.common.collect.Lists;
 import com.mojang.blaze3d.platform.GlStateManager;
 import me.shedaniel.math.api.Rectangle;
-import me.shedaniel.rei.api.ClientHelper;
-import me.shedaniel.rei.api.ConfigObject;
-import me.shedaniel.rei.api.EntryStack;
-import me.shedaniel.rei.api.ItemRendererHooks;
+import me.shedaniel.rei.api.*;
 import me.shedaniel.rei.gui.widget.QueuedTooltip;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.render.*;
@@ -156,12 +153,14 @@ public class ItemEntryStack extends AbstractEntryStack {
     public void render(Rectangle bounds, int mouseX, int mouseY, float delta) {
         if (!isEmpty() && getSetting(Settings.RENDER).value().get()) {
             ItemStack stack = getItemStack();
-            //            if (true) {
-            ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer();
-            itemRenderer.zOffset = getZ();
-            BakedModel model = itemRenderer.getModels().getModel(stack);
-            model = model.getItemPropertyOverrides().apply(model, stack, null, null);
-            if (model != null) {
+            if (ConfigObject.getInstance().doesFastEntryRendering() || true) {
+                ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer();
+                itemRenderer.zOffset = getZ();
+                BakedModel model = itemRenderer.getModels().getModel(stack);
+                if (stack.getItem().hasPropertyGetters())
+                    model = model.getItemPropertyOverrides().apply(model, stack, null, null);
+                if (model == null)
+                    model = itemRenderer.getModels().getModelManager().getMissingModel();
                 MinecraftClient.getInstance().getTextureManager().bindTexture(SpriteAtlasTexture.BLOCK_ATLAS_TEX);
                 GlStateManager.enableRescaleNormal();
                 MatrixStack matrices = new MatrixStack();
@@ -171,35 +170,24 @@ public class ItemEntryStack extends AbstractEntryStack {
                 boolean bl = !model.hasDepthInGui();
                 if (bl)
                     GlStateManager.method_24221();
-                model.getTransformation().getTransformation(ModelTransformation.Type.GUI).apply(false, matrices);
-                matrices.translate(-0.5D, -0.5D, -0.5D);
-                if (!model.isBuiltin()) {
-                    RenderLayer renderLayer = RenderLayers.getItemLayer(stack);
-                    if (Objects.equals(renderLayer, TexturedRenderLayers.getEntityTranslucent()))
-                        renderLayer = TexturedRenderLayers.getEntityTranslucentCull();
-                    VertexConsumer vertexConsumer = stack.hasEnchantmentGlint() && getSetting(Settings.Item.RENDER_ENCHANTMENT_GLINT).value().get() ? VertexConsumers.dual(immediate.getBuffer(RenderLayer.getGlint()), immediate.getBuffer(renderLayer)) : immediate.getBuffer(renderLayer);
-                    ((ItemRendererHooks) itemRenderer).rei_renderBakedItemModel(model, stack, 15728880, OverlayTexture.DEFAULT_UV, matrices, vertexConsumer);
-                } else {
-                    BuiltinModelItemRenderer.INSTANCE.render(stack, matrices, immediate, 15728880, OverlayTexture.DEFAULT_UV);
-                }
+                itemRenderer.renderItem(stack, ModelTransformation.Type.GUI, false, matrices, immediate, 15728880, OverlayTexture.DEFAULT_UV, model);
                 immediate.draw();
                 if (bl)
                     GlStateManager.method_24222();
                 GlStateManager.disableRescaleNormal();
+                itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, stack, bounds.x, bounds.y, getSetting(Settings.RENDER_COUNTS).value().get() ? getSetting(Settings.COUNTS).value().apply(this) : "");
+                itemRenderer.zOffset = 0.0F;
+            } else {
+                ((ItemStackHook) (Object) stack).rei_setRenderEnchantmentGlint(getSetting(Settings.Item.RENDER_ENCHANTMENT_GLINT).value().get());
+                ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer();
+                itemRenderer.zOffset = getZ();
+                int i1 = bounds.x;
+                int i2 = bounds.y;
+                itemRenderer.renderGuiItemIcon(stack, i1, i2);
+                itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, stack, i1, i2, getSetting(Settings.RENDER_COUNTS).value().get() ? getSetting(Settings.COUNTS).value().apply(this) : "");
+                itemRenderer.zOffset = 0.0F;
+                ((ItemStackHook) (Object) stack).rei_setRenderEnchantmentGlint(true);
             }
-            itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, stack, bounds.x, bounds.y, getSetting(Settings.RENDER_COUNTS).value().get() ? getSetting(Settings.COUNTS).value().apply(this) : "");
-            itemRenderer.zOffset = 0.0F;
-            //            } else {
-            //                ((ItemStackHook) (Object) stack).rei_setRenderEnchantmentGlint(getSetting(Settings.Item.RENDER_ENCHANTMENT_GLINT).value().get());
-            //                ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer();
-            //                itemRenderer.zOffset = getZ();
-            //                int i1 = bounds.x + 1;
-            //                int i2 = bounds.y + 1;
-            //                itemRenderer.renderGuiItemIcon(stack, i1, i2);
-            //                itemRenderer.renderGuiItemOverlay(MinecraftClient.getInstance().textRenderer, stack, i1, i2, getSetting(Settings.RENDER_COUNTS).value().get() ? getSetting(Settings.COUNTS).value().apply(this) : "");
-            //                itemRenderer.zOffset = 0.0F;
-            //                ((ItemStackHook) (Object) stack).rei_setRenderEnchantmentGlint(true);
-            //            }
         }
     }
 }

+ 0 - 26
src/main/java/me/shedaniel/rei/mixin/MixinItemRenderer.java

@@ -1,26 +0,0 @@
-/*
- * Roughly Enough Items by Danielshe.
- * Licensed under the MIT License.
- */
-
-package me.shedaniel.rei.mixin;
-
-import me.shedaniel.rei.api.ItemRendererHooks;
-import net.minecraft.client.render.VertexConsumer;
-import net.minecraft.client.render.item.ItemRenderer;
-import net.minecraft.client.render.model.BakedModel;
-import net.minecraft.client.util.math.MatrixStack;
-import net.minecraft.item.ItemStack;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-
-@Mixin(ItemRenderer.class)
-public abstract class MixinItemRenderer implements ItemRendererHooks {
-    @Shadow
-    protected abstract void renderBakedItemModel(BakedModel model, ItemStack stack, int light, int overlay, MatrixStack matrices, VertexConsumer vertices);
-    
-    @Override
-    public void rei_renderBakedItemModel(BakedModel model, ItemStack stack, int light, int overlay, MatrixStack matrices, VertexConsumer vertices) {
-        this.renderBakedItemModel(model, stack, light, overlay, matrices, vertices);
-    }
-}

+ 1 - 2
src/main/resources/mixin.roughlyenoughitems.json

@@ -6,8 +6,7 @@
   "mixins": [],
   "client": [
     "MixinBrewingRecipeRegistry",
-    "MixinItemStack",
-    "MixinItemRenderer"
+    "MixinItemStack"
   ],
   "injectors": {
     "defaultRequire": 1