Posted October 25, 201410 yr Hey , my custom leaves are green for some reason and when placed in my custom dimension they are slightly darker. But my leave texture is all blue so idk why they r green. is there a way to make em blue? Leaves class package com.manslaughter777.crystaldimension.block; import java.util.List; import java.util.Random; import com.manslaughter777.crystaldimension.Main; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockLeaves; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class Leaves extends BlockLeaves { public static final String[][] leafDifference = new String[][] {{"crystowoodLeaves"}, {"crystowoodLeavesOpaque"}}; public static final String[] leafTypes = new String[] {"crystowood"}; public Leaves() { super(); this.setLightOpacity(1); this.setBlockName("leaves"); this.setCreativeTab(CreativeTabs.tabBlock); } protected void func_150124_c(World world, int x, int y, int z, int side, int meta) { if((side & 3) == 1 && world.rand.nextInt(meta) == 0) { this.dropBlockAsItem(world, x, y, z, new ItemStack(Items.apple, 1, 0)); } } /** * Determines the damage on the item the block drops. Used in cloth and wood. */ public int damageDropped(int i) { return super.damageDropped(i) + 4; } /** * Get the blocks damage value (for use with pick block) */ public int getDamageValue(World world, int x, int y, int z) { return world.getBlockMetadata(x, y, z) & 3; } /** * Returns a list of blocks with the same ID, but different meta (eg: wood returns 4 blocks) */ @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tab, List list) { for(int i = 0; i < leafTypes.length; i++) { list.add(new ItemStack(item, 1, i)); } } @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { for (int i = 0; i < leafDifference.length; i++) { this.field_150129_M[i] = new IIcon[leafDifference[i].length]; for(int j = 0; j < leafDifference[i].length; j++) { this.field_150129_M[i][j] = iconRegister.registerIcon(Main.MODID + ":" + leafDifference[i][j]); } } } @Override public IIcon getIcon(int side, int meta) { return (meta & 3) == 1 ? this.field_150129_M[this.field_150127_b][1] : this.field_150129_M[this.field_150127_b][0]; } @Override public String[] func_150125_e() { return leafTypes; } @Override public boolean renderAsNormalBlock() { return false; } @Override public boolean isOpaqueCube() { return false; } @Override public boolean shouldSideBeRendered(IBlockAccess blockAccess, int x, int y, int z, int side) { return true; } /** * Returns the quantity of items to drop on block destruction. */ public int quantityDropped(Random random) { return random.nextInt(20) == 0 ? 1 : 0; } public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { return Item.getItemFromBlock(Main.sapling); } /** * Drops the block items with a specified chance of dropping the specified items */ @Override public void dropBlockAsItemWithChance(World world, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_) { super.dropBlockAsItemWithChance(world, p_149690_2_, p_149690_3_, p_149690_4_, p_149690_5_, 1.0f, p_149690_7_); } protected int func_150123_b(int par1) { return 20; } }
October 25, 201410 yr Hi Leaves are unusual because vanilla changes their colour depending on the biome (see vanilla code below). BlockLeaves:: /** * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called * when first determining what to render. */ @SideOnly(Side.CLIENT) public int colorMultiplier(IBlockAccess p_149720_1_, int p_149720_2_, int p_149720_3_, int p_149720_4_) { int l = 0; int i1 = 0; int j1 = 0; for (int k1 = -1; k1 <= 1; ++k1) { for (int l1 = -1; l1 <= 1; ++l1) { int i2 = p_149720_1_.getBiomeGenForCoords(p_149720_2_ + l1, p_149720_4_ + k1).getBiomeFoliageColor(p_149720_2_ + l1, p_149720_3_, p_149720_4_ + k1); l += (i2 & 16711680) >> 16; i1 += (i2 & 65280) >> 8; j1 += i2 & 255; } } return (l / 9 & 255) << 16 | (i1 / 9 & 255) << 8 | j1 / 9 & 255; } If you want to stop it, either don't inherit from BlockLeaves, or @override colorMultiplier (eg to return 0xffffff;) Although, come to think of it, a blue texture should never look green regardless of what multiplier you return. Give it a try anyhow, it might help... -TGG
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.