A bunch of rendering rejects updated.
This commit is contained in:
parent
c1744f00e0
commit
c9a01a439d
|
@ -1267,7 +1267,7 @@
|
|||
+ * Queries if this block should render in a given layer.
|
||||
+ * ISmartBlockModel can use MinecraftForgeClient.getRenderLayer to alter their model based on layer
|
||||
+ */
|
||||
+ public boolean canRenderInLayer(EnumWorldBlockLayer layer)
|
||||
+ public boolean canRenderInLayer(BlockRenderLayer layer)
|
||||
+ {
|
||||
+ return getBlockLayer() == layer;
|
||||
+ }
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/renderer/BlockRendererDispatcher.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/BlockRendererDispatcher.java
|
||||
@@ -29,7 +29,7 @@
|
||||
public BlockRendererDispatcher(BlockModelShapes p_i46577_1_, BlockColors p_i46577_2_)
|
||||
{
|
||||
this.blockModelShapes = p_i46577_1_;
|
||||
- this.blockModelRenderer = new BlockModelRenderer(p_i46577_2_);
|
||||
+ this.blockModelRenderer = new net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer(p_i46577_2_);
|
||||
this.fluidRenderer = new BlockFluidRenderer(p_i46577_2_);
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
{
|
||||
state = state.func_185899_b(blockAccess, pos);
|
||||
IBakedModel ibakedmodel = this.blockModelShapes.getModelForState(state);
|
||||
- IBakedModel ibakedmodel1 = (new SimpleBakedModel.Builder(state, ibakedmodel, texture, pos)).makeBakedModel();
|
||||
+ IBakedModel ibakedmodel1 = net.minecraftforge.client.ForgeHooksClient.getDamageModel(ibakedmodel, texture, state, blockAccess, pos);
|
||||
this.blockModelRenderer.renderModel(blockAccess, ibakedmodel1, state, pos, Tessellator.getInstance().getWorldRenderer(), true);
|
||||
}
|
||||
}
|
||||
@@ -76,7 +76,9 @@
|
||||
switch (enumblockrendertype)
|
||||
{
|
||||
case MODEL:
|
||||
- return this.blockModelRenderer.renderModel(blockAccess, this.func_184389_a(state), state, pos, worldRendererIn, true);
|
||||
+ IBakedModel model = this.func_184389_a(state);
|
||||
+ state = state.getBlock().getExtendedState(state, blockAccess, pos);
|
||||
+ return this.blockModelRenderer.renderModel(blockAccess, model, state, pos, worldRendererIn, true);
|
||||
case ENTITYBLOCK_ANIMATED:
|
||||
return false;
|
||||
case LIQUID:
|
|
@ -7,14 +7,22 @@
|
|||
- if (!this.mc.thePlayer.getActivePotionEffects().isEmpty())
|
||||
+ boolean hasVisibleEffect = false;
|
||||
+ for(PotionEffect potioneffect : this.mc.thePlayer.getActivePotionEffects()) {
|
||||
+ Potion potion = Potion.potionTypes[potioneffect.getPotionID()];
|
||||
+ Potion potion = potioneffect.func_188419_a();
|
||||
+ if(potion.shouldRender(potioneffect)) { hasVisibleEffect = true; break; }
|
||||
+ }
|
||||
+ if (!this.mc.thePlayer.getActivePotionEffects().isEmpty() && hasVisibleEffect)
|
||||
{
|
||||
this.guiLeft = 160 + (this.width - this.xSize - 200) / 2;
|
||||
this.hasActivePotionEffects = true;
|
||||
@@ -81,6 +86,8 @@
|
||||
@@ -71,6 +76,7 @@
|
||||
for (PotionEffect potioneffect : Ordering.natural().sortedCopy(collection))
|
||||
{
|
||||
Potion potion = potioneffect.func_188419_a();
|
||||
+ if(!potion.shouldRender(potioneffect)) continue;
|
||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
this.mc.getTextureManager().bindTexture(inventoryBackground);
|
||||
this.drawTexturedModalRect(i, j, 0, 166, 140, 32);
|
||||
@@ -81,6 +87,8 @@
|
||||
this.drawTexturedModalRect(i + 6, j + 7, 0 + i1 % 8 * 18, 198 + i1 / 8 * 18, 18, 18);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,14 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/renderer/ItemRenderer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/ItemRenderer.java
|
||||
@@ -360,7 +360,7 @@
|
||||
this.func_187456_a(p_187457_7_, p_187457_5_, enumhandside);
|
||||
}
|
||||
}
|
||||
- else if (p_187457_6_.getItem() == Items.filled_map)
|
||||
+ else if (p_187457_6_.getItem() instanceof net.minecraft.item.ItemMap)
|
||||
{
|
||||
if (flag && this.field_187468_e == null)
|
||||
{
|
||||
@@ -444,6 +444,7 @@
|
||||
if (this.mc.thePlayer.isEntityInsideOpaqueBlock())
|
||||
{
|
||||
|
@ -8,7 +17,21 @@
|
|||
EntityPlayer entityplayer = this.mc.thePlayer;
|
||||
|
||||
for (int i = 0; i < 8; ++i)
|
||||
@@ -470,11 +471,13 @@
|
||||
@@ -457,11 +458,13 @@
|
||||
if (iblockstate1.getBlock().isVisuallyOpaque())
|
||||
{
|
||||
iblockstate = iblockstate1;
|
||||
+ overlayPos = blockpos;
|
||||
}
|
||||
}
|
||||
|
||||
if (iblockstate.func_185901_i() != EnumBlockRenderType.INVISIBLE)
|
||||
{
|
||||
+ if (!net.minecraftforge.event.ForgeEventFactory.renderBlockOverlay(mc.thePlayer, partialTicks, net.minecraftforge.client.event.RenderBlockOverlayEvent.OverlayType.BLOCK, iblockstate, overlayPos))
|
||||
this.func_178108_a(partialTicks, this.mc.getBlockRendererDispatcher().getBlockModelShapes().getTexture(iblockstate));
|
||||
}
|
||||
}
|
||||
@@ -470,11 +473,13 @@
|
||||
{
|
||||
if (this.mc.thePlayer.isInsideOfMaterial(Material.water))
|
||||
{
|
||||
|
@ -22,3 +45,14 @@
|
|||
this.renderFireInFirstPerson(partialTicks);
|
||||
}
|
||||
}
|
||||
@@ -596,8 +601,8 @@
|
||||
else
|
||||
{
|
||||
float f = entityplayersp.func_184825_o(1.0F);
|
||||
- this.field_187469_f += MathHelper.clamp_float((Objects.equal(this.field_187467_d, itemstack) ? f * f * f : 0.0F) - this.field_187469_f, -0.4F, 0.4F);
|
||||
- this.field_187471_h += MathHelper.clamp_float((float)(Objects.equal(this.field_187468_e, itemstack1) ? 1 : 0) - this.field_187471_h, -0.4F, 0.4F);
|
||||
+ this.field_187469_f += MathHelper.clamp_float((net.minecraftforge.client.ForgeHooksClient.shouldCauseReequipAnimation(this.field_187467_d, itemstack) ? f * f * f : 0.0F) - this.field_187469_f, -0.4F, 0.4F);
|
||||
+ this.field_187471_h += MathHelper.clamp_float((float)(net.minecraftforge.client.ForgeHooksClient.shouldCauseReequipAnimation(this.field_187468_e, itemstack1) ? 1 : 0) - this.field_187471_h, -0.4F, 0.4F);
|
||||
}
|
||||
|
||||
if (this.field_187469_f < 0.1F)
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
++++ REJECTED PATCH 1
|
||||
--- ../src-base/minecraft/net/minecraft/client/renderer/VertexBuffer.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/VertexBuffer.java
|
||||
@@ -510,15 +510,15 @@
|
||||
break;
|
||||
case USHORT:
|
||||
case SHORT:
|
||||
|
@ -20,22 +22,13 @@
|
|||
}
|
||||
|
||||
this.nextVertexFormatIndex();
|
||||
++++ END PATCH
|
||||
++++ REJECTED PATCH 2
|
||||
@@ -609,4 +609,9 @@
|
||||
return this.stateVertexFormat;
|
||||
}
|
||||
}
|
||||
|
||||
+ public void checkAndGrow()
|
||||
+ {
|
||||
+ this.growBuffer(vertexFormat.getNextOffset()/* / 4 * 4 */);
|
||||
+ }
|
||||
+
|
||||
+ public boolean isColorDisabled()
|
||||
+ {
|
||||
+ return noColor;
|
||||
+ return noColor;
|
||||
+ }
|
||||
+
|
||||
@SideOnly(Side.CLIENT)
|
||||
public class State
|
||||
{
|
||||
++++ END PATCH
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/renderer/WorldVertexBufferUploader.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/WorldVertexBufferUploader.java
|
||||
@@ -28,26 +28,8 @@
|
||||
int l = vertexformatelement.getIndex();
|
||||
bytebuffer.position(vertexformat.func_181720_d(j));
|
||||
|
||||
- switch (vertexformatelement$enumusage)
|
||||
- {
|
||||
- case POSITION:
|
||||
- GlStateManager.func_187427_b(vertexformatelement.getElementCount(), k, i, bytebuffer);
|
||||
- GlStateManager.func_187410_q(32884);
|
||||
- break;
|
||||
- case UV:
|
||||
- OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit + l);
|
||||
- GlStateManager.func_187404_a(vertexformatelement.getElementCount(), k, i, bytebuffer);
|
||||
- GlStateManager.func_187410_q(32888);
|
||||
- OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit);
|
||||
- break;
|
||||
- case COLOR:
|
||||
- GlStateManager.func_187400_c(vertexformatelement.getElementCount(), k, i, bytebuffer);
|
||||
- GlStateManager.func_187410_q(32886);
|
||||
- break;
|
||||
- case NORMAL:
|
||||
- GlStateManager.func_187446_a(k, i, bytebuffer);
|
||||
- GlStateManager.func_187410_q(32885);
|
||||
- }
|
||||
+ // moved to VertexFormatElement.preDraw
|
||||
+ vertexformatelement.getUsage().preDraw(vertexformat, j, i, bytebuffer);
|
||||
}
|
||||
|
||||
GlStateManager.func_187439_f(p_181679_1_.getDrawMode(), 0, p_181679_1_.getVertexCount());
|
||||
@@ -59,23 +41,8 @@
|
||||
VertexFormatElement.EnumUsage vertexformatelement$enumusage1 = vertexformatelement1.getUsage();
|
||||
int k1 = vertexformatelement1.getIndex();
|
||||
|
||||
- switch (vertexformatelement$enumusage1)
|
||||
- {
|
||||
- case POSITION:
|
||||
- GlStateManager.func_187429_p(32884);
|
||||
- break;
|
||||
- case UV:
|
||||
- OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit + k1);
|
||||
- GlStateManager.func_187429_p(32888);
|
||||
- OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit);
|
||||
- break;
|
||||
- case COLOR:
|
||||
- GlStateManager.func_187429_p(32886);
|
||||
- GlStateManager.resetColor();
|
||||
- break;
|
||||
- case NORMAL:
|
||||
- GlStateManager.func_187429_p(32885);
|
||||
- }
|
||||
+ // moved to VertexFormatElement.postDraw
|
||||
+ vertexformatelement1.getUsage().postDraw(vertexformat, i1, i, bytebuffer);
|
||||
}
|
||||
}
|
||||
|
|
@ -20,7 +20,18 @@
|
|||
{
|
||||
TileEntity tileentity = iblockaccess.getTileEntity(new BlockPos(blockpos$mutableblockpos));
|
||||
TileEntitySpecialRenderer<TileEntity> tileentityspecialrenderer = TileEntityRendererDispatcher.instance.<TileEntity>getSpecialRenderer(tileentity);
|
||||
@@ -191,6 +193,7 @@
|
||||
@@ -176,7 +178,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
- BlockRenderLayer blockrenderlayer1 = block.getBlockLayer();
|
||||
+ for(BlockRenderLayer blockrenderlayer1 : BlockRenderLayer.values()) {
|
||||
+ if(!block.canRenderInLayer(blockrenderlayer1)) continue;
|
||||
+ net.minecraftforge.client.ForgeHooksClient.setRenderLayer(blockrenderlayer1);
|
||||
int j = blockrenderlayer1.ordinal();
|
||||
|
||||
if (block.getDefaultState().func_185901_i() != EnumBlockRenderType.INVISIBLE)
|
||||
@@ -191,6 +195,7 @@
|
||||
|
||||
aboolean[j] |= blockrendererdispatcher.renderBlock(iblockstate, blockpos$mutableblockpos, iblockaccess, vertexbuffer);
|
||||
}
|
||||
|
@ -28,7 +39,7 @@
|
|||
}
|
||||
|
||||
for (BlockRenderLayer blockrenderlayer : BlockRenderLayer.values())
|
||||
@@ -413,6 +416,26 @@
|
||||
@@ -413,6 +418,26 @@
|
||||
return this.needsUpdate && this.field_188284_q;
|
||||
}
|
||||
|
||||
|
|
|
@ -40,11 +40,62 @@
|
|||
}
|
||||
|
||||
private void initMissingImage()
|
||||
@@ -139,9 +152,13 @@
|
||||
@@ -88,12 +101,26 @@
|
||||
int j = Integer.MAX_VALUE;
|
||||
int k = 1 << this.mipmapLevels;
|
||||
|
||||
+ net.minecraftforge.client.ForgeHooksClient.onTextureStitchedPre(this);
|
||||
+ net.minecraftforge.fml.common.FMLLog.info("Max texture size: %d", i);
|
||||
+ net.minecraftforge.fml.common.ProgressManager.ProgressBar bar = net.minecraftforge.fml.common.ProgressManager.push("Texture stitching", skipFirst ? 0 : this.mapRegisteredSprites.size());
|
||||
+
|
||||
+ if(!skipFirst)
|
||||
for (Entry<String, TextureAtlasSprite> entry : this.mapRegisteredSprites.entrySet())
|
||||
{
|
||||
TextureAtlasSprite textureatlassprite = (TextureAtlasSprite)entry.getValue();
|
||||
ResourceLocation resourcelocation = this.func_184396_a(textureatlassprite);
|
||||
+ bar.step(resourcelocation.getResourcePath());
|
||||
IResource iresource = null;
|
||||
|
||||
+ if (textureatlassprite.hasCustomLoader(resourceManager, resourcelocation))
|
||||
+ {
|
||||
+ if (textureatlassprite.load(resourceManager, resourcelocation))
|
||||
+ {
|
||||
+ continue;
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
try
|
||||
{
|
||||
PngSizeInfo pngsizeinfo = PngSizeInfo.func_188532_a(resourceManager.getResource(resourcelocation));
|
||||
@@ -103,12 +130,14 @@
|
||||
}
|
||||
catch (RuntimeException runtimeexception)
|
||||
{
|
||||
- logger.error((String)("Unable to parse metadata from " + resourcelocation), (Throwable)runtimeexception);
|
||||
+ //logger.error((String)("Unable to parse metadata from " + resourcelocation), (Throwable)runtimeexception);
|
||||
+ net.minecraftforge.fml.client.FMLClientHandler.instance().trackBrokenTexture(resourcelocation, runtimeexception.getMessage());
|
||||
continue;
|
||||
}
|
||||
catch (IOException ioexception)
|
||||
{
|
||||
- logger.error((String)("Using missing texture, unable to load " + resourcelocation), (Throwable)ioexception);
|
||||
+ //logger.error((String)("Using missing texture, unable to load " + resourcelocation), (Throwable)ioexception);
|
||||
+ net.minecraftforge.fml.client.FMLClientHandler.instance().trackMissingTexture(resourcelocation);
|
||||
continue;
|
||||
}
|
||||
finally
|
||||
@@ -128,6 +157,7 @@
|
||||
stitcher.addSprite(textureatlassprite);
|
||||
}
|
||||
|
||||
+ net.minecraftforge.fml.common.ProgressManager.pop(bar);
|
||||
int l = Math.min(j, k);
|
||||
int i1 = MathHelper.calculateLogBaseTwo(l);
|
||||
|
||||
@@ -139,9 +169,12 @@
|
||||
|
||||
this.missingImage.generateMipmaps(this.mipmapLevels);
|
||||
stitcher.addSprite(this.missingImage);
|
||||
+ net.minecraftforge.fml.common.ProgressManager.pop(bar);
|
||||
+ skipFirst = false;
|
||||
+ bar = net.minecraftforge.fml.common.ProgressManager.push("Texture creation", 3);
|
||||
|
||||
|
@ -54,9 +105,21 @@
|
|||
stitcher.doStitch();
|
||||
}
|
||||
catch (StitcherException stitcherexception)
|
||||
@@ -253,6 +270,13 @@
|
||||
crashreportcategory.addCrashSection("Mipmap levels", Integer.valueOf(this.mipmapLevels));
|
||||
throw new ReportedException(crashreport);
|
||||
@@ -150,9 +183,11 @@
|
||||
}
|
||||
|
||||
logger.info("Created: {}x{} {}-atlas", new Object[] {Integer.valueOf(stitcher.getCurrentWidth()), Integer.valueOf(stitcher.getCurrentHeight()), this.basePath});
|
||||
+ bar.step("Allocating GL texture");
|
||||
TextureUtil.allocateTextureImpl(this.getGlTextureId(), this.mipmapLevels, stitcher.getCurrentWidth(), stitcher.getCurrentHeight());
|
||||
Map<String, TextureAtlasSprite> map = Maps.<String, TextureAtlasSprite>newHashMap(this.mapRegisteredSprites);
|
||||
|
||||
+ bar.step("Uploading GL texture");
|
||||
for (TextureAtlasSprite textureatlassprite1 : stitcher.getStichSlots())
|
||||
{
|
||||
if (textureatlassprite1 == this.missingImage || this.func_184397_a(resourceManager, textureatlassprite1))
|
||||
@@ -185,6 +220,13 @@
|
||||
{
|
||||
textureatlassprite2.copyFrom(this.missingImage);
|
||||
}
|
||||
+
|
||||
+ net.minecraftforge.client.ForgeHooksClient.onTextureStitchedPost(this);
|
||||
|
@ -67,8 +130,8 @@
|
|||
+ net.minecraftforge.fml.common.ProgressManager.pop(bar);
|
||||
}
|
||||
|
||||
private ResourceLocation func_184396_a(TextureAtlasSprite p_184396_1_)
|
||||
@@ -317,4 +341,37 @@
|
||||
private boolean func_184397_a(IResourceManager p_184397_1_, final TextureAtlasSprite p_184397_2_)
|
||||
@@ -317,4 +359,37 @@
|
||||
{
|
||||
return this.missingImage;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,21 @@
|
|||
--- ../src-base/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java
|
||||
+++ ../src-work/minecraft/net/minecraft/client/renderer/tileentity/TileEntityRendererDispatcher.java
|
||||
@@ -129,6 +129,11 @@
|
||||
@@ -106,11 +106,14 @@
|
||||
{
|
||||
if (tileentityIn.getDistanceSq(this.entityX, this.entityY, this.entityZ) < tileentityIn.getMaxRenderDistanceSquared())
|
||||
{
|
||||
+ if(!tileentityIn.hasFastRenderer())
|
||||
+ {
|
||||
int i = this.worldObj.getCombinedLight(tileentityIn.getPos(), 0);
|
||||
int j = i % 65536;
|
||||
int k = i / 65536;
|
||||
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)j, (float)k);
|
||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
+ }
|
||||
BlockPos blockpos = tileentityIn.getPos();
|
||||
this.renderTileEntityAt(tileentityIn, (double)blockpos.getX() - staticPlayerX, (double)blockpos.getY() - staticPlayerY, (double)blockpos.getZ() - staticPlayerZ, partialTicks, destroyStage);
|
||||
}
|
||||
@@ -129,6 +132,11 @@
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -12,7 +27,7 @@
|
|||
tileentityspecialrenderer.renderTileEntityAt(tileEntityIn, x, y, z, partialTicks, destroyStage);
|
||||
}
|
||||
catch (Throwable throwable)
|
||||
@@ -155,4 +160,49 @@
|
||||
@@ -155,4 +163,49 @@
|
||||
{
|
||||
return this.fontRenderer;
|
||||
}
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
++++ REJECTED PATCH 1
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static enum EnumNeighborInfo
|
||||
{
|
||||
- DOWN(new EnumFacing[]{EnumFacing.WEST, EnumFacing.EAST, EnumFacing.NORTH, EnumFacing.SOUTH}, 0.5F, false, new BlockModelRenderer.Orientation[0], new BlockModelRenderer.Orientation[0], new BlockModelRenderer.Orientation[0], new BlockModelRenderer.Orientation[0]),
|
||||
- UP(new EnumFacing[]{EnumFacing.EAST, EnumFacing.WEST, EnumFacing.NORTH, EnumFacing.SOUTH}, 1.0F, false, new BlockModelRenderer.Orientation[0], new BlockModelRenderer.Orientation[0], new BlockModelRenderer.Orientation[0], new BlockModelRenderer.Orientation[0]),
|
||||
+ // -- Forge Patch to Fix Top/Bottom Lighting Interpolation --
|
||||
+ // Forge PR - https://github.com/MinecraftForge/MinecraftForge/pull/1892
|
||||
+ // Mojang Bug - https://bugs.mojang.com/browse/MC-80148
|
||||
+ DOWN( new EnumFacing[]{ EnumFacing.WEST, EnumFacing.EAST, EnumFacing.NORTH, EnumFacing.SOUTH }, 0.5F, true,
|
||||
+ new Orientation[]{ Orientation.FLIP_WEST, Orientation.SOUTH, Orientation.FLIP_WEST, Orientation.FLIP_SOUTH, Orientation.WEST, Orientation.FLIP_SOUTH, Orientation.WEST, Orientation.SOUTH },
|
||||
+ new Orientation[]{ Orientation.FLIP_WEST, Orientation.NORTH, Orientation.FLIP_WEST, Orientation.FLIP_NORTH, Orientation.WEST, Orientation.FLIP_NORTH, Orientation.WEST, Orientation.NORTH },
|
||||
+ new Orientation[]{ Orientation.FLIP_EAST, Orientation.NORTH, Orientation.FLIP_EAST, Orientation.FLIP_NORTH, Orientation.EAST, Orientation.FLIP_NORTH, Orientation.EAST, Orientation.NORTH },
|
||||
+ new Orientation[]{ Orientation.FLIP_EAST, Orientation.SOUTH, Orientation.FLIP_EAST, Orientation.FLIP_SOUTH, Orientation.EAST, Orientation.FLIP_SOUTH, Orientation.EAST, Orientation.SOUTH } ),
|
||||
+ UP( new EnumFacing[]{ EnumFacing.EAST, EnumFacing.WEST, EnumFacing.NORTH, EnumFacing.SOUTH }, 1.0F, true,
|
||||
+ new Orientation[]{ Orientation.EAST, Orientation.SOUTH, Orientation.EAST, Orientation.FLIP_SOUTH, Orientation.FLIP_EAST, Orientation.FLIP_SOUTH, Orientation.FLIP_EAST, Orientation.SOUTH },
|
||||
+ new Orientation[]{ Orientation.EAST, Orientation.NORTH, Orientation.EAST, Orientation.FLIP_NORTH, Orientation.FLIP_EAST, Orientation.FLIP_NORTH, Orientation.FLIP_EAST, Orientation.NORTH },
|
||||
+ new Orientation[]{ Orientation.WEST, Orientation.NORTH, Orientation.WEST, Orientation.FLIP_NORTH, Orientation.FLIP_WEST, Orientation.FLIP_NORTH, Orientation.FLIP_WEST, Orientation.NORTH },
|
||||
+ new Orientation[]{ Orientation.WEST, Orientation.SOUTH, Orientation.WEST, Orientation.FLIP_SOUTH, Orientation.FLIP_WEST, Orientation.FLIP_SOUTH, Orientation.FLIP_WEST, Orientation.SOUTH } ),
|
||||
NORTH(new EnumFacing[]{EnumFacing.UP, EnumFacing.DOWN, EnumFacing.EAST, EnumFacing.WEST}, 0.8F, true, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.FLIP_WEST, BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.WEST, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.WEST, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.FLIP_WEST}, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.FLIP_EAST, BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.EAST, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.EAST, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.FLIP_EAST}, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.FLIP_EAST, BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.EAST, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.EAST, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.FLIP_EAST}, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.FLIP_WEST, BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.WEST, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.WEST, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.FLIP_WEST}),
|
||||
SOUTH(new EnumFacing[]{EnumFacing.WEST, EnumFacing.EAST, EnumFacing.DOWN, EnumFacing.UP}, 0.8F, true, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.FLIP_WEST, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.FLIP_WEST, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.WEST, BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.WEST}, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.FLIP_WEST, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.FLIP_WEST, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.WEST, BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.WEST}, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.FLIP_EAST, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.FLIP_EAST, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.EAST, BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.EAST}, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.FLIP_EAST, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.FLIP_EAST, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.EAST, BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.EAST}),
|
||||
WEST(new EnumFacing[]{EnumFacing.UP, EnumFacing.DOWN, EnumFacing.NORTH, EnumFacing.SOUTH}, 0.6F, true, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.SOUTH, BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.FLIP_SOUTH, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.FLIP_SOUTH, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.SOUTH}, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.NORTH, BlockModelRenderer.Orientation.UP, BlockModelRenderer.Orientation.FLIP_NORTH, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.FLIP_NORTH, BlockModelRenderer.Orientation.FLIP_UP, BlockModelRenderer.Orientation.NORTH}, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.NORTH, BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.FLIP_NORTH, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.FLIP_NORTH, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.NORTH}, new BlockModelRenderer.Orientation[]{BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.SOUTH, BlockModelRenderer.Orientation.DOWN, BlockModelRenderer.Orientation.FLIP_SOUTH, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.FLIP_SOUTH, BlockModelRenderer.Orientation.FLIP_DOWN, BlockModelRenderer.Orientation.SOUTH}),
|
||||
++++ END PATCH
|
|
@ -1,50 +0,0 @@
|
|||
++++ REJECTED PATCH 1
|
||||
{
|
||||
private BlockModelShapes blockModelShapes;
|
||||
private final GameSettings gameSettings;
|
||||
- private final BlockModelRenderer blockModelRenderer = new BlockModelRenderer();
|
||||
+ private final BlockModelRenderer blockModelRenderer = new net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer();
|
||||
private final ChestRenderer chestRenderer = new ChestRenderer();
|
||||
private final BlockFluidRenderer fluidRenderer = new BlockFluidRenderer();
|
||||
|
||||
++++ END PATCH
|
||||
++++ REJECTED PATCH 2
|
||||
{
|
||||
state = block.getActualState(state, blockAccess, pos);
|
||||
IBakedModel ibakedmodel = this.blockModelShapes.getModelForState(state);
|
||||
+
|
||||
+ if(ibakedmodel instanceof net.minecraftforge.client.model.ISmartBlockModel)
|
||||
+ {
|
||||
+ IBlockState extendedState = block.getExtendedState(state, blockAccess, pos);
|
||||
+ for ( net.minecraft.util.EnumWorldBlockLayer layer : net.minecraft.util.EnumWorldBlockLayer.values() )
|
||||
+ {
|
||||
+ if ( block.canRenderInLayer( layer ) )
|
||||
+ {
|
||||
+ net.minecraftforge.client.ForgeHooksClient.setRenderLayer(layer);
|
||||
+
|
||||
+ IBakedModel targetLayer = ((net.minecraftforge.client.model.ISmartBlockModel)ibakedmodel).handleBlockState(extendedState);
|
||||
+ IBakedModel damageModel = (new SimpleBakedModel.Builder(targetLayer, texture)).makeBakedModel();
|
||||
+ this.blockModelRenderer.renderModel(blockAccess, damageModel, state, pos, Tessellator.getInstance().getWorldRenderer());
|
||||
+ }
|
||||
+ }
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
IBakedModel ibakedmodel1 = (new SimpleBakedModel.Builder(ibakedmodel, texture)).makeBakedModel();
|
||||
this.blockModelRenderer.renderModel(blockAccess, ibakedmodel1, state, pos, Tessellator.getInstance().getWorldRenderer());
|
||||
}
|
||||
++++ END PATCH
|
||||
++++ REJECTED PATCH 3
|
||||
ibakedmodel = ((WeightedBakedModel)ibakedmodel).getAlternativeModel(MathHelper.getPositionRandom(pos));
|
||||
}
|
||||
|
||||
+ if(ibakedmodel instanceof net.minecraftforge.client.model.ISmartBlockModel)
|
||||
+ {
|
||||
+ IBlockState extendedState = block.getExtendedState(state, worldIn, pos);
|
||||
+ ibakedmodel = ((net.minecraftforge.client.model.ISmartBlockModel)ibakedmodel).handleBlockState(extendedState);
|
||||
+ }
|
||||
+
|
||||
return ibakedmodel;
|
||||
}
|
||||
|
||||
++++ END PATCH
|
|
@ -1,9 +0,0 @@
|
|||
++++ REJECTED PATCH 2
|
||||
for (PotionEffect potioneffect : this.mc.thePlayer.getActivePotionEffects())
|
||||
{
|
||||
Potion potion = Potion.potionTypes[potioneffect.getPotionID()];
|
||||
+ if(!potion.shouldRender(potioneffect)) continue;
|
||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
this.mc.getTextureManager().bindTexture(inventoryBackground);
|
||||
this.drawTexturedModalRect(i, j, 0, 166, 140, 32);
|
||||
++++ END PATCH
|
|
@ -1,39 +0,0 @@
|
|||
++++ REJECTED PATCH 1
|
||||
|
||||
if (this.itemToRender != null)
|
||||
{
|
||||
- if (this.itemToRender.getItem() == Items.filled_map)
|
||||
+ if (this.itemToRender.getItem() instanceof net.minecraft.item.ItemMap)
|
||||
{
|
||||
this.renderItemMap(abstractclientplayer, f2, f, f1);
|
||||
}
|
||||
++++ END PATCH
|
||||
++++ REJECTED PATCH 3
|
||||
if (iblockstate1.getBlock().isVisuallyOpaque())
|
||||
{
|
||||
iblockstate = iblockstate1;
|
||||
+ overlayPos = blockpos;
|
||||
}
|
||||
}
|
||||
|
||||
if (iblockstate.getBlock().getRenderType() != -1)
|
||||
{
|
||||
+ if (!net.minecraftforge.event.ForgeEventFactory.renderBlockOverlay(mc.thePlayer, partialTicks, net.minecraftforge.client.event.RenderBlockOverlayEvent.OverlayType.BLOCK, iblockstate, overlayPos))
|
||||
this.func_178108_a(partialTicks, this.mc.getBlockRendererDispatcher().getBlockModelShapes().getTexture(iblockstate));
|
||||
}
|
||||
}
|
||||
++++ END PATCH
|
||||
++++ REJECTED PATCH 5
|
||||
{
|
||||
if (!this.itemToRender.getIsItemStackEqual(itemstack))
|
||||
{
|
||||
+ if (!this.itemToRender.getItem().shouldCauseReequipAnimation(this.itemToRender, itemstack, equippedItemSlot != entityplayer.inventory.currentItem))
|
||||
+ {
|
||||
+ this.itemToRender = itemstack;
|
||||
+ this.equippedItemSlot = entityplayer.inventory.currentItem;
|
||||
+ return;
|
||||
+ }
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
++++ END PATCH
|
|
@ -1,66 +0,0 @@
|
|||
++++ REJECTED PATCH 1
|
||||
|
||||
for (int j = 0; j < list.size(); ++j)
|
||||
{
|
||||
+ // moved to VertexFormatElement.preDraw
|
||||
VertexFormatElement vertexformatelement = (VertexFormatElement)list.get(j);
|
||||
- VertexFormatElement.EnumUsage vertexformatelement$enumusage = vertexformatelement.getUsage();
|
||||
- int k = vertexformatelement.getType().getGlConstant();
|
||||
- int l = vertexformatelement.getIndex();
|
||||
- bytebuffer.position(vertexformat.func_181720_d(j));
|
||||
-
|
||||
- switch (vertexformatelement$enumusage)
|
||||
- {
|
||||
- case POSITION:
|
||||
- GL11.glVertexPointer(vertexformatelement.getElementCount(), k, i, bytebuffer);
|
||||
- GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY);
|
||||
- break;
|
||||
- case UV:
|
||||
- OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit + l);
|
||||
- GL11.glTexCoordPointer(vertexformatelement.getElementCount(), k, i, bytebuffer);
|
||||
- GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
|
||||
- OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit);
|
||||
- break;
|
||||
- case COLOR:
|
||||
- GL11.glColorPointer(vertexformatelement.getElementCount(), k, i, bytebuffer);
|
||||
- GL11.glEnableClientState(GL11.GL_COLOR_ARRAY);
|
||||
- break;
|
||||
- case NORMAL:
|
||||
- GL11.glNormalPointer(k, i, bytebuffer);
|
||||
- GL11.glEnableClientState(GL11.GL_NORMAL_ARRAY);
|
||||
- }
|
||||
+ vertexformatelement.getUsage().preDraw(vertexformat, j, i, bytebuffer);
|
||||
}
|
||||
|
||||
GL11.glDrawArrays(p_181679_1_.getDrawMode(), 0, p_181679_1_.getVertexCount());
|
||||
++++ END PATCH
|
||||
++++ REJECTED PATCH 2
|
||||
for (int j1 = list.size(); i1 < j1; ++i1)
|
||||
{
|
||||
VertexFormatElement vertexformatelement1 = (VertexFormatElement)list.get(i1);
|
||||
- VertexFormatElement.EnumUsage vertexformatelement$enumusage1 = vertexformatelement1.getUsage();
|
||||
- int k1 = vertexformatelement1.getIndex();
|
||||
-
|
||||
- switch (vertexformatelement$enumusage1)
|
||||
- {
|
||||
- case POSITION:
|
||||
- GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY);
|
||||
- break;
|
||||
- case UV:
|
||||
- OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit + k1);
|
||||
- GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);
|
||||
- OpenGlHelper.setClientActiveTexture(OpenGlHelper.defaultTexUnit);
|
||||
- break;
|
||||
- case COLOR:
|
||||
- GL11.glDisableClientState(GL11.GL_COLOR_ARRAY);
|
||||
- GlStateManager.resetColor();
|
||||
- break;
|
||||
- case NORMAL:
|
||||
- GL11.glDisableClientState(GL11.GL_NORMAL_ARRAY);
|
||||
- }
|
||||
+ // moved to VertexFormatElement.postDraw
|
||||
+ vertexformatelement1.getUsage().postDraw(vertexformat, i1, i, bytebuffer);
|
||||
}
|
||||
}
|
||||
|
||||
++++ END PATCH
|
|
@ -1,12 +0,0 @@
|
|||
++++ REJECTED PATCH 3
|
||||
}
|
||||
}
|
||||
|
||||
- EnumWorldBlockLayer enumworldblocklayer1 = block.getBlockLayer();
|
||||
+ for(EnumWorldBlockLayer enumworldblocklayer1 : EnumWorldBlockLayer.values()) {
|
||||
+ if(!block.canRenderInLayer(enumworldblocklayer1)) continue;
|
||||
+ net.minecraftforge.client.ForgeHooksClient.setRenderLayer(enumworldblocklayer1);
|
||||
int j = enumworldblocklayer1.ordinal();
|
||||
|
||||
if (block.getRenderType() != -1)
|
||||
++++ END PATCH
|
|
@ -1,60 +1,3 @@
|
|||
++++ REJECTED PATCH 4
|
||||
int j = Integer.MAX_VALUE;
|
||||
int k = 1 << this.mipmapLevels;
|
||||
|
||||
+ net.minecraftforge.client.ForgeHooksClient.onTextureStitchedPre(this);
|
||||
+ net.minecraftforge.fml.common.FMLLog.info("Max texture size: %d", i);
|
||||
+ net.minecraftforge.fml.common.ProgressManager.ProgressBar bar = net.minecraftforge.fml.common.ProgressManager.push("Texture stitching", skipFirst ? 0 : this.mapRegisteredSprites.size());
|
||||
+
|
||||
+ if(!skipFirst)
|
||||
for (Entry<String, TextureAtlasSprite> entry : this.mapRegisteredSprites.entrySet())
|
||||
{
|
||||
TextureAtlasSprite textureatlassprite = (TextureAtlasSprite)entry.getValue();
|
||||
ResourceLocation resourcelocation = new ResourceLocation(textureatlassprite.getIconName());
|
||||
ResourceLocation resourcelocation1 = this.completeResourceLocation(resourcelocation, 0);
|
||||
+ bar.step(resourcelocation1.getResourcePath());
|
||||
|
||||
+ if (textureatlassprite.hasCustomLoader(resourceManager, resourcelocation))
|
||||
+ {
|
||||
+ if (!textureatlassprite.load(resourceManager, resourcelocation))
|
||||
+ {
|
||||
+ j = Math.min(j, Math.min(textureatlassprite.getIconWidth(), textureatlassprite.getIconHeight()));
|
||||
+ stitcher.addSprite(textureatlassprite);
|
||||
+ }
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
try
|
||||
{
|
||||
IResource iresource = resourceManager.getResource(resourcelocation1);
|
||||
++++ END PATCH
|
||||
++++ REJECTED PATCH 5
|
||||
}
|
||||
catch (RuntimeException runtimeexception)
|
||||
{
|
||||
- logger.error((String)("Unable to parse metadata from " + resourcelocation1), (Throwable)runtimeexception);
|
||||
+ //logger.error((String)("Unable to parse metadata from " + resourcelocation1), (Throwable)runtimeexception);
|
||||
+ net.minecraftforge.fml.client.FMLClientHandler.instance().trackBrokenTexture(resourcelocation1, runtimeexception.getMessage());
|
||||
continue;
|
||||
}
|
||||
catch (IOException ioexception1)
|
||||
{
|
||||
- logger.error((String)("Using missing texture, unable to load " + resourcelocation1), (Throwable)ioexception1);
|
||||
+ //logger.error((String)("Using missing texture, unable to load " + resourcelocation1), (Throwable)ioexception1);
|
||||
+ net.minecraftforge.fml.client.FMLClientHandler.instance().trackMissingTexture(resourcelocation1);
|
||||
continue;
|
||||
}
|
||||
|
||||
++++ END PATCH
|
||||
++++ REJECTED PATCH 6
|
||||
stitcher.addSprite(textureatlassprite);
|
||||
}
|
||||
|
||||
+ net.minecraftforge.fml.common.ProgressManager.pop(bar);
|
||||
int j1 = Math.min(j, k);
|
||||
int k1 = MathHelper.calculateLogBaseTwo(j1);
|
||||
|
||||
++++ END PATCH
|
||||
++++ REJECTED PATCH 7
|
||||
this.mipmapLevels = k1;
|
||||
}
|
||||
|
@ -68,16 +11,3 @@
|
|||
{
|
||||
textureatlassprite1.generateMipmaps(this.mipmapLevels);
|
||||
++++ END PATCH
|
||||
++++ REJECTED PATCH 9
|
||||
}
|
||||
|
||||
logger.info("Created: {}x{} {}-atlas", new Object[] {Integer.valueOf(stitcher.getCurrentWidth()), Integer.valueOf(stitcher.getCurrentHeight()), this.basePath});
|
||||
+ bar.step("Allocating GL texture");
|
||||
TextureUtil.allocateTextureImpl(this.getGlTextureId(), this.mipmapLevels, stitcher.getCurrentWidth(), stitcher.getCurrentHeight());
|
||||
Map<String, TextureAtlasSprite> map = Maps.<String, TextureAtlasSprite>newHashMap(this.mapRegisteredSprites);
|
||||
|
||||
+ bar.step("Uploading GL texture");
|
||||
for (TextureAtlasSprite textureatlassprite2 : stitcher.getStichSlots())
|
||||
{
|
||||
String s = textureatlassprite2.getIconName();
|
||||
++++ END PATCH
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
++++ REJECTED PATCH 1
|
||||
{
|
||||
if (tileentityIn.getDistanceSq(this.entityX, this.entityY, this.entityZ) < tileentityIn.getMaxRenderDistanceSquared())
|
||||
{
|
||||
+ if(!tileentityIn.hasFastRenderer())
|
||||
+ {
|
||||
int i = this.worldObj.getCombinedLight(tileentityIn.getPos(), 0);
|
||||
int j = i % 65536;
|
||||
int k = i / 65536;
|
||||
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)j / 1.0F, (float)k / 1.0F);
|
||||
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
+ }
|
||||
BlockPos blockpos = tileentityIn.getPos();
|
||||
this.renderTileEntityAt(tileentityIn, (double)blockpos.getX() - staticPlayerX, (double)blockpos.getY() - staticPlayerY, (double)blockpos.getZ() - staticPlayerZ, partialTicks, destroyStage);
|
||||
}
|
||||
++++ END PATCH
|
|
@ -26,6 +26,7 @@ import net.minecraft.client.renderer.EntityRenderer;
|
|||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.renderer.RenderGlobal;
|
||||
import net.minecraft.client.renderer.VertexBuffer;
|
||||
import net.minecraft.client.renderer.block.model.BakedQuad;
|
||||
import net.minecraft.client.renderer.block.model.IBakedModel;
|
||||
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
|
||||
|
@ -34,6 +35,8 @@ import net.minecraft.client.renderer.block.model.ModelBakery;
|
|||
import net.minecraft.client.renderer.block.model.ModelManager;
|
||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraft.client.renderer.block.model.ModelRotation;
|
||||
import net.minecraft.client.renderer.block.model.SimpleBakedModel;
|
||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||
import net.minecraft.client.renderer.texture.TextureManager;
|
||||
import net.minecraft.client.renderer.texture.TextureMap;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
|
||||
|
@ -83,6 +86,7 @@ import net.minecraftforge.fml.common.FMLLog;
|
|||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.lwjgl.BufferUtils;
|
||||
|
||||
import com.google.common.base.Objects;
|
||||
import com.google.common.base.Optional;
|
||||
import com.google.common.collect.Maps;
|
||||
|
||||
|
@ -594,4 +598,21 @@ public class ForgeHooksClient
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static IBakedModel getDamageModel(IBakedModel ibakedmodel, TextureAtlasSprite texture, IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
{
|
||||
// TODO custom damage models
|
||||
// state = state.block.getExtendedState(state, world, pos);
|
||||
return (new SimpleBakedModel.Builder(state, ibakedmodel, texture, pos)).makeBakedModel();
|
||||
}
|
||||
|
||||
public static boolean shouldCauseReequipAnimation(ItemStack from, ItemStack to)
|
||||
{
|
||||
if(!Objects.equal(from, to) || from == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// FIXME: 3rd argument?
|
||||
return from.getItem().shouldCauseReequipAnimation(from, to);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue