Reduce draw calls (#307)

Co-authored-by: Pxx500 <pbartulik@gmail.com>
This commit is contained in:
boubou19andPxx500 authored and GitHub committed 2026-08-06 23:37:11 +00:00
1 parent 522e5806ca
commit 76e6b876cc
11 files changed
+105 -361

No files matched your search

@@ -2,11 +2,8 @@ package tconstruct.armor.modelblock;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.world.IBlockAccess;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
@@ -18,11 +15,12 @@ public class DryingRackRender implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
private static final float[][] RACK_BOUNDS = { { 0.375F, 0.375F, 0.0F, 0.625F, 0.625F, 1.0F } };
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
if (modelID == model) {
renderer.setRenderBounds(0.375F, 0.375F, 0.0F, 0.625F, 0.625F, 1.0F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
ItemHelper.renderStandardInvBlock(renderer, block, metadata, RACK_BOUNDS);
}
}
@@ -65,34 +63,4 @@ public class DryingRackRender implements ISimpleBlockRenderingHandler {
public int getRenderId() {
return model;
}
public static void renderStandardInvBlock(RenderBlocks renderblocks, Block block, int meta) {
final Tessellator tessellator = Tessellator.instance;
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1F, 0.0F);
renderblocks.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
renderblocks.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(1, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1F);
renderblocks.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(2, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
renderblocks.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(3, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1F, 0.0F, 0.0F);
renderblocks.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(4, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
renderblocks.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(5, meta));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
}
@@ -1,8 +1,5 @@
package tconstruct.mechworks.landmine;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraftforge.common.util.ForgeDirection;
/**
@@ -32,38 +29,4 @@ public class Helper {
return ForgeDirection.UNKNOWN;
}
public static void renderInventoryCube(Block block, int metadata, int modelID, RenderBlocks renderer) {
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
renderer.renderFaceYPos(block, 0, 0, 0, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
renderer.renderFaceYNeg(block, 0, 0, 0, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
renderer.renderFaceXPos(block, 0, 0, 0, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
renderer.renderFaceXNeg(block, 0, 0, 0, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
renderer.renderFaceZPos(block, 0, 0, 0, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
renderer.renderFaceZNeg(block, 0, 0, 0, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata));
tessellator.draw();
}
}
@@ -4,21 +4,19 @@ import java.util.Set;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.client.BlockSkinRenderHelper;
import tconstruct.smeltery.logic.CastingChannelLogic;
import tconstruct.util.ItemHelper;
/**
* @author BluSunrize
@@ -28,31 +26,16 @@ public class BlockRenderCastingChannel implements ISimpleBlockRenderingHandler {
public static int renderID = RenderingRegistry.getNextAvailableRenderId();
private static final float[][] CHANNEL_BOUNDS = { { 0.3125F, 0.375F, 0.3125F, 0.6875F, 0.5F, 0.6875F },
{ 0.3125F, 0.375F, 0.0F, 0.6875F, 0.5F, 0.3125F }, { 0.3125F, 0.5F, 0.0F, 0.375F, 0.625F, 0.3125F },
{ 0.625F, 0.5F, 0.0F, 0.6875F, 0.625F, 0.3125F }, { 0.3125F, 0.375F, 0.6875F, 0.6875F, 0.5F, 1.0F },
{ 0.3125F, 0.5F, 0.6875F, 0.375F, 0.625F, 1.0F }, { 0.625F, 0.5F, 0.6875F, 0.6875F, 0.625F, 1.0F },
{ 0.3125F, 0.375F, 0.3125F, 0.375F, 0.625F, 0.6875F },
{ 0.625F, 0.375F, 0.3125F, 0.6875F, 0.625F, 0.6875F } };
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
// Floor
renderer.setRenderBounds(0.3125D, 0.375D, 0.3125D, 0.6875D, 0.5D, 0.6875D);
this.renderStandardBlock(block, metadata, renderer);
// Channel Z-
renderer.setRenderBounds(0.3125D, 0.375D, 0D, 0.6875D, 0.5D, 0.3125D);
this.renderStandardBlock(block, metadata, renderer);
renderer.setRenderBounds(0.3125D, 0.5D, 0D, 0.375D, 0.625D, 0.3125D);
this.renderStandardBlock(block, metadata, renderer);
renderer.setRenderBounds(0.625D, 0.5D, 0D, 0.6875D, 0.625D, 0.3125D);
this.renderStandardBlock(block, metadata, renderer);
// Channel Z+
renderer.setRenderBounds(0.3125D, 0.375D, 0.6875D, 0.6875D, 0.5D, 1D);
this.renderStandardBlock(block, metadata, renderer);
renderer.setRenderBounds(0.3125D, 0.5D, 0.6875D, 0.375D, 0.625D, 1D);
this.renderStandardBlock(block, metadata, renderer);
renderer.setRenderBounds(0.625D, 0.5D, 0.6875D, 0.6875D, 0.625D, 1D);
this.renderStandardBlock(block, metadata, renderer);
// Wall X-
renderer.setRenderBounds(0.3125D, 0.375D, 0.3125D, 0.375D, 0.625D, 0.6875D);
this.renderStandardBlock(block, metadata, renderer);
// Wall X+
renderer.setRenderBounds(0.625D, 0.375D, 0.3125D, 0.6875D, 0.625D, 0.6875D);
this.renderStandardBlock(block, metadata, renderer);
ItemHelper.renderStandardInvBlock(renderer, block, metadata, CHANNEL_BOUNDS);
}
@Override
@@ -200,36 +183,6 @@ public class BlockRenderCastingChannel implements ISimpleBlockRenderingHandler {
fluid.getColor(fluidStack));
}
private void renderStandardBlock(Block block, int meta, RenderBlocks renderer) {
Tessellator tessellator = Tessellator.instance;
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(1, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(2, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(3, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(4, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(5, meta));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
@Override
public int getRenderId() {
return renderID;
@@ -24,96 +24,34 @@ public class CastingBlockRender implements ISimpleBlockRenderingHandler {
public static int searedModel = RenderingRegistry.getNextAvailableRenderId();
private static final float[][] TABLE_BOUNDS = { { 0.0F, 0.625F, 0.0F, 1.0F, 0.9375F, 1.0F },
{ 0.0F, 0.9375F, 0.0F, 0.0625F, 1.0F, 1.0F }, { 0.0625F, 0.9375F, 0.9375F, 0.9375F, 1.0F, 1.0F },
{ 0.9375F, 0.9375F, 0.0F, 1.0F, 1.0F, 1.0F }, { 0.0625F, 0.9375F, 0.0F, 0.9375F, 1.0F, 0.0625F },
{ 0.0F, 0.0F, 0.0F, 0.3125F, 0.625F, 0.3125F }, { 0.6875F, 0.0F, 0.0F, 1.0F, 0.625F, 0.25F },
{ 0.0F, 0.0F, 0.6875F, 0.3125F, 0.625F, 1.0F }, { 0.6875F, 0.0F, 0.6875F, 1.0F, 0.625F, 1.0F } };
private static final float[][] FAUCET_BOUNDS = { { 0.25F, 0.25F, 0.625F, 0.75F, 0.375F, 1.0F },
{ 0.25F, 0.25F, 0.625F, 0.375F, 0.625F, 1.0F }, { 0.625F, 0.25F, 0.625F, 0.75F, 0.625F, 1.0F } };
private static final float[][] BASIN_BOUNDS = { { 0.125F, 0.125F, 0.125F, 0.875F, 0.25F, 0.875F },
{ 0.0F, 0.0F, 0.0F, 0.3125F, 0.125F, 0.3125F }, { 0.6875F, 0.0F, 0.0F, 1.0F, 0.125F, 0.3125F },
{ 0.0F, 0.0F, 0.6875F, 0.3125F, 0.125F, 1.0F }, { 0.6875F, 0.0F, 0.6875F, 1.0F, 0.125F, 1.0F },
{ 0.0F, 0.125F, 0.0F, 0.125F, 1.0F, 1.0F }, { 0.875F, 0.125F, 0.0F, 1.0F, 1.0F, 1.0F },
{ 0.125F, 0.125F, 0.0F, 0.875F, 1.0F, 0.125F }, { 0.125F, 0.125F, 0.875F, 0.875F, 1.0F, 1.0F } };
private static final float[][] FULL_BOUNDS = { { 0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F } };
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
if (modelID == searedModel) {
if (metadata == 0) {
// Top
renderer.setRenderBounds(0.0F, 0.625F, 0.0F, 1.0F, 0.9375F, 1.0F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
// Lip
renderer.setRenderBounds(0.0F, 0.9375, 0.0F, 0.0625, 1.0, 1.0F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.0625, 0.9375, 0.9375, 0.9375, 1.0, 1.0F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.9375, 0.9375, 0.0F, 1.0F, 1.0, 1.0F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.0625, 0.9375, 0.0F, 0.9375, 1.0, 0.0625);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
// Legs
renderer.setRenderBounds(0.0F, 0.0F, 0.0F, 0.3125F, 0.625F, 0.3125F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.6875, 0.0F, 0.0F, 1.0F, 0.625F, 0.25F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.0F, 0.0F, 0.6875, 0.3125F, 0.625F, 1.0F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.6875, 0.0F, 0.6875, 1.0F, 0.625F, 1.0F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
ItemHelper.renderStandardInvBlock(renderer, block, metadata, TABLE_BOUNDS);
} else if (metadata == 1) {
renderer.setRenderBounds(0.25, 0.25, 0.625, 0.75, 0.375, 1);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.25, 0.25, 0.625, 0.375, 0.625, 1);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.625, 0.25, 0.625, 0.75, 0.625, 1);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.375, 0.375, 0.625, 0.625, 0.625, 1);
ItemHelper.renderStandardInvBlock(renderer, block, metadata, FAUCET_BOUNDS);
} else if (metadata == 2) {
renderer.setRenderBounds(0.125F, 0.125f, 0.125F, 0.875F, 0.25F, 0.875F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
// Details
/*
* renderer.setRenderBounds(0.001f, 0.1245f, 0.001f, 0.1245f, 0.999f, 0.4375f);
* ItemHelper.renderStandardInvBlock(renderer, block, metadata); renderer.setRenderBounds(0.001f,
* 0.1245f, 0.5625f, 0.1245f, 0.999f, 0.999f); ItemHelper.renderStandardInvBlock(renderer, block,
* metadata); renderer.setRenderBounds(0.001f, 0.8755f, 0.4375f, 0.1245f, 0.999f, 0.5625f);
* ItemHelper.renderStandardInvBlock(renderer, block, metadata); renderer.setRenderBounds(0.001f,
* 0.1245f, 0.4375f, 0.1245f, 0.25F, 0.5625f); ItemHelper.renderStandardInvBlock(renderer, block,
* metadata); renderer.setRenderBounds(0.8755f, 0.1245f, 0f, 0.999f, 0.999f, 0.4375f);
* ItemHelper.renderStandardInvBlock(renderer, block, metadata); renderer.setRenderBounds(0.8755f,
* 0.1245f, 0.5625f, 0.999f, 0.999f, 0.999f); ItemHelper.renderStandardInvBlock(renderer, block,
* metadata); renderer.setRenderBounds(0.8755f, 0.8755f, 0.4375f, 0.999f, 0.999f, 0.5625f);
* ItemHelper.renderStandardInvBlock(renderer, block, metadata); renderer.setRenderBounds(0.8755f,
* 0.1245f, 0.4375f, 0.999f, 0.25F, 0.5625f); ItemHelper.renderStandardInvBlock(renderer, block,
* metadata); renderer.setRenderBounds(0.1245f, 0.1245f, 0.8755f, 0.4375f, 0.999f, 0.999f);
* ItemHelper.renderStandardInvBlock(renderer, block, metadata); renderer.setRenderBounds(0.5625f,
* 0.1245f, 0.8755f, 0.8755f, 0.999f, 0.999f); ItemHelper.renderStandardInvBlock(renderer, block,
* metadata); renderer.setRenderBounds(0.4375f, 0.8755f, 0.8755f, 0.5625f, 0.999f, 0.999f);
* ItemHelper.renderStandardInvBlock(renderer, block, metadata); renderer.setRenderBounds(0.4375f,
* 0.1245f, 0.8755f, 0.5625f, 0.2495F, 0.999f); ItemHelper.renderStandardInvBlock(renderer, block,
* metadata); renderer.setRenderBounds(0.1245f, 0.1245f, 0.001f, 0.4375f, 0.999f, 0.1245f);
* ItemHelper.renderStandardInvBlock(renderer, block, metadata); renderer.setRenderBounds(0.5625f,
* 0.1245f, 0.001f, 0.8755f, 0.999f, 0.1245f); ItemHelper.renderStandardInvBlock(renderer, block,
* metadata); renderer.setRenderBounds(0.4375f, 0.8755f, 0.001f, 0.5625f, 0.999f, 0.1245f);
* ItemHelper.renderStandardInvBlock(renderer, block, metadata); renderer.setRenderBounds(0.4375f,
* 0.1245f, 0.001f, 0.5625f, 0.25F, 0.1245f); ItemHelper.renderStandardInvBlock(renderer, block,
* metadata);
*/
// Legs
renderer.setRenderBounds(0.0F, 0.0F, 0.0F, 0.3125F, 0.125, 0.3125F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.6875F, 0.0F, 0.0F, 1.0F, 0.125, 0.3125F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.0F, 0.0F, 0.6875F, 0.3125F, 0.125, 1.0F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.6875F, 0.0F, 0.6875F, 1.0F, 0.125, 1.0F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
// Outside
renderer.setRenderBounds(0.0f, 0.125, 0f, 0.125, 1.0F, 1);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.875f, 0.125, 0f, 1, 1.0F, 1);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.125f, 0.125, 0f, 0.875f, 1.0F, 0.125f);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.125f, 0.125, 0.875f, 0.875f, 1.0F, 1);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
ItemHelper.renderStandardInvBlock(renderer, block, metadata, BASIN_BOUNDS);
} else {
renderer.setRenderBounds(0, 0, 0, 1, 1, 1);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
ItemHelper.renderStandardInvBlock(renderer, block, metadata, FULL_BOUNDS);
}
}
}
@@ -37,44 +37,31 @@ public class PaneConnectedRender implements ISimpleBlockRenderingHandler {
int segments = GlassPaneConnected.SEGMENT_CENTER | GlassPaneConnected.SEGMENT_WEST
| GlassPaneConnected.SEGMENT_EAST;
// Bottom
IIcon northIcon = pane.getIcon(2, meta);
IIcon southIcon = pane.getIcon(3, meta);
IIcon westIcon = pane.getIcon(4, meta);
IIcon eastIcon = pane.getIcon(5, meta);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
renderTopOrBottom(tessellator, 0, 0, 0, segments, false, pane.getTopIcon(meta));
tessellator.draw();
// Top
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
renderTopOrBottom(tessellator, 0, 0, 0, segments, true, pane.getBottomIcon(meta));
tessellator.draw();
// North
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
IIcon northIcon = pane.getIcon(2, meta);
renderSide(tessellator, 0, 0, 0, NORTH, true, true, false, false, northIcon, northIcon, northIcon);
tessellator.draw();
// South
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
IIcon southIcon = pane.getIcon(3, meta);
renderSide(tessellator, 0, 0, 0, SOUTH, true, true, false, false, southIcon, southIcon, southIcon);
tessellator.draw();
// West
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
IIcon westIcon = pane.getIcon(4, meta);
renderSide(tessellator, 0, 0, 0, WEST, false, false, true, true, westIcon, westIcon, westIcon);
tessellator.draw();
// East
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
IIcon eastIcon = pane.getIcon(5, meta);
renderSide(tessellator, 0, 0, 0, EAST, false, false, true, true, eastIcon, eastIcon, eastIcon);
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
@@ -2,7 +2,6 @@ package tconstruct.smeltery.model;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.init.Blocks;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.client.ForgeHooksClient;
@@ -24,14 +23,20 @@ public class TankRender implements ISimpleBlockRenderingHandler {
public static int tankModelID = RenderingRegistry.getNextAvailableRenderId();
private static final float[][] TANK_TOP_BOUNDS = { { 0.1875F, 0.0F, 0.1875F, 0.8125F, 0.125F, 0.8125F } };
private static final float[][] TANK_FULL_BOUNDS = { { 0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F } };
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
if (modelID == tankModelID) {
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
// the thingie on top of lava tanks
if (metadata == 0) {
renderer.setRenderBounds(0.1875, 0, 0.1875, 0.8125, 0.125, 0.8125);
renderDoRe(renderer, block, metadata);
ItemHelper.renderStandardInvBlock(renderer, block, metadata, TANK_FULL_BOUNDS);
GL11.glTranslatef(0.0F, 1.0F, 0.0F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata, TANK_TOP_BOUNDS);
GL11.glTranslatef(0.0F, -1.0F, 0.0F);
} else {
ItemHelper.renderStandardInvBlock(renderer, block, metadata, TANK_FULL_BOUNDS);
}
}
}
@@ -86,33 +91,4 @@ public class TankRender implements ISimpleBlockRenderingHandler {
return tankModelID;
}
private void renderDoRe(RenderBlocks renderblocks, Block block, int meta) {
final Tessellator tessellator = Tessellator.instance;
GL11.glTranslatef(-0.5F, 0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1F, 0.0F);
renderblocks.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
renderblocks.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(1, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1F);
renderblocks.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(2, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
renderblocks.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(3, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1F, 0.0F, 0.0F);
renderblocks.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(4, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
renderblocks.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(5, meta));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
}
@@ -2,43 +2,34 @@ package tconstruct.tools.model;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.world.IBlockAccess;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.tools.TinkerTools;
import tconstruct.util.ItemHelper;
@ThreadSafeISBRH(perThread = false)
public class TableRender implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
private static final float[][] TABLE_BOUNDS = { { 0.0F, 0.75F, 0.0F, 1.0F, 1.0F, 1.0F },
{ 0.0F, 0.0F, 0.0F, 0.25F, 0.75F, 0.25F }, { 0.75F, 0.0F, 0.0F, 1.0F, 0.75F, 0.25F },
{ 0.0F, 0.0F, 0.75F, 0.25F, 0.75F, 1.0F }, { 0.75F, 0.0F, 0.75F, 1.0F, 0.75F, 1.0F } };
private static final float[][] CHEST_BOUNDS = { { 0.0F, 0.0F, 0.0F, 1.0F, 0.875F, 1.0F } };
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
if (modelID == model) {
// until we get the new model.. finally...
if (block == TinkerTools.toolStationWood && metadata >= 5 && metadata <= 9) {
// pattern chest
renderer.setRenderBounds(0, 0, 0, 1, 0.875, 1);
renderStandardInvBlock(renderer, block, metadata);
return;
ItemHelper.renderStandardInvBlock(renderer, block, metadata, CHEST_BOUNDS);
} else {
ItemHelper.renderStandardInvBlock(renderer, block, metadata, TABLE_BOUNDS);
}
renderer.setRenderBounds(0.0F, 0.75F, 0.0F, 1.0F, 1.0F, 1.0F);
renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.0F, 0.0F, 0.0F, 0.25F, 0.75F, 0.25F);
renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.75F, 0.0F, 0.0F, 1.0F, 0.75F, 0.25F);
renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.0F, 0.0F, 0.75F, 0.25F, 0.75F, 1.0F);
renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.75F, 0.0F, 0.75F, 1.0F, 0.75F, 1.0F);
renderStandardInvBlock(renderer, block, metadata);
}
}
@@ -80,33 +71,4 @@ public class TableRender implements ISimpleBlockRenderingHandler {
return model;
}
public static void renderStandardInvBlock(RenderBlocks renderblocks, Block block, int meta) {
Tessellator tessellator = Tessellator.instance;
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1F, 0.0F);
renderblocks.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
renderblocks.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(1, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1F);
renderblocks.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(2, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
renderblocks.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(3, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1F, 0.0F, 0.0F);
renderblocks.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(4, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
renderblocks.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(5, meta));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
}
@@ -74,6 +74,39 @@ public class ItemHelper {
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
public static void renderStandardInvBlock(RenderBlocks renderblocks, Block block, int meta, float[][] bounds) {
Tessellator tessellator = Tessellator.instance;
IIcon[] icons = new IIcon[6];
for (int side = 0; side < 6; side++) {
icons[side] = ItemHelper.getIconSafe(block.getIcon(side, meta));
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
for (int i = 0; i < bounds.length; i++) {
renderblocks.setRenderBounds(
bounds[i][0],
bounds[i][1],
bounds[i][2],
bounds[i][3],
bounds[i][4],
bounds[i][5]);
tessellator.setNormal(0.0F, -1F, 0.0F);
renderblocks.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, icons[0]);
tessellator.setNormal(0.0F, 1.0F, 0.0F);
renderblocks.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, icons[1]);
tessellator.setNormal(0.0F, 0.0F, -1F);
renderblocks.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, icons[2]);
tessellator.setNormal(0.0F, 0.0F, 1.0F);
renderblocks.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, icons[3]);
tessellator.setNormal(-1F, 0.0F, 0.0F);
renderblocks.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, icons[4]);
tessellator.setNormal(1.0F, 0.0F, 0.0F);
renderblocks.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, icons[5]);
}
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
public static void renderInvBlockFace(RenderBlocks renderblocks, Block block, int meta) {
Tessellator tessellator = Tessellator.instance;
GL11.glScalef(2f, 2f, 2f);
@@ -15,6 +15,9 @@ public class BarricadeRender implements ISimpleBlockRenderingHandler {
public static int model;
private static final float[][] BARRICADE_BOUNDS = { { 0.375F, 0.0F, 0.375F, 0.625F, 1.0F, 0.625F },
{ 0.375F, 0.375F, 0.0F, 0.625F, 0.625F, 1.0F } };
public BarricadeRender() {
model = RenderingRegistry.getNextAvailableRenderId();
}
@@ -119,10 +122,7 @@ public class BarricadeRender implements ISimpleBlockRenderingHandler {
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
if (modelID == model) {
renderer.setRenderBounds(0.375F, 0.0F, 0.375F, 0.625F, 1.0F, 0.625F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
renderer.setRenderBounds(0.375F, 0.375F, 0.0F, 0.625F, 0.625F, 1.0F);
ItemHelper.renderStandardInvBlock(renderer, block, metadata);
ItemHelper.renderStandardInvBlock(renderer, block, metadata, BARRICADE_BOUNDS);
}
}
@@ -2,26 +2,25 @@ package tconstruct.world.model;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.world.IBlockAccess;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.util.ItemHelper;
@ThreadSafeISBRH(perThread = false)
public class PunjiRender implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
private static final float[][] PUNJI_BOUNDS = { { 0.4375F, 0.0F, 0.4375F, 0.5625F, 1.0F, 0.5625F } };
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
if (modelID == model) {
renderer.setRenderBounds(0.4375, 0.0, 0.4375, 0.5625, 1.0f, 0.5625);
renderStandardInvBlock(renderer, block, metadata);
ItemHelper.renderStandardInvBlock(renderer, block, metadata, PUNJI_BOUNDS);
}
}
@@ -72,34 +71,4 @@ public class PunjiRender implements ISimpleBlockRenderingHandler {
public int getRenderId() {
return model;
}
public static void renderStandardInvBlock(RenderBlocks renderblocks, Block block, int meta) {
Tessellator tessellator = Tessellator.instance;
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1F, 0.0F);
renderblocks.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
renderblocks.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(1, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1F);
renderblocks.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(2, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
renderblocks.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(3, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1F, 0.0F, 0.0F);
renderblocks.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(4, meta));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
renderblocks.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(5, meta));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
}
@@ -5,13 +5,12 @@ import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.common.util.ForgeDirection;
import org.lwjgl.opengl.GL11;
import com.gtnewhorizons.angelica.api.ThreadSafeISBRH;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.client.registry.RenderingRegistry;
import tconstruct.mechworks.landmine.Helper;
import tconstruct.util.ItemHelper;
/**
*
@@ -23,15 +22,11 @@ public class RenderLandmine implements ISimpleBlockRenderingHandler {
public static int model = RenderingRegistry.getNextAvailableRenderId();
private static final float[][] LANDMINE_BOUNDS = { { 0.0625F, 0.5F, 0.0625F, 0.9375F, 0.5625F, 0.9375F } };
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
GL11.glPushMatrix();
GL11.glTranslatef(-0.5F, 0F, -0.5F);
renderer.setRenderBounds(0.0625F, 0.0F, 0.0625F, 1.0F - 0.0625F, 0.0625F, 1.0F - 0.0625F);
Helper.renderInventoryCube(block, metadata, modelID, renderer);
GL11.glPopMatrix();
ItemHelper.renderStandardInvBlock(renderer, block, metadata, LANDMINE_BOUNDS);
}
@Override