Java 类net.minecraft.client.renderer.BlockModelRenderer 实例源码
项目:CodeChickenLib
文件:BlockRenderingRegistry.java
static void renderBlockDamage(IBlockAccess world, BlockPos pos, IBlockState state, TextureAtlasSprite sprite) {
ICCBlockRenderer renderer = blockRendererList.get(state.getRenderType());
if (renderer != null) {
state = state.getActualState(world, pos);
//TODO This needs to be optimized, probably not the most efficient thing in the world..
BufferBuilder parent = Tessellator.getInstance().getBuffer();
BakingVertexBuffer buffer = BakingVertexBuffer.create();
buffer.setTranslation(-pos.getX(), -pos.getY(), -pos.getZ());
buffer.begin(7, parent.getVertexFormat());
renderer.handleRenderBlockDamage(world, pos, state, sprite, buffer);
buffer.finishDrawing();
buffer.setTranslation(0, 0, 0);
BlockModelRenderer modelRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelRenderer();
modelRenderer.renderModel(world, new PerspectiveAwareBakedModel(buffer.bake(), TransformUtils.DEFAULT_BLOCK, new ModelProperties(true, true, null)), state, pos, parent, true);
}
}
项目:WearableBackpacks
文件:RendererBackpack.java
private static void renderBackpack(IBackpack backpack, float ticks, boolean renderStraps) {
ItemStack stack = backpack.getStack();
int color = ProxyClient.ITEM_COLOR.colorMultiplier(stack, 0);
BlockModelRenderer renderer = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelRenderer();
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
float r = (color >> 16 & 0xFF) / 255.0F;
float g = (color >> 8 & 0xFF) / 255.0F;
float b = (color & 0xFF) / 255.0F;
renderModel(backpack, renderer, ticks, renderStraps, r, g, b, false);
if (stack.isItemEnchanted())
renderEnchanted(backpack, renderer, ticks, renderStraps);
}
项目:WearableBackpacks
文件:RendererBackpack.java
private static void renderModel(IBackpack backpack, BlockModelRenderer renderer,
float ticks, boolean renderStraps,
float r, float g, float b, boolean useEnch) {
IBakedModel baseModel = (useEnch ? ProxyClient.MODEL_BACKPACK_ENCH : ProxyClient.MODEL_BACKPACK);
renderer.renderModelBrightnessColor(baseModel, 1.0F, r, g, b);
if (renderStraps)
renderer.renderModelBrightnessColor(ProxyClient.MODEL_BACKPACK_STRAPS, 1.0F, r, g, b);
float lidAngle = 0.0F;
IBackpackType type = backpack.getType();
if (type != null) {
int lidTicks = backpack.getLidTicks();
int prevLidTicks = backpack.getPrevLidTicks();
lidAngle = type.getLidAngle(lidTicks, prevLidTicks, ticks % 1);
}
// FIXME: Allow for custom, adjustable lid position.
float lidYOffset = 9 / 16.0F;
float lidZOffset = 5 / 16.0F;
GlStateManager.pushMatrix();
GlStateManager.translate(0.0F, lidYOffset, lidZOffset);
GlStateManager.rotate(lidAngle, -1.0F, 0.0F, 0.0F);
GlStateManager.translate(0.0F, -lidYOffset, -lidZOffset);
IBakedModel topModel = (useEnch ? ProxyClient.MODEL_BACKPACK_ENCH_TOP : ProxyClient.MODEL_BACKPACK_TOP);
renderer.renderModelBrightnessColor(topModel, 1.0F, r, g, b);
GlStateManager.popMatrix();
}
项目:BaseClient
文件:RenderEnv.java
public BlockModelRenderer.AmbientOcclusionFace getAoFace()
{
return this.aoFace;
}
项目:BaseClient
文件:RenderEnv.java
public BlockModelRenderer.AmbientOcclusionFace getAoFace()
{
return this.aoFace;
}
项目:Backmemed
文件:RenderEnv.java
public BlockModelRenderer.AmbientOcclusionFace getAoFace()
{
return this.aoFace;
}
项目:CodeChickenLib
文件:CCBlockRendererDispatcher.java
@Override
public BlockModelRenderer getBlockModelRenderer() {
return parentDispatcher.getBlockModelRenderer();
}
项目:WearableBackpacks
文件:RendererBackpack.java
private static void renderEnchanted(IBackpack backpack, BlockModelRenderer renderer,
float ticks, boolean renderStraps) {
Minecraft mc = Minecraft.getMinecraft();
float glintStrength = WearableBackpacks.CONFIG.cosmetic.enchantEffectOpacity.get().floatValue();
if (glintStrength <= 0) return;
float glintScale = 1.5F;
float animProgress = ticks / 10;
int color = IntermodUtils.getRuneColor(backpack.getStack());
float r = (color >> 16 & 0xFF) / 255.0F * glintStrength;
float g = (color >> 8 & 0xFF) / 255.0F * glintStrength;
float b = (color & 0xFF) / 255.0F * glintStrength;
mc.getTextureManager().bindTexture(ENCHANTED_ITEM_GLINT);
mc.entityRenderer.setupFogColor(true);
GlStateManager.disableLighting();
GlStateManager.depthMask(false);
GlStateManager.depthFunc(GL11.GL_EQUAL);
GlStateManager.enableBlend();
GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_COLOR, GlStateManager.DestFactor.ONE);
for (int i = 0; i < 2; ++i) {
GlStateManager.matrixMode(GL11.GL_TEXTURE);
GlStateManager.loadIdentity();
GlStateManager.scale(glintScale, glintScale, glintScale);
GlStateManager.rotate(30.0F - i * 60.0F, 0.0F, 0.0F, 1.0F);
GlStateManager.translate(0.0F, animProgress * (0.001F + i * 0.003F) * 20.0F, 0.0F);
GlStateManager.matrixMode(GL11.GL_MODELVIEW);
renderModel(backpack, renderer, ticks, renderStraps, r, g, b, true);
}
GlStateManager.matrixMode(GL11.GL_TEXTURE);
GlStateManager.loadIdentity();
GlStateManager.matrixMode(GL11.GL_MODELVIEW);
GlStateManager.blendFunc(GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
GlStateManager.disableBlend();
GlStateManager.depthFunc(GL11.GL_LEQUAL);
GlStateManager.depthMask(true);
GlStateManager.enableLighting();
mc.entityRenderer.setupFogColor(false);
}