Added festive lights to pine tree leaves... Damn you Forstride

This commit is contained in:
Adubbz 2013-12-25 18:01:26 +11:00
parent 0d2d0c7278
commit 04ae948cda
4 changed files with 85 additions and 0 deletions

View File

@ -11,6 +11,7 @@ import net.minecraft.client.renderer.entity.RenderSnowball;
import net.minecraft.util.MathHelper;
import biomesoplenty.api.Items;
import biomesoplenty.blocks.renderers.BambooRenderer;
import biomesoplenty.blocks.renderers.ColorizedLeavesRenderer;
import biomesoplenty.blocks.renderers.FoliageRenderer;
import biomesoplenty.blocks.renderers.GraveRenderer;
import biomesoplenty.blocks.renderers.PlantsRenderer;
@ -55,6 +56,7 @@ public class ClientProxy extends CommonProxy {
RenderUtils.bonesModel = RenderingRegistry.getNextAvailableRenderId();
RenderUtils.graveModel = RenderingRegistry.getNextAvailableRenderId();
RenderUtils.bambooModel = RenderingRegistry.getNextAvailableRenderId();
RenderUtils.colorizedLeavesModel = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerEntityRenderingHandler(EntityMudball.class, new RenderSnowball(Items.mudball.get(), 0));
RenderingRegistry.registerEntityRenderingHandler(EntityDart.class, new RenderDart());
@ -100,6 +102,7 @@ public class ClientProxy extends CommonProxy {
RenderingRegistry.registerBlockHandler(new PuddleRender());
RenderingRegistry.registerBlockHandler(new GraveRenderer());
RenderingRegistry.registerBlockHandler(new BambooRenderer());
RenderingRegistry.registerBlockHandler(new ColorizedLeavesRenderer());
}
@Override

View File

@ -17,6 +17,7 @@ import net.minecraft.world.World;
import net.minecraftforge.common.IShearable;
import biomesoplenty.BiomesOPlenty;
import biomesoplenty.api.Blocks;
import biomesoplenty.blocks.renderers.RenderUtils;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -40,6 +41,7 @@ public class BlockBOPColorizedLeaves extends BlockLeavesBase implements IShearab
private static final String[] leaves = new String[] {"acacia", "mangrove", "palm", "redwood", "willow", "pine"};
private Icon[][] textures;
public Icon christmasLights;
private final ColourizedLeafCategory category;
int[] adjacentTreeBlocks;
@ -59,6 +61,7 @@ public class BlockBOPColorizedLeaves extends BlockLeavesBase implements IShearab
public void registerIcons(IconRegister iconRegister)
{
textures = new Icon[3][leaves.length];
if(Loader.isModLoaded("BetterGrassAndLeavesMod"))
for (int i = 0; i < leaves.length; ++i)
{
@ -72,6 +75,8 @@ public class BlockBOPColorizedLeaves extends BlockLeavesBase implements IShearab
textures[0][i] = iconRegister.registerIcon("biomesoplenty:leaves_" + leaves[i] + "_fancy");
textures[1][i] = iconRegister.registerIcon("biomesoplenty:leaves_" + leaves[i] + "_fast");
}
christmasLights = iconRegister.registerIcon("biomesoplenty:christmaslights");
}
public Icon getIconBetterLeaves(int metadata, float randomIndex)
@ -143,6 +148,12 @@ public class BlockBOPColorizedLeaves extends BlockLeavesBase implements IShearab
{
return Block.leaves.isOpaqueCube();
}
@Override
public int getRenderType()
{
return RenderUtils.colorizedLeavesModel;
}
@Override
@SideOnly(Side.CLIENT)

View File

@ -0,0 +1,70 @@
package biomesoplenty.blocks.renderers;
import java.util.Calendar;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.util.Icon;
import net.minecraft.world.IBlockAccess;
import net.minecraftforge.common.ForgeDirection;
import biomesoplenty.blocks.BlockBOPColorizedLeaves;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
public class ColorizedLeavesRenderer implements ISimpleBlockRenderingHandler
{
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer)
{
RenderUtils.renderStandardInvBlock(renderer, block, metadata);
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer)
{
BlockBOPColorizedLeaves colorizedLeaves = (BlockBOPColorizedLeaves)block;
Icon christmasLights = colorizedLeaves.christmasLights;
renderer.renderStandardBlock(block, x, y, z);
Calendar calendar = Calendar.getInstance();
if (calendar.get(2) + 1 == 12 && calendar.get(5) >= 24 && calendar.get(5) <= 26)
{
if (world.getBlockMetadata(x, y, z) == 5 || world.getBlockMetadata(x, y, z) == 9)
{
for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS)
{
if (direction != ForgeDirection.UP && direction != ForgeDirection.DOWN)
{
RenderUtils.renderFace(renderer, block, christmasLights, world, x, y, z, 200, direction);
}
else
{
renderer.aoBrightnessXYNN = 150;
renderer.aoBrightnessYZNN = 150;
renderer.aoBrightnessYZNP = 150;
renderer.aoBrightnessXYPN = 150;
}
}
}
}
return true;
}
@Override
public boolean shouldRender3DInInventory()
{
return true;
}
@Override
public int getRenderId()
{
return RenderUtils.colorizedLeavesModel;
}
}

View File

@ -19,6 +19,7 @@ public class RenderUtils
public static int bonesModel = -1;
public static int graveModel = -1;
public static int bambooModel = -1;
public static int colorizedLeavesModel = -1;
public static void renderStandardInvBlock(RenderBlocks renderblocks, Block block, int meta)
{