Update v1.1

Colored light system first released! Also, some minor changes were made
This commit is contained in:
Modbder committed 2013-09-11 20:01:48 +04:00
1 parent b3efe0c897
commit d4c681f70d
7 files changed
+850 -1

No files matched your search

+4
View File
@@ -9,14 +9,18 @@ import java.util.List;
import DummyCore.CreativeTabs.CreativePageBlocks;
import DummyCore.CreativeTabs.CreativePageItems;
import DummyCore.Utils.EnumLightColor;
import DummyCore.Utils.IDummyConfig;
import DummyCore.Utils.Notifier;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraftforge.common.Configuration;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.registry.LanguageRegistry;
public class Core {
public static List lightBlocks = new ArrayList<Block>();
public static List<EnumLightColor> lightColors = new ArrayList<EnumLightColor>();
private static HashMap modList = new HashMap<Class,Integer>();
private static HashMap langFilesList = new HashMap<Integer,Configuration>();
private static HashMap configurationList = new HashMap<Integer,Configuration>();
+19
View File
@@ -18,10 +18,15 @@ import DummyCore.Blocks.ItemMultiBlock;
import DummyCore.Blocks.MultiBlock;
import DummyCore.Items.ItemRegistry;
import DummyCore.Items.MultiItem;
import DummyCore.Utils.ColoredLightHandler;
import DummyCore.Utils.DummyConfig;
import DummyCore.Utils.EnumLightColor;
import DummyCore.Utils.MathUtils;
import DummyCore.Utils.Notifier;
import DummyCore.Utils.RendererColoredLight;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.DummyModContainer;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Metadata;
import cpw.mods.fml.common.ModMetadata;
@@ -29,7 +34,10 @@ import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms.IMCEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
/**
* Do not change anythig here! This is used to initialise MultiBlocks and MultiItems.
@@ -37,6 +45,7 @@ import cpw.mods.fml.common.registry.GameRegistry;
* @version From DummyCore 1.0
*/
@Mod(modid = "DummyCore", name = "DummyCore", version = "1.1dev", useMetadata = true)
@NetworkMod(clientSideRequired = true, serverSideRequired = false, channels = "DummyCore")
public class CoreInitialiser extends DummyModContainer{
public static final CoreInitialiser instance = new CoreInitialiser();
private static DummyConfig cfg = new DummyConfig();
@@ -61,6 +70,10 @@ public class CoreInitialiser extends DummyModContainer{
@EventHandler
public void preInit(FMLPreInitializationEvent e) throws Exception
{
for(int i = 0; i < 16; ++i)
{
Core.lightColors.add(EnumLightColor.values()[i]);
}
Core.registerModAbsolute(getClass(), "DummyCore", e.getModConfigurationDirectory().getAbsolutePath(),cfg);
}
@@ -76,6 +89,12 @@ public class CoreInitialiser extends DummyModContainer{
BlocksRegistry.registerMultiBlock("dummyDebugBlock", "Debug Block From Dummy Core", null, null, getClass());
GameRegistry.registerBlock(mBlock, ItemMultiBlock.class, Core.getModName(Core.getIdForMod(getClass()))+".block."+mBlock.getUnlocalizedName());
BlocksRegistry.blocksList.put(mBlock, Core.getBlockTabForMod(getClass()).getTabLabel());
EntityRegistry.registerModEntity(ColoredLightHandler.class, "DummyCore.ColoredLightHandler", 54, this, 64, 1, false);
Side s = FMLCommonHandler.instance().getEffectiveSide();
if(s == Side.CLIENT)
{
RenderingRegistry.registerEntityRenderingHandler(ColoredLightHandler.class, new RendererColoredLight());
}
}
public static MultiItem mItem;
public static MultiBlock mBlock;
@@ -0,0 +1,66 @@
package DummyCore.Utils;
import DummyCore.Core.Core;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
/**
* @version From DummyCore 1.1
* @author Modbder
* @Description make your blocks extend this to make the emmit colored lightning. Warning! Colored lightning is still in beta-testing, and for sure contains lots of bugs!
*/
public class BlockEmmitsColoredLight extends BlockContainer{
public BlockEmmitsColoredLight(int par1, Material par2Material) {
super(par1, par2Material);
if(!Core.lightBlocks.contains(this))
Core.lightBlocks.add(this);
}
/**
* Used to get the color of the light. Look in EnumLightColor to see more of the colors.
* @version From DummyCore 1.1
* @param world - the world object.
* @param x - x coordinate of the block
* @param y - y coordinate of the block
* @param z- z coordinate of the block
* @return the color of the light the block will emit.
*/
public EnumLightColor getColor(IBlockAccess world, int x, int y, int z)
{
return EnumLightColor.WHITE;
}
/**
* Used to get the brightness of the light. By default equivalents to the light amount, the block gives
* @version From DummyCore 1.1
* @param world - the world object.
* @param x - x coordinate of the block
* @param y - y coordinate of the block
* @param z- z coordinate of the block
* @return number from 0 to 15, corresponding to the light value
*/
public float getLightBrightness(IBlockAccess world, int x, int y, int z)
{
return this.lightValue[world.getBlockId(x, y, z)];
}
@Override
public int onBlockPlaced(World w, int x, int y, int z, int par5, float par6, float par7, float par8, int par9)
{
ColoredLightHandler light = new ColoredLightHandler(w, getColor(w,x,y,z).getLightID(), getLightBrightness(w,x,y,z));
light.setPosition(x+0.5F, y+0.5F, z+0.5F);
if(!w.isRemote)
w.spawnEntityInWorld(light);
return super.onBlockPlaced(w, x, y, z, par5, par6, par7, par8, par9);
}
@Override
public TileEntity createNewTileEntity(World world) {
return null;
}
}
+95
View File
@@ -0,0 +1,95 @@
package DummyCore.Utils;
import DummyCore.Core.Core;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
public class ColoredLightHandler extends Entity{
private int renderColor;
private float colorSize;
public ColoredLightHandler(World par1World) {
super(par1World);
setSize(0.4F,0.4F);
this.renderColor = 0;
this.colorSize = 0;
this.noClip = true;
this.ignoreFrustumCheck = true;
}
public ColoredLightHandler(World par1World, int par2) {
this(par1World);
this.renderColor = par2;
}
public ColoredLightHandler(World par1World, int par2, float par3) {
this(par1World);
this.renderColor = par2;
this.colorSize = par3;
}
@Override
protected void entityInit() {
this.dataWatcher.addObject(12, 0);
this.dataWatcher.addObject(13, 0.0F);
}
@Override
protected void readEntityFromNBT(NBTTagCompound nbttagcompound) {
setColor(nbttagcompound.getInteger("color"));
setColorSize(nbttagcompound.getFloat("colorSize"));
}
@Override
protected void writeEntityToNBT(NBTTagCompound nbttagcompound) {
nbttagcompound.setInteger("color", getRenderColor());
nbttagcompound.setFloat("colorSize", getRenderColorSize());
}
private void setColor(int i)
{
if(!this.worldObj.isRemote)
{
this.dataWatcher.updateObject(12, i);
}
this.renderColor = i;
}
private void setColorSize(float i)
{
if(!this.worldObj.isRemote)
{
this.dataWatcher.updateObject(13, i);
}
this.colorSize = i;
}
public int getRenderColor()
{
return this.dataWatcher.getWatchableObjectInt(12);
}
public float getRenderColorSize()
{
return this.dataWatcher.func_111145_d(13);
}
@Override
public void moveEntity(double par1, double par3, double par5){}
@Override
public void onUpdate()
{
this.posY = (int)this.posY;
Block b = MiscUtils.getBlock(worldObj, (int)posX, (int)posY-1, (int)posZ);
Block b1 = MiscUtils.getBlock(worldObj, (int)posX, (int)posY, (int)posZ);
if((b == null && b1 == null) || (!Core.lightBlocks.contains(b) && !Core.lightBlocks.contains(b1)))
{
this.setDead();
}
super.onUpdate();
}
}
+36
View File
@@ -0,0 +1,36 @@
package DummyCore.Utils;
/**
*
* @author Modbder
* @version From DummyCore 1.1
* @Description used to work with 3d coord system. Of course, should be a vec3D, but we are working with minecraft =)
*/
public class Coord3D {
public float x;
public float y;
public float z;
public Coord3D(double posX, double posY, double posZ)
{
this.x = (float) posX;
this.y = (float) posY;
this.z = (float) posZ;
}
public Coord3D(float i, float k, float j)
{
this.x = i;
this.y = k;
this.z = j;
}
public Coord3D()
{
this(0,0,0);
}
}
+18 -1
View File
@@ -1,10 +1,13 @@
package DummyCore.Utils;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Modbder
* @version From DummyCore 1.1
* @Description Used to work with multi-colored light system, that will be implemented.
* @Description Used to work with multi-colored light system.
*/
public enum EnumLightColor {
BLACK(51,51,51),
@@ -27,6 +30,7 @@ public enum EnumLightColor {
private EnumLightColor(int red, int green, int blue)
{
mainColor = new DummyColor(red, green, blue);
colorID = setGlobal();
}
private DummyColor mainColor;
@@ -35,5 +39,18 @@ public enum EnumLightColor {
{
return mainColor;
}
private int setGlobal()
{
return ++globalID;
}
public int getLightID()
{
return colorID;
}
private int colorID = 0;
private static int globalID = -1;
}
+612
View File
@@ -0,0 +1,612 @@
package DummyCore.Utils;
import java.util.Random;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import DummyCore.Core.Core;
import net.minecraft.block.Block;
import net.minecraft.block.BlockAnvil;
import net.minecraft.block.BlockHopper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ChestItemRenderHelper;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.entity.boss.EntityDragon;
import net.minecraft.entity.projectile.EntityPotion;
import net.minecraft.item.ItemPotion;
import net.minecraft.potion.PotionHelper;
import net.minecraft.src.FMLRenderAccessLibrary;
import net.minecraft.util.Icon;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.IBlockAccess;
public class RendererColoredLight extends Render{
private RenderBlocks blockRenderer = new RenderBlocks();
@Override
public void doRender(Entity entity, double d0, double d1, double d2,
float f, float f1) {
if(entity instanceof ColoredLightHandler)
{
entity = (ColoredLightHandler)entity;
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glDepthMask(false);
GL11.glPushMatrix();
blockRenderer.blockAccess = entity.worldObj;
EnumLightColor lightColor = EnumLightColor.WHITE;
float lightSize = 1.0F;
Coord3D ePos = new Coord3D(entity.posX,entity.posY,entity.posZ);
Block b = MiscUtils.getBlock(entity.worldObj, (int)entity.posX, (int)entity.posY-1, (int)entity.posZ);
Block b1 = MiscUtils.getBlock(entity.worldObj, (int)entity.posX, (int)entity.posY, (int)entity.posZ);
if(b != null && Core.lightBlocks.contains(b) && b instanceof BlockEmmitsColoredLight)
{
lightColor = ((BlockEmmitsColoredLight)b).getColor(entity.worldObj, (int)entity.posX, (int)entity.posY-1, (int)entity.posZ);
lightSize = ((BlockEmmitsColoredLight)b).getLightBrightness(entity.worldObj, (int)entity.posX, (int)entity.posY-1, (int)entity.posZ);
}
if(b1 != null && Core.lightBlocks.contains(b1) && b1 instanceof BlockEmmitsColoredLight)
{
lightColor = ((BlockEmmitsColoredLight)b1).getColor(entity.worldObj, (int)entity.posX, (int)entity.posY, (int)entity.posZ);
lightSize = ((BlockEmmitsColoredLight)b1).getLightBrightness(entity.worldObj, (int)entity.posX, (int)entity.posY, (int)entity.posZ);
}
for(int x = -8; x < 8; ++x)
{
for(int y = -8; y < 8; ++y)
{
for(int z = -8; z < 8; ++z)
{
Coord3D bPos = new Coord3D(entity.posX+x,entity.posY+y,entity.posZ+z);
float posX = (bPos.x - ePos.x);
float posY = (bPos.y - ePos.y);
float posZ = (bPos.z - ePos.z);
posX = (float) Math.sqrt(posX*posX);
posY = (float) Math.sqrt(posY*posY);
posZ = (float) Math.sqrt(posZ*posZ);
float distance = (posX+posY+posZ)/3;
distance = (float) Math.sqrt(distance*distance);
float brightness = (lightSize/16) - (distance/4);
if(brightness<0)brightness=0;
//if(brightness > 0.6F) System.out.println(distance);
Block b11 = MiscUtils.getBlock(entity.worldObj, (int)entity.posX+x, (int)entity.posY+y-1, (int)entity.posZ+z);
if(b11 != null)
renderCorrectLight(d0+x+0.5D,d1+y-0.5D,d2+z+0.5D,brightness,entity.worldObj,b11,lightColor);
}
}
}
GL11.glPopMatrix();
GL11.glDepthMask(true);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_BLEND);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_ALPHA_TEST);
}
}
@Override
protected ResourceLocation func_110775_a(Entity entity) {
// TODO Auto-generated method stub
return new ResourceLocation("dummycore","textures/misc/lightmap.png");
}
protected void renderCorrectLight(double par2, double par4, double par6, float brightness,IBlockAccess w,Block block, EnumLightColor color)
{
Tessellator var3 = Tessellator.instance;
RenderHelper.disableStandardItemLighting();
float var4 = 1;
float var5 = 0.0F;
float stability = 1;
int mru = 20000;
GL11.glPushMatrix();
GL11.glTranslated(par2-0.5D, par4, par6-0.5D);
GL11.glScalef(1.0015F, 1.0015F, 1.0015F);
//blockRenderer.renderBlockAllFaces(Block.glass, (int)par2, (int)par4, (int)par6);
blockRenderer.useInventoryTint = true;
if(brightness > 0)
this.renderBlockAsItem(block, 0, brightness,color);
GL11.glPopMatrix();
RenderHelper.enableStandardItemLighting();
}
public void renderBlockAsItem(Block par1Block, int par2, float par3, EnumLightColor color)
{
Tessellator tessellator = Tessellator.instance;
boolean flag = false;
if (par1Block == Block.dispenser || par1Block == Block.dropper || par1Block == Block.furnaceIdle)
{
par2 = 3;
}
int j;
float f1 = color.getColor().getRed();
float f2 = color.getColor().getGreen();
float f3 = color.getColor().getBlue();
if (blockRenderer.useInventoryTint)
{
f1 = f1 / 255.0F;
f2 = f2 / 255.0F;
f3 = f3 / 255.0F;
GL11.glColor4f(f1 * par3, f2 * par3, f3 * par3, par3);
}
j = par1Block.getRenderType();
blockRenderer.setRenderBoundsFromBlock(par1Block);
int k;
if (j != 0 && j != 31 && j != 39 && j != 16 && j != 26)
{
if (j == 1)
{
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
blockRenderer.drawCrossedSquares(par1Block, par2, -0.5D, -0.5D, -0.5D, 1.0F);
tessellator.draw();
}
else if (j == 19)
{
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
par1Block.setBlockBoundsForItemRender();
blockRenderer.renderBlockStemSmall(par1Block, par2, blockRenderer.renderMaxY, -0.5D, -0.5D, -0.5D);
tessellator.draw();
}
else if (j == 23)
{
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
par1Block.setBlockBoundsForItemRender();
tessellator.draw();
}
else if (j == 13)
{
par1Block.setBlockBoundsForItemRender();
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
f1 = 0.0625F;
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
blockRenderer.renderFaceYNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 0));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
blockRenderer.renderFaceYPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 1));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
tessellator.addTranslation(0.0F, 0.0F, f1);
blockRenderer.renderFaceZNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 2));
tessellator.addTranslation(0.0F, 0.0F, -f1);
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
tessellator.addTranslation(0.0F, 0.0F, -f1);
blockRenderer.renderFaceZPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 3));
tessellator.addTranslation(0.0F, 0.0F, f1);
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
tessellator.addTranslation(f1, 0.0F, 0.0F);
blockRenderer.renderFaceXNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 4));
tessellator.addTranslation(-f1, 0.0F, 0.0F);
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
tessellator.addTranslation(-f1, 0.0F, 0.0F);
blockRenderer.renderFaceXPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 5));
tessellator.addTranslation(f1, 0.0F, 0.0F);
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
else if (j == 22)
{
GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
ChestItemRenderHelper.instance.renderChest(par1Block, par2, par3);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
}
else if (j == 6)
{
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
blockRenderer.renderBlockCropsImpl(par1Block, par2, -0.5D, -0.5D, -0.5D);
tessellator.draw();
}
else if (j == 2)
{
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
blockRenderer.renderTorchAtAngle(par1Block, -0.5D, -0.5D, -0.5D, 0.0D, 0.0D, 0);
tessellator.draw();
}
else if (j == 10)
{
for (k = 0; k < 2; ++k)
{
if (k == 0)
{
blockRenderer.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.5D);
}
if (k == 1)
{
blockRenderer.setRenderBounds(0.0D, 0.0D, 0.5D, 1.0D, 0.5D, 1.0D);
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
blockRenderer.renderFaceYNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 0));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
blockRenderer.renderFaceYPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 1));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
blockRenderer.renderFaceZNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
blockRenderer.renderFaceZPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 3));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 4));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 5));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
}
else if (j == 27)
{
k = 0;
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
for (int l = 0; l < 8; ++l)
{
byte b0 = 0;
byte b1 = 1;
if (l == 0)
{
b0 = 2;
}
if (l == 1)
{
b0 = 3;
}
if (l == 2)
{
b0 = 4;
}
if (l == 3)
{
b0 = 5;
b1 = 2;
}
if (l == 4)
{
b0 = 6;
b1 = 3;
}
if (l == 5)
{
b0 = 7;
b1 = 5;
}
if (l == 6)
{
b0 = 6;
b1 = 2;
}
if (l == 7)
{
b0 = 3;
}
float f4 = (float)b0 / 16.0F;
float f5 = 1.0F - (float)k / 16.0F;
float f6 = 1.0F - (float)(k + b1) / 16.0F;
k += b1;
blockRenderer.setRenderBounds((double)(0.5F - f4), (double)f6, (double)(0.5F - f4), (double)(0.5F + f4), (double)f5, (double)(0.5F + f4));
tessellator.setNormal(0.0F, -1.0F, 0.0F);
blockRenderer.renderFaceYNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 0));
tessellator.setNormal(0.0F, 1.0F, 0.0F);
blockRenderer.renderFaceYPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 1));
tessellator.setNormal(0.0F, 0.0F, -1.0F);
blockRenderer.renderFaceZNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 2));
tessellator.setNormal(0.0F, 0.0F, 1.0F);
blockRenderer.renderFaceZPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 3));
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 4));
tessellator.setNormal(1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 5));
}
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
blockRenderer.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
}
else if (j == 11)
{
for (k = 0; k < 4; ++k)
{
f2 = 0.125F;
if (k == 0)
{
blockRenderer.setRenderBounds((double)(0.5F - f2), 0.0D, 0.0D, (double)(0.5F + f2), 1.0D, (double)(f2 * 2.0F));
}
if (k == 1)
{
blockRenderer.setRenderBounds((double)(0.5F - f2), 0.0D, (double)(1.0F - f2 * 2.0F), (double)(0.5F + f2), 1.0D, 1.0D);
}
f2 = 0.0625F;
if (k == 2)
{
blockRenderer.setRenderBounds((double)(0.5F - f2), (double)(1.0F - f2 * 3.0F), (double)(-f2 * 2.0F), (double)(0.5F + f2), (double)(1.0F - f2), (double)(1.0F + f2 * 2.0F));
}
if (k == 3)
{
blockRenderer.setRenderBounds((double)(0.5F - f2), (double)(0.5F - f2 * 3.0F), (double)(-f2 * 2.0F), (double)(0.5F + f2), (double)(0.5F - f2), (double)(1.0F + f2 * 2.0F));
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
blockRenderer.renderFaceYNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 0));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
blockRenderer.renderFaceYPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 1));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
blockRenderer.renderFaceZNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
blockRenderer.renderFaceZPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 3));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 4));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 5));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
blockRenderer.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
}
else if (j == 21)
{
for (k = 0; k < 3; ++k)
{
f2 = 0.0625F;
if (k == 0)
{
blockRenderer.setRenderBounds((double)(0.5F - f2), 0.30000001192092896D, 0.0D, (double)(0.5F + f2), 1.0D, (double)(f2 * 2.0F));
}
if (k == 1)
{
blockRenderer.setRenderBounds((double)(0.5F - f2), 0.30000001192092896D, (double)(1.0F - f2 * 2.0F), (double)(0.5F + f2), 1.0D, 1.0D);
}
f2 = 0.0625F;
if (k == 2)
{
blockRenderer.setRenderBounds((double)(0.5F - f2), 0.5D, 0.0D, (double)(0.5F + f2), (double)(1.0F - f2), 1.0D);
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
blockRenderer.renderFaceYNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 0));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
blockRenderer.renderFaceYPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 1));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
blockRenderer.renderFaceZNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
blockRenderer.renderFaceZPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 3));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 4));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSide(par1Block, 5));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
}
else if (j == 32)
{
for (k = 0; k < 2; ++k)
{
if (k == 0)
{
blockRenderer.setRenderBounds(0.0D, 0.0D, 0.3125D, 1.0D, 0.8125D, 0.6875D);
}
if (k == 1)
{
blockRenderer.setRenderBounds(0.25D, 0.0D, 0.25D, 0.75D, 1.0D, 0.75D);
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
blockRenderer.renderFaceYNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 0, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
blockRenderer.renderFaceYPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 1, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
blockRenderer.renderFaceZNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 2, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
blockRenderer.renderFaceZPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 3, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 4, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 5, par2));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
blockRenderer.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
}
else if (j == 35)
{
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
blockRenderer.renderBlockAnvilOrient((BlockAnvil)par1Block, 0, 0, 0, par2 << 2, true);
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
else if (j == 34)
{
for (k = 0; k < 3; ++k)
{
if (k == 0)
{
blockRenderer.setRenderBounds(0.125D, 0.0D, 0.125D, 0.875D, 0.1875D, 0.875D);
blockRenderer.setOverrideBlockTexture(blockRenderer.getBlockIcon(Block.obsidian));
}
else if (k == 1)
{
blockRenderer.setRenderBounds(0.1875D, 0.1875D, 0.1875D, 0.8125D, 0.875D, 0.8125D);
blockRenderer.setOverrideBlockTexture(blockRenderer.getBlockIcon(Block.beacon));
}
else if (k == 2)
{
blockRenderer.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
blockRenderer.setOverrideBlockTexture(blockRenderer.getBlockIcon(Block.glass));
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
blockRenderer.renderFaceYNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 0, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
blockRenderer.renderFaceYPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 1, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
blockRenderer.renderFaceZNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 2, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
blockRenderer.renderFaceZPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 3, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 4, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 5, par2));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
blockRenderer.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
blockRenderer.clearOverrideBlockTexture();
}
else if (j == 38)
{
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
blockRenderer.renderBlockHopperMetadata((BlockHopper)par1Block, 0, 0, 0, 0, true);
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
else
{
FMLRenderAccessLibrary.renderInventoryBlock(blockRenderer, par1Block, par2, j);
}
}
else
{
if (j == 16)
{
par2 = 1;
}
GL11.glColor4f(f1*par3, f2*par3, f3*par3,par3);
par1Block.setBlockBoundsForItemRender();
blockRenderer.setRenderBoundsFromBlock(par1Block);
GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, -1.0F, 0.0F);
blockRenderer.renderFaceYNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 0, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 1.0F, 0.0F);
blockRenderer.renderFaceYPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 1, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, -1.0F);
blockRenderer.renderFaceZNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 2, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(0.0F, 0.0F, 1.0F);
blockRenderer.renderFaceZPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 3, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(-1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXNeg(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 4, par2));
tessellator.draw();
tessellator.startDrawingQuads();
tessellator.setNormal(1.0F, 0.0F, 0.0F);
blockRenderer.renderFaceXPos(par1Block, 0.0D, 0.0D, 0.0D, blockRenderer.getBlockIconFromSideAndMetadata(par1Block, 5, par2));
tessellator.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
}
}