diff --git a/changelog b/changelog index 83a871a24..c068a98ca 100644 --- a/changelog +++ b/changelog @@ -11,6 +11,7 @@ * Flamethrower turrets and chemthrower now use the green fire effect when using balefire fuel * Flamethrower turret projectile damage is now capped to 20 * Balefire fuel should no longer instantly vaporize bosses +* Tobacco and Hemp plants are now biome tinted and are no longer radioactive green * Most chemthrower ammo types with variable damage output are now capped to 15 damage per shot (that is still a ton) * Chemthrower combustible liquids now use SEDNA type fire particles * Halved recoil on the zebra rifle diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 076a86b1c..b4f77d6ab 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; diff --git a/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java b/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java index f9c84a96c..7717d7a88 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java +++ b/src/main/java/com/hbm/blocks/generic/BlockNTMFlower.java @@ -9,6 +9,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockDeadPlant.EnumDeadPlantType; import com.hbm.blocks.generic.BlockTallPlant.EnumTallFlower; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.IGrowable; import net.minecraft.block.material.Material; @@ -16,6 +18,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.ColorizerGrass; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.EnumPlantType; @@ -98,7 +101,7 @@ public class BlockNTMFlower extends BlockEnumMulti implements IPlantable, IGrowa public boolean renderAsNormalBlock() { return false; } - + @Override public int getRenderType() { return 1; @@ -198,6 +201,43 @@ 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 getRenderColor(int meta) + { + 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 + + @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 == 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/ItemEnumMulti.java b/src/main/java/com/hbm/items/ItemEnumMulti.java index 3d677b7ff..396fa9464 100644 --- a/src/main/java/com/hbm/items/ItemEnumMulti.java +++ b/src/main/java/com/hbm/items/ItemEnumMulti.java @@ -102,4 +102,5 @@ public class ItemEnumMulti extends Item { return super.getUnlocalizedName(stack); } } + } diff --git a/src/main/java/com/hbm/items/block/ItemBlockBase.java b/src/main/java/com/hbm/items/block/ItemBlockBase.java index 97286b3a2..c2a224390 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockBase.java +++ b/src/main/java/com/hbm/items/block/ItemBlockBase.java @@ -20,9 +20,12 @@ import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; public class ItemBlockBase extends ItemBlock { + + private Block block; public ItemBlockBase(Block block) { super(block); + this.block = block; if(block instanceof IBlockMulti) { this.setMaxDamage(0); @@ -88,4 +91,10 @@ public class ItemBlockBase extends ItemBlock { return EnumRarity.common; } + + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) + { + return this.block.getRenderColor(stack.getItemDamage()); + } } diff --git a/src/main/resources/assets/hbm/textures/blocks/plant_flower.tobacco.png b/src/main/resources/assets/hbm/textures/blocks/plant_flower.tobacco.png index 56f0815de..4ccbc10be 100644 Binary files a/src/main/resources/assets/hbm/textures/blocks/plant_flower.tobacco.png and b/src/main/resources/assets/hbm/textures/blocks/plant_flower.tobacco.png differ 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