fix filler rendering, remove useless quarry code

This commit is contained in:
Adrian 2015-06-05 13:00:27 +02:00
parent 5ce27e1c2a
commit 0fabb7692a
8 changed files with 39 additions and 105 deletions

View file

@ -11,7 +11,6 @@ package buildcraft.builders;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
@ -28,7 +27,6 @@ public class BlockFiller extends BlockBuildCraft {
setHardness(5F);
setCreativeTab(BCCreativeTab.get("main"));
setRotatable(true);
setPassCount(4);
}
@Override
@ -48,16 +46,6 @@ public class BlockFiller extends BlockBuildCraft {
}
@Override
public int getIconGlowLevel(IBlockAccess access, int x, int y, int z) {
if (renderPass == 0 || renderPass == 3) {
return -1;
} else {
TileFiller tile = (TileFiller) access.getTileEntity(x, y, z);
return tile.getIconGlowLevel(renderPass);
}
}
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
return new TileFiller();
@ -77,28 +65,4 @@ public class BlockFiller extends BlockBuildCraft {
public int getLightValue(IBlockAccess world, int x, int y, int z) {
return 1;
}
@Override
public IIcon getIconAbsolute(IBlockAccess access, int x, int y, int z, int side, int meta) {
if (renderPass < 3) {
return super.getIconAbsolute(access, x, y, z, side, meta);
} else {
if (side == 2) {
TileEntity tile = access.getTileEntity(x, y, z);
if (tile instanceof TileFiller && ((TileFiller) tile).currentPattern != null) {
return ((TileFiller) tile).currentPattern.getBlockOverlay();
}
}
return null;
}
}
@Override
public IIcon getIconAbsolute(int side, int meta) {
if (renderPass < 3) {
return super.getIconAbsolute(side, meta);
} else {
return null;
}
}
}

View file

@ -149,14 +149,4 @@ public class BlockQuarry extends BlockHatched {
public boolean isSideSolid(IBlockAccess world, int x, int y, int z, ForgeDirection side) {
return false;
}
@Override
public int getIconGlowLevel(IBlockAccess access, int x, int y, int z) {
if (renderPass < 2) {
return -1;
} else {
TileQuarry tile = (TileQuarry) access.getTileEntity(x, y, z);
return tile.getIconGlowLevel(renderPass);
}
}
}

View file

@ -16,6 +16,7 @@ import cpw.mods.fml.client.registry.RenderingRegistry;
import buildcraft.BuildCraftBuilders;
import buildcraft.builders.render.RenderBuilderTile;
import buildcraft.builders.render.RenderFiller;
import buildcraft.builders.urbanism.TileUrbanist;
import buildcraft.core.lib.EntityBlock;
import buildcraft.core.lib.render.RenderMultiTESR;
@ -44,7 +45,7 @@ public class BuilderProxyClient extends BuilderProxy {
ClientRegistry.bindTileEntitySpecialRenderer(TileFiller.class, new RenderMultiTESR(new TileEntitySpecialRenderer[] {
new RenderLEDTile(BuildCraftBuilders.fillerBlock),
new RenderBuilder()
new RenderFiller()
}));
ClientRegistry.bindTileEntitySpecialRenderer(TileQuarry.class, new RenderMultiTESR(new TileEntitySpecialRenderer[] {

View file

@ -863,16 +863,6 @@ public class TileQuarry extends TileAbstractBuilder implements IHasWork, ISidedI
}
}
public int getIconGlowLevel(int renderPass) {
if (renderPass == 2) { // Red LED
return ledState & 15;
} else if (renderPass == 3) { // Green LED
return (ledState >> 4) > 0 ? 15 : 0;
} else {
return -1;
}
}
@Override
public boolean hasCustomInventoryName() {
return false;

View file

@ -0,0 +1,35 @@
package buildcraft.builders.render;
import org.lwjgl.opengl.GL11;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.tileentity.TileEntity;
import buildcraft.BuildCraftBuilders;
import buildcraft.builders.TileFiller;
import buildcraft.core.lib.render.RenderEntityBlock;
import buildcraft.core.render.RenderBuilder;
public class RenderFiller extends RenderBuilder {
private static final float Z_OFFSET = 2049 / 2048.0F;
@Override
public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) {
super.renderTileEntityAt(tileentity, x, y, z, f);
bindTexture(TextureMap.locationBlocksTexture);
RenderEntityBlock.RenderInfo renderBox = new RenderEntityBlock.RenderInfo();
GL11.glPushMatrix();
GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.5F);
GL11.glScalef(Z_OFFSET, Z_OFFSET, Z_OFFSET);
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
renderBox.setRenderSingleSide(BuildCraftBuilders.fillerBlock.getFrontSide(tileentity.getBlockMetadata()));
renderBox.texture = ((TileFiller) tileentity).currentPattern.getBlockOverlay();
RenderEntityBlock.INSTANCE.renderBlock(renderBox);
GL11.glPopMatrix();
}
}

View file

@ -267,14 +267,6 @@ public abstract class BlockBuildCraft extends BlockContainer {
return renderPass;
}
public int getIconGlowLevel() {
return -1;
}
public int getIconGlowLevel(IBlockAccess access, int x, int y, int z) {
return getIconGlowLevel();
}
public int getFrontSide(int meta) {
if (!isRotatable()) {
return -1;

View file

@ -5,7 +5,6 @@ import org.lwjgl.opengl.GL11;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
@ -34,12 +33,7 @@ public class RenderBlockComplex implements ISimpleBlockRenderingHandler {
renderer.uvRotateBottom = Y_ROTATE[block.getFrontSide(meta) - 2];
}
if (block.getIconGlowLevel() >= 0) {
Tessellator.instance.setBrightness(block.getIconGlowLevel() << 4);
RenderUtils.drawBlockItem(renderer, Tessellator.instance, block, meta);
} else {
RenderUtils.drawBlockItem(renderer, Tessellator.instance, block, meta);
}
RenderUtils.drawBlockItem(renderer, Tessellator.instance, block, meta);
renderer.uvRotateTop = 0;
renderer.uvRotateBottom = 0;
@ -59,38 +53,7 @@ public class RenderBlockComplex implements ISimpleBlockRenderingHandler {
block.getBlockBoundsMaxY() + pDouble,
block.getBlockBoundsMaxZ() + pDouble);
if (block.getIconGlowLevel(world, x, y, z) >= 0) {
Tessellator.instance.setBrightness(block.getIconGlowLevel(world, x, y, z) << 4);
Tessellator.instance.setColorOpaque_F(1.0F, 1.0F, 1.0F);
IIcon icon;
icon = block.getIcon(world, x, y, z, 0);
if (icon != BuildCraftCore.transparentTexture && (renderer.renderAllFaces || block.shouldSideBeRendered(world, x, y - 1, z, 0))) {
renderer.renderFaceYNeg(block, x, y, z, icon);
}
icon = block.getIcon(world, x, y, z, 1);
if (icon != BuildCraftCore.transparentTexture && (renderer.renderAllFaces || block.shouldSideBeRendered(world, x, y + 1, z, 1))) {
renderer.renderFaceYPos(block, x, y, z, icon);
}
icon = block.getIcon(world, x, y, z, 2);
if (icon != BuildCraftCore.transparentTexture && (renderer.renderAllFaces || block.shouldSideBeRendered(world, x, y, z - 1, 2))) {
renderer.renderFaceZNeg(block, x, y, z, icon);
}
icon = block.getIcon(world, x, y, z, 3);
if (icon != BuildCraftCore.transparentTexture && (renderer.renderAllFaces || block.shouldSideBeRendered(world, x, y, z + 1, 3))) {
renderer.renderFaceZPos(block, x, y, z, icon);
}
icon = block.getIcon(world, x, y, z, 4);
if (icon != BuildCraftCore.transparentTexture && (renderer.renderAllFaces || block.shouldSideBeRendered(world, x - 1, y, z, 4))) {
renderer.renderFaceXNeg(block, x, y, z, icon);
}
icon = block.getIcon(world, x, y, z, 5);
if (icon != BuildCraftCore.transparentTexture && (renderer.renderAllFaces || block.shouldSideBeRendered(world, x + 1, y, z, 5))) {
renderer.renderFaceXPos(block, x, y, z, icon);
}
} else {
renderer.renderStandardBlock(block, x, y, z);
}
renderer.renderStandardBlock(block, x, y, z);
renderer.uvRotateTop = 0;
renderer.uvRotateBottom = 0;

View file

@ -30,7 +30,6 @@ public class RenderLEDTile extends TileEntitySpecialRenderer {
public static void registerBlockIcons(IIconRegister register) {
for (Block b : iconMap.keySet().toArray(new Block[iconMap.keySet().size()])) {
// TODO (7.1): The count of icons is hardcoded here. Consider adding a better way.
IIcon[] array = new IIcon[2];
String base = ResourceUtils.getObjectPrefix(Block.blockRegistry.getNameForObject(b));
iconMap.put(b, new IIcon[] {
register.registerIcon(base + "/led_red"),