Files
CatServer/patches/net/minecraft/client/renderer/RenderItem.java.patch
2019-02-24 22:29:41 +08:00

122 lines
6.4 KiB
Diff

--- ../src-base/minecraft/net/minecraft/client/renderer/RenderItem.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/RenderItem.java
@@ -71,7 +71,7 @@
public RenderItem(TextureManager p_i46552_1_, ModelManager p_i46552_2_, ItemColors p_i46552_3_)
{
this.textureManager = p_i46552_1_;
- this.itemModelMesher = new ItemModelMesher(p_i46552_2_);
+ this.itemModelMesher = new net.minecraftforge.client.ItemModelMesherForge(p_i46552_2_);
this.registerItems();
this.itemColors = p_i46552_3_;
}
@@ -137,7 +137,7 @@
{
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.enableRescaleNormal();
- TileEntityItemStackRenderer.instance.renderByItem(stack);
+ stack.getItem().getTileEntityItemStackRenderer().renderByItem(stack);
}
else
{
@@ -196,7 +196,7 @@
this.putQuadNormal(renderer, quad);
}
- public void renderQuads(BufferBuilder renderer, List<BakedQuad> quads, int color, ItemStack stack)
+ private void renderQuads(BufferBuilder renderer, List<BakedQuad> quads, int color, ItemStack stack)
{
boolean flag = color == -1 && !stack.isEmpty();
int i = 0;
@@ -218,7 +218,7 @@
k = k | -16777216;
}
- this.renderQuad(renderer, bakedquad, k);
+ net.minecraftforge.client.model.pipeline.LightUtil.renderQuadColor(renderer, bakedquad, k);
}
}
@@ -240,17 +240,7 @@
public IBakedModel getItemModelWithOverrides(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entitylivingbaseIn)
{
IBakedModel ibakedmodel = this.itemModelMesher.getItemModel(stack);
- Item item = stack.getItem();
-
- if (item != null && item.hasCustomProperties())
- {
- ResourceLocation resourcelocation = ibakedmodel.getOverrides().applyOverride(stack, worldIn, entitylivingbaseIn);
- return resourcelocation == null ? ibakedmodel : this.itemModelMesher.getModelManager().getModel(new ModelResourceLocation(resourcelocation, "inventory"));
- }
- else
- {
- return ibakedmodel;
- }
+ return ibakedmodel.getOverrides().handleItemState(ibakedmodel, stack, worldIn, entitylivingbaseIn);
}
public void renderItem(ItemStack stack, EntityLivingBase entitylivingbaseIn, ItemCameraTransforms.TransformType transform, boolean leftHanded)
@@ -274,14 +264,9 @@
GlStateManager.enableBlend();
GlStateManager.tryBlendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
GlStateManager.pushMatrix();
- ItemCameraTransforms itemcameratransforms = bakedmodel.getItemCameraTransforms();
- ItemCameraTransforms.applyTransformSide(itemcameratransforms.getTransform(transform), leftHanded);
+ // TODO: check if negative scale is a thing
+ bakedmodel = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(bakedmodel, transform, leftHanded);
- if (this.isThereOneNegativeScale(itemcameratransforms.getTransform(transform)))
- {
- GlStateManager.cullFace(GlStateManager.CullFace.FRONT);
- }
-
this.renderItem(stack, bakedmodel);
GlStateManager.cullFace(GlStateManager.CullFace.BACK);
GlStateManager.popMatrix();
@@ -314,7 +299,7 @@
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.setupGuiTransform(x, y, bakedmodel.isGui3d());
- bakedmodel.getItemCameraTransforms().applyTransform(ItemCameraTransforms.TransformType.GUI);
+ bakedmodel = net.minecraftforge.client.ForgeHooksClient.handleCameraTransforms(bakedmodel, ItemCameraTransforms.TransformType.GUI, false);
this.renderItem(stack, bakedmodel);
GlStateManager.disableAlpha();
GlStateManager.disableRescaleNormal();
@@ -413,9 +398,12 @@
fr.drawStringWithShadow(s, (float)(xPosition + 19 - 2 - fr.getStringWidth(s)), (float)(yPosition + 6 + 3), 16777215);
GlStateManager.enableLighting();
GlStateManager.enableDepth();
+ // Fixes opaque cooldown overlay a bit lower
+ // TODO: check if enabled blending still screws things up down the line.
+ GlStateManager.enableBlend();
}
- if (stack.isItemDamaged())
+ if (stack.getItem().showDurabilityBar(stack))
{
GlStateManager.disableLighting();
GlStateManager.disableDepth();
@@ -424,11 +412,10 @@
GlStateManager.disableBlend();
Tessellator tessellator = Tessellator.getInstance();
BufferBuilder bufferbuilder = tessellator.getBuffer();
- float f = (float)stack.getItemDamage();
- float f1 = (float)stack.getMaxDamage();
- float f2 = Math.max(0.0F, (f1 - f) / f1);
- int i = Math.round(13.0F - f * 13.0F / f1);
- int j = MathHelper.hsvToRGB(f2 / 3.0F, 1.0F, 1.0F);
+ double health = stack.getItem().getDurabilityForDisplay(stack);
+ int rgbfordisplay = stack.getItem().getRGBDurabilityForDisplay(stack);
+ int i = Math.round(13.0F - (float)health * 13.0F);
+ int j = rgbfordisplay;
this.draw(bufferbuilder, xPosition + 2, yPosition + 13, 13, 2, 0, 0, 0, 255);
this.draw(bufferbuilder, xPosition + 2, yPosition + 13, i, 1, j >> 16 & 255, j >> 8 & 255, j & 255, 255);
GlStateManager.enableBlend();
@@ -1099,6 +1086,7 @@
this.registerBlock(Blocks.STRUCTURE_BLOCK, TileEntityStructure.Mode.LOAD.getModeId(), "structure_block");
this.registerBlock(Blocks.STRUCTURE_BLOCK, TileEntityStructure.Mode.CORNER.getModeId(), "structure_block");
this.registerBlock(Blocks.STRUCTURE_BLOCK, TileEntityStructure.Mode.DATA.getModeId(), "structure_block");
+ net.minecraftforge.client.model.ModelLoader.onRegisterItems(this.itemModelMesher);
}
public void onResourceManagerReload(IResourceManager resourceManager)