diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 076a86b1c..65a87d2e2 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -30,6 +30,7 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemColored; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraftforge.fluids.Fluid; @@ -2810,8 +2811,8 @@ public class ModBlocks { GameRegistry.registerBlock(deco_pipe_quad_green_rusted, ItemBlockBase.class, deco_pipe_quad_green_rusted.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_quad_red, ItemBlockBase.class, deco_pipe_quad_red.getUnlocalizedName()); GameRegistry.registerBlock(deco_pipe_quad_marked, ItemBlockBase.class, deco_pipe_quad_marked.getUnlocalizedName()); - register(plant_flower); - register(plant_tall); + GameRegistry.registerBlock(plant_flower, ItemBlockBaseColored.class, plant_flower.getUnlocalizedName()); + GameRegistry.registerBlock(plant_tall, ItemBlockBaseColored.class, plant_tall.getUnlocalizedName()); register(plant_dead); register(reeds); register(vine_phosphor); diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java b/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java index 6dead7fd8..7717d7a88 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java @@ -202,27 +202,19 @@ public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, IGrowa this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0); } - @SideOnly(Side.CLIENT) - public int getBlockColor() - { - double d0 = 0.5D; - double d1 = 1.0D; - return ColorizerGrass.getGrassColor(d0, d1); - } - /** - * Returns the color this block should be rendered. Used by leaves. - */ + @SideOnly(Side.CLIENT) public int getRenderColor(int meta) { - return meta == 0 ? 16777215 : ColorizerGrass.getGrassColor(0.5F, 1F); + if (meta == 1 || meta == 3) { + return ColorizerGrass.getGrassColor(0.5D, 1.0D); + } else return 0xFFFFFF; } + // if you need to make another tinted plant just throw the metadata value + // into the if statements above and below i really do not want to make this more + // complicated than it needs to be - /** - * 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 world, int x, int y, int z) { @@ -241,8 +233,11 @@ public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, IGrowa } } int meta = world.getBlockMetadata(x, y, z); - return meta == 0 ? 16777215 : ((l / 9 & 255) << 16 | (i1 / 9 & 255) << 8 | j1 / 9 & 255); + if (meta == 1 || meta == 3) { + return ((l / 9 & 255) << 16 | (i1 / 9 & 255) << 8 | j1 / 9 & 255); + } else return 0xFFFFFF; } + @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { } diff --git a/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java b/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java index f52da4c41..dc8be96d3 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java +++ b/src/main/java/com/hbm/blocks/generic/BlockTallPlant.java @@ -24,6 +24,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; +import net.minecraft.world.ColorizerGrass; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.EnumPlantType; @@ -300,6 +301,43 @@ public class BlockTallPlant extends BlockEnumMulti implements IPlantable, IGrowa return world.getBlockMetadata(x, y, z); } + @SideOnly(Side.CLIENT) + public int getRenderColor(int meta) + { + if (meta == 0 || meta == 8) { + return ColorizerGrass.getGrassColor(0.5D, 1.0D); + } else return 0xFFFFFF; + } + // if you need to make another tinted plant just throw the metadata value + // into the if statements above and below i really do not want to make this more + // complicated than it needs to be + // the second meta value is for the top of the plant + + @SideOnly(Side.CLIENT) + public int colorMultiplier(IBlockAccess world, int x, int y, int z) + { + 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 = world.getBiomeGenForCoords(x + l1, z + k1).getBiomeFoliageColor(x + l1, y, z + k1); + l += (i2 & 16711680) >> 16; + i1 += (i2 & 65280) >> 8; + j1 += i2 & 255; + } + } + int meta = world.getBlockMetadata(x, y, z); + + if (meta == 0 || meta == 8) { + return ((l / 9 & 255) << 16 | (i1 / 9 & 255) << 8 | j1 / 9 & 255); + } else return 0xFFFFFF; + } + + @Override public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { diff --git a/src/main/java/com/hbm/items/block/ItemBlockBaseColored.java b/src/main/java/com/hbm/items/block/ItemBlockBaseColored.java new file mode 100644 index 000000000..c17bf16ce --- /dev/null +++ b/src/main/java/com/hbm/items/block/ItemBlockBaseColored.java @@ -0,0 +1,23 @@ +package com.hbm.items.block; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.item.ItemStack; + +public class ItemBlockBaseColored extends ItemBlockBase { + + private Block block; + + public ItemBlockBaseColored(Block block) { + super(block); + this.block = block; + } + + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int p_82790_2_) + { + return this.block.getRenderColor(stack.getItemDamage()); + } + +} diff --git a/src/main/resources/assets/hbm/textures/blocks/plant_flower.weed.png b/src/main/resources/assets/hbm/textures/blocks/plant_flower.weed.png index 68ee791b7..56a1bc961 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/plant_flower.weed.png and b/src/main/resources/assets/hbm/textures/blocks/plant_flower.weed.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/plant_tall.weed.lower.png b/src/main/resources/assets/hbm/textures/blocks/plant_tall.weed.lower.png index 1e412f0cf..f523c8767 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/plant_tall.weed.lower.png and b/src/main/resources/assets/hbm/textures/blocks/plant_tall.weed.lower.png differ diff --git a/src/main/resources/assets/hbm/textures/blocks/plant_tall.weed.upper.png b/src/main/resources/assets/hbm/textures/blocks/plant_tall.weed.upper.png index e7a23bdbe..bc1de0720 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/plant_tall.weed.upper.png and b/src/main/resources/assets/hbm/textures/blocks/plant_tall.weed.upper.png differ