From 32a814b7e28d7706ee7970aedcadac4df61526cf Mon Sep 17 00:00:00 2001 From: Adubbz Date: Fri, 18 Mar 2016 23:52:38 +1100 Subject: [PATCH] Fixed a crash with biome config files, fixed inventory colouring --- .../biomesoplenty/api/biome/BOPBiome.java | 8 ++--- .../biomesoplenty/api/block/IBOPBlock.java | 5 ++-- .../common/block/BlockBOPBones.java | 5 +++- .../common/block/BlockBOPCrystal.java | 5 +++- .../common/block/BlockBOPDecoration.java | 7 +++-- .../common/block/BlockBOPDirt.java | 7 +++-- .../common/block/BlockBOPDoor.java | 7 +++-- .../common/block/BlockBOPDoublePlant.java | 2 +- .../common/block/BlockBOPDoubleWoodSlab.java | 5 +++- .../common/block/BlockBOPFarmland.java | 7 +++-- .../common/block/BlockBOPFence.java | 7 +++-- .../common/block/BlockBOPFenceGate.java | 7 +++-- .../common/block/BlockBOPFlesh.java | 7 +++-- .../common/block/BlockBOPGem.java | 7 +++-- .../common/block/BlockBOPGemOre.java | 5 +++- .../common/block/BlockBOPGeneric.java | 5 +++- .../common/block/BlockBOPGrass.java | 5 +++- .../common/block/BlockBOPHalfOtherSlab.java | 5 +++- .../common/block/BlockBOPHalfWoodSlab.java | 5 +++- .../common/block/BlockBOPHive.java | 7 +++-- .../common/block/BlockBOPHoney.java | 7 +++-- .../common/block/BlockBOPLeaves.java | 6 +++- .../common/block/BlockBOPLilypad.java | 5 +++- .../common/block/BlockBOPLog.java | 5 +++- .../common/block/BlockBOPMud.java | 7 +++-- .../common/block/BlockBOPPlanks.java | 5 +++- .../common/block/BlockBOPPlant.java | 29 ++++++++++++++++--- .../common/block/BlockBOPSand.java | 7 +++-- .../common/block/BlockBOPStone.java | 7 +++-- .../common/block/BlockBOPTerrarium.java | 5 +++- .../common/block/BlockBOPTurnip.java | 7 +++-- .../common/block/BlockBOPVine.java | 7 +++-- .../common/block/BlockBOPWoodStairs.java | 7 +++-- .../biomesoplenty/common/init/ModBlocks.java | 15 +++++++++- .../biomesoplenty/core/BiomesOPlenty.java | 2 +- .../java/biomesoplenty/core/ClientProxy.java | 10 +++++-- .../java/biomesoplenty/core/CommonProxy.java | 2 +- 37 files changed, 187 insertions(+), 64 deletions(-) diff --git a/src/main/java/biomesoplenty/api/biome/BOPBiome.java b/src/main/java/biomesoplenty/api/biome/BOPBiome.java index 3e431b9b7..cfd18ae8e 100644 --- a/src/main/java/biomesoplenty/api/biome/BOPBiome.java +++ b/src/main/java/biomesoplenty/api/biome/BOPBiome.java @@ -415,11 +415,7 @@ public class BOPBiome extends BiomeGenBase implements IExtendedBiome public PropsBuilder(String name) { this.biomeName = name; } - public PropsBuilder withGuiColour(int colour) - { - this.guiColour = colour; return this; - } - + public PropsBuilder withGuiColour(Integer colour) { if (colour != null) this.guiColour = colour; return this; } public PropsBuilder withTemperature(Float temperature) { if (temperature != null) this.temperature = temperature; return this; } public PropsBuilder withRainfall(Float rainfall) { if (rainfall != null) this.rainfall = rainfall; return this; } public PropsBuilder withBaseHeight(Float baseHeight) { if (baseHeight != null) this.baseHeight = baseHeight; return this; } @@ -427,7 +423,7 @@ public class BOPBiome extends BiomeGenBase implements IExtendedBiome public PropsBuilder withRainDisabled() { this.enableRain = false; return this; } public PropsBuilder withSnowEnabled() { this.enableSnow = true; return this; } public PropsBuilder withWaterColor(Integer waterColor) { if (waterColor != null) this.waterColor = waterColor; return this; } - public PropsBuilder withBaseBiome(String name) { this.baseBiomeRegName = name; return this; } + public PropsBuilder withBaseBiome(String name) { if (name != null) this.baseBiomeRegName = name; return this; } public BiomeProps build() { diff --git a/src/main/java/biomesoplenty/api/block/IBOPBlock.java b/src/main/java/biomesoplenty/api/block/IBOPBlock.java index cdc6d0e65..6bb8432f7 100644 --- a/src/main/java/biomesoplenty/api/block/IBOPBlock.java +++ b/src/main/java/biomesoplenty/api/block/IBOPBlock.java @@ -11,6 +11,7 @@ package biomesoplenty.api.block; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.item.ItemBlock; public interface IBOPBlock { @@ -20,6 +21,6 @@ public interface IBOPBlock { public IProperty[] getNonRenderingProperties(); public String getStateName(IBlockState state); - public IBlockColor getColourHandler(); - + public IBlockColor getBlockColor(); + public IItemColor getItemColor(); } \ No newline at end of file diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPBones.java b/src/main/java/biomesoplenty/common/block/BlockBOPBones.java index 3e268ec5c..a84d08563 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPBones.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPBones.java @@ -18,6 +18,7 @@ import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; @@ -53,7 +54,9 @@ public class BlockBOPBones extends Block implements IBOPBlock @Override protected BlockStateContainer createBlockState() {return new BlockStateContainer(this, new IProperty[] { AXIS, VARIANT });} @Override - public IBlockColor getColourHandler() { return null; } + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } // implement IBOPBlock @Override diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPCrystal.java b/src/main/java/biomesoplenty/common/block/BlockBOPCrystal.java index b688d1d15..63560ab38 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPCrystal.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPCrystal.java @@ -19,6 +19,7 @@ import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.Entity; import net.minecraft.entity.boss.EntityDragon; import net.minecraft.item.Item; @@ -39,7 +40,9 @@ public class BlockBOPCrystal extends Block implements IBOPBlock @Override public String getStateName(IBlockState state) {return "";} @Override - public IBlockColor getColourHandler() { return null; } + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } public BlockBOPCrystal() { super(Material.glass); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPDecoration.java b/src/main/java/biomesoplenty/common/block/BlockBOPDecoration.java index 4e859d110..bfaf27bc5 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPDecoration.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPDecoration.java @@ -19,6 +19,7 @@ import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; @@ -44,8 +45,10 @@ public class BlockBOPDecoration extends Block implements IBOPBlock @Override public String getStateName(IBlockState state) {return "";} @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + // constructor public BlockBOPDecoration() { this(Material.plants); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java b/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java index dfc8ad154..c82e54f76 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPDirt.java @@ -24,6 +24,7 @@ import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; import net.minecraft.util.EnumFacing; @@ -68,8 +69,10 @@ public class BlockBOPDirt extends Block implements IBOPBlock, ISustainsPlantType return (Boolean.TRUE.equals(state.getValue(COARSE)) ? "coarse_" : "") + ((BOPDirtType) state.getValue(VARIANT)).getName() + "_dirt"; } @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + public BlockBOPDirt() { super(Material.ground); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPDoor.java b/src/main/java/biomesoplenty/common/block/BlockBOPDoor.java index ae465bad8..6489db64e 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPDoor.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPDoor.java @@ -19,6 +19,7 @@ import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -44,8 +45,10 @@ public class BlockBOPDoor extends BlockDoor implements IBOPBlock @Override public String getStateName(IBlockState state) {return "";} @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + // Map from woods to BlockBOPDoor instance and back private static Map variantToBlock = new HashMap(); public static BlockBOPDoor getBlock(BOPWoods wood) diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPDoublePlant.java b/src/main/java/biomesoplenty/common/block/BlockBOPDoublePlant.java index 48ce088db..a61013f29 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPDoublePlant.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPDoublePlant.java @@ -86,7 +86,7 @@ public class BlockBOPDoublePlant extends BlockBOPDoubleDecoration implements ISh } } - public IBlockColor getColourHandler() + public IBlockColor getBlockColor() { return new IBlockColor() { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPDoubleWoodSlab.java b/src/main/java/biomesoplenty/common/block/BlockBOPDoubleWoodSlab.java index 68ffabf1e..56960d1cb 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPDoubleWoodSlab.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPDoubleWoodSlab.java @@ -24,6 +24,7 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.item.Item; @@ -87,7 +88,9 @@ public class BlockBOPDoubleWoodSlab extends BlockSlab implements IBOPBlock return "double_" + ((BOPWoods)state.getValue(this.variantProperty)).getName() + "_wood_slab"; } @Override - public IBlockColor getColourHandler() { return null; } + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } private BlockBOPDoubleWoodSlab() { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPFarmland.java b/src/main/java/biomesoplenty/common/block/BlockBOPFarmland.java index c15673039..d5f9c9767 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPFarmland.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPFarmland.java @@ -23,6 +23,7 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -78,8 +79,10 @@ public class BlockBOPFarmland extends BlockFarmland implements IBOPBlock return ((BlockBOPDirt.BOPDirtType) state.getValue(this.variantProperty)).getName() + "_farmland"; } @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + public BlockBOPFarmland() { super(); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPFence.java b/src/main/java/biomesoplenty/common/block/BlockBOPFence.java index 70d27bbb1..451b42599 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPFence.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPFence.java @@ -21,6 +21,7 @@ import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; import net.minecraft.util.EnumFacing; @@ -40,8 +41,10 @@ public class BlockBOPFence extends BlockFence implements IBOPBlock @Override public String getStateName(IBlockState state) {return "";} @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + // Map from woods to BlockBOPFence instance and back private static Map variantToBlock = new HashMap(); public static BlockBOPFence getBlock(BOPWoods wood) diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPFenceGate.java b/src/main/java/biomesoplenty/common/block/BlockBOPFenceGate.java index 385d69134..86c6b248b 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPFenceGate.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPFenceGate.java @@ -20,6 +20,7 @@ import net.minecraft.block.SoundType; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; import net.minecraft.util.EnumFacing; @@ -40,8 +41,10 @@ public class BlockBOPFenceGate extends BlockFenceGate implements IBOPBlock @Override public String getStateName(IBlockState state) {return "";} @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + // Map from woods to BlockBOPFenceGate instance and back private static Map variantToBlock = new HashMap(); public static BlockBOPFenceGate getBlock(BOPWoods wood) diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPFlesh.java b/src/main/java/biomesoplenty/common/block/BlockBOPFlesh.java index be81d8f13..d7bca0f49 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPFlesh.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPFlesh.java @@ -19,6 +19,7 @@ import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -44,8 +45,10 @@ public class BlockBOPFlesh extends Block implements IBOPBlock @Override public String getStateName(IBlockState state) {return "";} @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + public BlockBOPFlesh() { super(Material.sponge); this.setHardness(0.4F); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGem.java b/src/main/java/biomesoplenty/common/block/BlockBOPGem.java index 50a552e41..d5d339aad 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGem.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGem.java @@ -19,6 +19,7 @@ import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.item.ItemBlock; public class BlockBOPGem extends Block implements IBOPBlock @@ -42,8 +43,10 @@ public class BlockBOPGem extends Block implements IBOPBlock return ((BOPGems) state.getValue(VARIANT)).getName() + "_block"; } @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + public BlockBOPGem() { super(Material.rock); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGemOre.java b/src/main/java/biomesoplenty/common/block/BlockBOPGemOre.java index fe07069c4..9f4cf1eba 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGemOre.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGemOre.java @@ -24,6 +24,7 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.util.math.BlockPos; @@ -52,7 +53,9 @@ public class BlockBOPGemOre extends Block implements IBOPBlock return ((BOPGems) state.getValue(VARIANT)).getName() + "_ore"; } @Override - public IBlockColor getColourHandler() { return null; } + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } public BlockBOPGemOre() { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java b/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java index dfe1fbe22..7cb87a524 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGeneric.java @@ -20,6 +20,7 @@ import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.item.ItemBlock; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; @@ -39,7 +40,9 @@ public class BlockBOPGeneric extends Block implements IBOPBlock, ISustainsPlantT @Override public String getStateName(IBlockState state) {return "";} @Override - public IBlockColor getColourHandler() { return null; } + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } public BlockBOPGeneric() { // use rock as default material diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java index bf37b3fea..c011d1289 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPGrass.java @@ -27,6 +27,7 @@ import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.particle.EffectRenderer; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -87,7 +88,9 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla } } @Override - public IBlockColor getColourHandler() { return ModBlocks.GRASS_COLORING; } + public IBlockColor getBlockColor() { return ModBlocks.GRASS_COLORING; } + @Override + public IItemColor getItemColor() { return ModBlocks.BLOCK_ITEM_COLORING; } public BlockBOPGrass() { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPHalfOtherSlab.java b/src/main/java/biomesoplenty/common/block/BlockBOPHalfOtherSlab.java index e43cc9487..84d5f6803 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPHalfOtherSlab.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPHalfOtherSlab.java @@ -23,6 +23,7 @@ import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; @@ -85,7 +86,9 @@ public class BlockBOPHalfOtherSlab extends BlockSlab implements IBOPBlock return ((SlabType) state.getValue(VARIANT)).getName() + "_slab"; } @Override - public IBlockColor getColourHandler() { return null; } + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } public IBlockState getFullBlockVariantState(SlabType type) { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPHalfWoodSlab.java b/src/main/java/biomesoplenty/common/block/BlockBOPHalfWoodSlab.java index 54e1974a1..a8d307d6a 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPHalfWoodSlab.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPHalfWoodSlab.java @@ -23,6 +23,7 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.item.Item; @@ -85,7 +86,9 @@ public class BlockBOPHalfWoodSlab extends BlockSlab implements IBOPBlock return ((BOPWoods) state.getValue(this.variantProperty)).getName() + "_wood_slab"; } @Override - public IBlockColor getColourHandler() { return null; } + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } private BlockBOPHalfWoodSlab() { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPHive.java b/src/main/java/biomesoplenty/common/block/BlockBOPHive.java index 08aabc4bd..687c40567 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPHive.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPHive.java @@ -22,6 +22,7 @@ import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.util.IStringSerializable; @@ -64,8 +65,10 @@ public class BlockBOPHive extends Block implements IBOPBlock return ((HiveType) state.getValue(VARIANT)).getName() + "_block"; } @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + public BlockBOPHive() { super(Material.wood); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPHoney.java b/src/main/java/biomesoplenty/common/block/BlockBOPHoney.java index d835d9843..3ac11b467 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPHoney.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPHoney.java @@ -16,6 +16,7 @@ import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.item.ItemBlock; import net.minecraft.util.BlockRenderLayer; import net.minecraftforge.fml.relauncher.Side; @@ -34,8 +35,10 @@ public class BlockBOPHoney extends Block implements IBOPBlock @Override public String getStateName(IBlockState state) {return "";} @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + public BlockBOPHoney() { super(Material.glass); this.setHardness(0.5F); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPLeaves.java b/src/main/java/biomesoplenty/common/block/BlockBOPLeaves.java index f3f27321f..3014fcb75 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPLeaves.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPLeaves.java @@ -15,6 +15,7 @@ import biomesoplenty.api.block.IBOPBlock; import biomesoplenty.api.item.BOPItems; import biomesoplenty.common.enums.BOPPlants; import biomesoplenty.common.enums.BOPTrees; +import biomesoplenty.common.init.ModBlocks; import biomesoplenty.common.item.ItemBOPBlock; import biomesoplenty.common.util.block.VariantPagingHelper; import net.minecraft.block.BlockLeaves; @@ -23,6 +24,7 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -117,7 +119,7 @@ public class BlockBOPLeaves extends BlockLeaves implements IBOPBlock } @Override - public IBlockColor getColourHandler() + public IBlockColor getBlockColor() { final IProperty variantProp = this.variantProperty; @@ -142,6 +144,8 @@ public class BlockBOPLeaves extends BlockLeaves implements IBOPBlock } }; } + @Override + public IItemColor getItemColor() { return ModBlocks.BLOCK_ITEM_COLORING; } private BlockBOPLeaves() { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPLilypad.java b/src/main/java/biomesoplenty/common/block/BlockBOPLilypad.java index 85d9e2767..3d51ec6ed 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPLilypad.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPLilypad.java @@ -17,6 +17,7 @@ import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.item.ItemBlock; import net.minecraft.util.IStringSerializable; import net.minecraft.util.math.AxisAlignedBB; @@ -64,7 +65,9 @@ public class BlockBOPLilypad extends BlockLilyPad implements IBOPBlock return "lily_"+type.getName(); } @Override - public IBlockColor getColourHandler() { return null; } + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } public BlockBOPLilypad() { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPLog.java b/src/main/java/biomesoplenty/common/block/BlockBOPLog.java index 8ca8e4f3e..52adf62f7 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPLog.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPLog.java @@ -17,6 +17,7 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; import net.minecraft.util.EnumFacing; @@ -79,7 +80,9 @@ public class BlockBOPLog extends BlockLog implements IBOPBlock } } @Override - public IBlockColor getColourHandler() { return null; } + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } private BlockBOPLog() { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPMud.java b/src/main/java/biomesoplenty/common/block/BlockBOPMud.java index 5d2bc5a2b..5f4f2968f 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPMud.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPMud.java @@ -22,6 +22,7 @@ import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; @@ -71,8 +72,10 @@ public class BlockBOPMud extends Block implements IBOPBlock, ISustainsPlantType return ((MudType) state.getValue(VARIANT)).getName(); } @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + public BlockBOPMud() { // TODO: use a custom material and sount type for mud? A squelching sound? diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPPlanks.java b/src/main/java/biomesoplenty/common/block/BlockBOPPlanks.java index 8ab42e98e..404317fd0 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPPlanks.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPPlanks.java @@ -19,6 +19,7 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; import net.minecraft.util.EnumFacing; @@ -75,7 +76,9 @@ public class BlockBOPPlanks extends Block implements IBOPBlock return ((BOPWoods) state.getValue(this.variantProperty)).getName() + "_planks"; } @Override - public IBlockColor getColourHandler() { return null; } + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } public BlockBOPPlanks() { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPPlant.java b/src/main/java/biomesoplenty/common/block/BlockBOPPlant.java index 36424b846..c4dac4317 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPPlant.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPPlant.java @@ -21,6 +21,7 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; @@ -125,10 +126,8 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable } @Override - public IBlockColor getColourHandler() + public IBlockColor getBlockColor() { - final IProperty variantProp = this.variantProperty; - return new IBlockColor() { @Override @@ -136,7 +135,7 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable { boolean inWorld = world != null && pos != null; - switch (getColoringType((BOPPlants) state.getValue(variantProp))) + switch (getColoringType((BOPPlants) state.getValue(BlockBOPPlant.this.variantProperty))) { case LIKE_LEAVES: return inWorld ? BiomeColorHelper.getFoliageColorAtPos(world, pos) : ColorizerFoliage.getFoliageColorBasic(); @@ -150,6 +149,28 @@ public class BlockBOPPlant extends BlockBOPDecoration implements IShearable }; } + @Override + public IItemColor getItemColor() + { + return new IItemColor() + { + @Override + public int getColorFromItemstack(ItemStack stack, int tintIndex) + { + IBlockState state = ((ItemBlock)stack.getItem()).getBlock().getStateFromMeta(stack.getMetadata()); + + switch ((BOPPlants) state.getValue(BlockBOPPlant.this.variantProperty)) + { + case BERRYBUSH: case SHRUB: + return 0xFFFFFF; + + default: + return BlockBOPPlant.this.getBlockColor().colorMultiplier(state, null, null, tintIndex); + } + } + }; + } + private BlockBOPPlant() { super(); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPSand.java b/src/main/java/biomesoplenty/common/block/BlockBOPSand.java index c62bbd361..c6fada683 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPSand.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPSand.java @@ -19,6 +19,7 @@ import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.Entity; import net.minecraft.item.ItemBlock; import net.minecraft.util.EnumFacing; @@ -65,8 +66,10 @@ public class BlockBOPSand extends BlockFalling implements IBOPBlock, ISustainsPl return ((SandType) state.getValue(VARIANT)).getName(); } @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + public BlockBOPSand() { super(Material.sand); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPStone.java b/src/main/java/biomesoplenty/common/block/BlockBOPStone.java index 03696cea2..3fec22dfb 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPStone.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPStone.java @@ -19,6 +19,7 @@ import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.Entity; import net.minecraft.item.ItemBlock; import net.minecraft.util.IStringSerializable; @@ -63,8 +64,10 @@ public class BlockBOPStone extends Block implements IBOPBlock return (Boolean.TRUE.equals(state.getValue(POLISHED)) ? "polished_" : "") + ((StoneType) state.getValue(VARIANT)).getName(); } @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + public BlockBOPStone() { super(Material.rock); diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPTerrarium.java b/src/main/java/biomesoplenty/common/block/BlockBOPTerrarium.java index 177b4aca6..26a6b3e0c 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPTerrarium.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPTerrarium.java @@ -17,6 +17,7 @@ import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.item.ItemBlock; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.IStringSerializable; @@ -64,7 +65,9 @@ public class BlockBOPTerrarium extends Block implements IBOPBlock } } @Override - public IBlockColor getColourHandler() { return null; } + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } public BlockBOPTerrarium() { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPTurnip.java b/src/main/java/biomesoplenty/common/block/BlockBOPTurnip.java index 289bf49ef..d19c89179 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPTurnip.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPTurnip.java @@ -16,6 +16,7 @@ import net.minecraft.block.BlockCrops; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.util.math.BlockPos; @@ -36,8 +37,10 @@ public class BlockBOPTurnip extends BlockCrops implements IBOPBlock @Override public String getStateName(IBlockState state) {return "";} @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + @Override protected Item getSeed() { diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPVine.java b/src/main/java/biomesoplenty/common/block/BlockBOPVine.java index c17c9d087..5516ac0b1 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPVine.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPVine.java @@ -16,6 +16,7 @@ import net.minecraft.block.SoundType; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; import net.minecraft.util.EnumFacing; @@ -39,8 +40,10 @@ public class BlockBOPVine extends BlockVine implements IBOPBlock @Override public String getStateName(IBlockState state) {return "";} @Override - public IBlockColor getColourHandler() { return useGreyScaleTextures ? ModBlocks.FOLIAGE_COLOURING : null; } - + public IBlockColor getBlockColor() { return useGreyScaleTextures ? ModBlocks.FOLIAGE_COLORING : null; } + @Override + public IItemColor getItemColor() { return ModBlocks.BLOCK_ITEM_COLORING; } + // if set to true, (the default), use BlockVine getBlockColor(), getRenderColor() and colorMultiplier() functions to color the texture based on biome // if set to false, use 0xFFFFFF for all the color functions so that the texture is used as it is protected boolean useGreyScaleTextures; diff --git a/src/main/java/biomesoplenty/common/block/BlockBOPWoodStairs.java b/src/main/java/biomesoplenty/common/block/BlockBOPWoodStairs.java index 5eb2d17eb..039334c93 100644 --- a/src/main/java/biomesoplenty/common/block/BlockBOPWoodStairs.java +++ b/src/main/java/biomesoplenty/common/block/BlockBOPWoodStairs.java @@ -18,6 +18,7 @@ import net.minecraft.block.BlockStairs; import net.minecraft.block.properties.IProperty; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.init.Blocks; import net.minecraft.item.ItemBlock; import net.minecraft.util.EnumFacing; @@ -38,8 +39,10 @@ public class BlockBOPWoodStairs extends BlockStairs implements IBOPBlock @Override public String getStateName(IBlockState state) {return "";} @Override - public IBlockColor getColourHandler() { return null; } - + public IBlockColor getBlockColor() { return null; } + @Override + public IItemColor getItemColor() { return null; } + // Map from woods to BlockBOPStairs instance and back private static Map variantToBlock = new HashMap(); public static BlockBOPWoodStairs getBlock(BOPWoods wood) diff --git a/src/main/java/biomesoplenty/common/init/ModBlocks.java b/src/main/java/biomesoplenty/common/init/ModBlocks.java index 8b216de88..2001077dd 100644 --- a/src/main/java/biomesoplenty/common/init/ModBlocks.java +++ b/src/main/java/biomesoplenty/common/init/ModBlocks.java @@ -78,6 +78,7 @@ import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -85,6 +86,7 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBucket; import net.minecraft.item.ItemDoor; import net.minecraft.item.ItemSlab; +import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.world.ColorizerFoliage; import net.minecraft.world.ColorizerGrass; @@ -98,7 +100,7 @@ import net.minecraftforge.fml.common.registry.GameRegistry; public class ModBlocks { - public static final IBlockColor FOLIAGE_COLOURING = new IBlockColor() + public static final IBlockColor FOLIAGE_COLORING = new IBlockColor() { @Override public int colorMultiplier(IBlockState state, IBlockAccess world, BlockPos pos, int tintIndex) @@ -115,6 +117,17 @@ public class ModBlocks return world != null && pos != null ? BiomeColorHelper.getGrassColorAtPos(world, pos) : ColorizerGrass.getGrassColor(0.5D, 1.0D); } }; + + public static final IItemColor BLOCK_ITEM_COLORING = new IItemColor() + { + @Override + public int getColorFromItemstack(ItemStack stack, int tintIndex) + { + IBlockState state = ((ItemBlock)stack.getItem()).getBlock().getStateFromMeta(stack.getMetadata()); + IBlockColor blockColor = ((IBOPBlock)state.getBlock()).getBlockColor(); + return blockColor == null ? 0xFFFFFF : blockColor.colorMultiplier(state, null, null, tintIndex); + } + }; // TODO: use getDrops() in classes where the drops are very specific, instead of implementing all 3 of quantityDropped() getItemDropped() and damageDropped() // TODO: docblocks! diff --git a/src/main/java/biomesoplenty/core/BiomesOPlenty.java b/src/main/java/biomesoplenty/core/BiomesOPlenty.java index e1d4b632c..eb65cc6da 100644 --- a/src/main/java/biomesoplenty/core/BiomesOPlenty.java +++ b/src/main/java/biomesoplenty/core/BiomesOPlenty.java @@ -84,7 +84,7 @@ public class BiomesOPlenty @EventHandler public void init(FMLInitializationEvent event) { - BiomesOPlenty.proxy.registerColouredBlocks(); + BiomesOPlenty.proxy.registerColouring(); NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler()); } diff --git a/src/main/java/biomesoplenty/core/ClientProxy.java b/src/main/java/biomesoplenty/core/ClientProxy.java index ac3899c9c..2c3af703f 100644 --- a/src/main/java/biomesoplenty/core/ClientProxy.java +++ b/src/main/java/biomesoplenty/core/ClientProxy.java @@ -84,12 +84,16 @@ public class ClientProxy extends CommonProxy } @Override - public void registerColouredBlocks() + public void registerColouring() { for (Block block : blocksToColour) { IBOPBlock bopBlock = (IBOPBlock)block; - Minecraft.getMinecraft().getBlockColors().registerBlockColorHandler(bopBlock.getColourHandler(), block); + + if (bopBlock.getBlockColor() != null) + Minecraft.getMinecraft().getBlockColors().registerBlockColorHandler(bopBlock.getBlockColor(), block); + if (bopBlock.getItemColor() != null) + Minecraft.getMinecraft().getItemColors().registerItemColorHandler(bopBlock.getItemColor(), block); } } @@ -121,7 +125,7 @@ public class ClientProxy extends CommonProxy } //Register colour handlers - if (bopBlock.getColourHandler() != null) + if (bopBlock.getBlockColor() != null || bopBlock.getItemColor() != null) { blocksToColour.add(block); } diff --git a/src/main/java/biomesoplenty/core/CommonProxy.java b/src/main/java/biomesoplenty/core/CommonProxy.java index 0e123aa9d..9fb7dc517 100644 --- a/src/main/java/biomesoplenty/core/CommonProxy.java +++ b/src/main/java/biomesoplenty/core/CommonProxy.java @@ -15,7 +15,7 @@ import net.minecraft.item.Item; public class CommonProxy { public void registerRenderers() {} - public void registerColouredBlocks() {} + public void registerColouring() {} public void registerItemVariantModel(Item item, String name, int metadata) {} public void registerBlockSided(Block block) {} public void registerFluidBlockRendering(Block block, String name) {}