Fix item rendering for blocks with a tinted model but non-tinted item (flax and berry_bush)

This commit is contained in:
Cheeserolls 2015-04-03 18:47:55 +01:00
parent c2b80ce5fd
commit 8ca7e90be0
25 changed files with 74 additions and 3 deletions

View file

@ -18,5 +18,6 @@ public interface IBOPBlock {
public Map<String, IBlockState> getNamedStates(); public Map<String, IBlockState> getNamedStates();
public IBlockState getNamedState(String name); public IBlockState getNamedState(String name);
public Class<? extends ItemBlock> getItemClass(); public Class<? extends ItemBlock> getItemClass();
public int getItemRenderColor(IBlockState state, int tintIndex);
} }

View file

@ -43,6 +43,8 @@ public class BlockBOPDirt extends Block implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}

View file

@ -29,6 +29,8 @@ public class BlockBOPDoor extends BlockDoor implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return null;} public Class<? extends ItemBlock> getItemClass() {return null;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
private Item doorItem; private Item doorItem;

View file

@ -25,6 +25,8 @@ public class BlockBOPFence extends BlockFence implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockBOPFence() public BlockBOPFence()
{ {

View file

@ -28,6 +28,8 @@ public class BlockBOPFenceGate extends BlockFenceGate implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockBOPFenceGate() public BlockBOPFenceGate()
{ {

View file

@ -26,6 +26,8 @@ public class BlockBOPGeneric extends Block implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockBOPGeneric() { public BlockBOPGeneric() {
// use rock as default material // use rock as default material

View file

@ -54,6 +54,8 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockBOPGrass() public BlockBOPGrass()

View file

@ -43,6 +43,8 @@ public class BlockBOPLeaves extends BlockLeaves implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
private ItemStack sapling; private ItemStack sapling;
private ItemStack fruit; private ItemStack fruit;

View file

@ -37,6 +37,8 @@ public class BlockBOPLilypad extends BlockLilyPad implements IBOPBlock
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
// need to use a custom item class because of the unique way lilies are placed // need to use a custom item class because of the unique way lilies are placed
public Class<? extends ItemBlock> getItemClass() {return ItemBOPLilypad.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPLilypad.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockBOPLilypad() public BlockBOPLilypad()

View file

@ -31,6 +31,8 @@ public class BlockBOPLog extends BlockLog implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockBOPLog() public BlockBOPLog()
{ {

View file

@ -25,6 +25,8 @@ public class BlockBOPStairs extends BlockStairs implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockBOPStairs(IBlockState modelState) public BlockBOPStairs(IBlockState modelState)
{ {

View file

@ -42,6 +42,8 @@ public class BlockBOPStone extends Block implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockBOPStone() public BlockBOPStone()
{ {

View file

@ -28,6 +28,8 @@ public class BlockBOPVine extends BlockVine implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
// if set to true, (the default), use BlockVine getBlockColor(), getRenderColor() and colorMultiplier() functions to color the texture based on biome // 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 // if set to false, use 0xFFFFFF for all the color functions so that the texture is used as it is

View file

@ -45,6 +45,7 @@ public class BlockBones extends Block implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockBones() public BlockBones()

View file

@ -29,6 +29,8 @@ public class BlockCrystal extends Block implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockCrystal() { public BlockCrystal() {
super(Material.glass); super(Material.glass);

View file

@ -36,6 +36,8 @@ public class BlockDecoration extends Block implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
// constructor // constructor
public BlockDecoration() { public BlockDecoration() {

View file

@ -12,6 +12,7 @@ import java.util.List;
import java.util.Random; import java.util.Random;
import biomesoplenty.api.block.BOPBlocks; import biomesoplenty.api.block.BOPBlocks;
import biomesoplenty.common.block.BlockFoliage.FoliageType;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.properties.PropertyEnum;
@ -91,6 +92,19 @@ public class BlockDoubleFoliage extends BlockDoubleDecoration implements ISheara
} }
} }
// flax item should not be tinted, even though the model is
@Override
public int getItemRenderColor(IBlockState state, int tintIndex)
{
switch ((FoliageType) state.getValue(VARIANT))
{
case FLAX:
return 0xFFFFFF;
default:
return this.getRenderColor(state);
}
}
// different variants have different sizes // different variants have different sizes
@Override @Override

View file

@ -39,6 +39,8 @@ public class BlockFlesh extends Block implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockFlesh() { public BlockFlesh() {
super(Material.sponge); super(Material.sponge);

View file

@ -157,6 +157,20 @@ public class BlockFoliage extends BlockDecoration implements IShearable
return BiomeColorHelper.getGrassColorAtPos(worldIn, pos); return BiomeColorHelper.getGrassColorAtPos(worldIn, pos);
} }
} }
// berrybush item should not be tinted, even though the model is
@Override
public int getItemRenderColor(IBlockState state, int tintIndex)
{
switch ((FoliageType) state.getValue(VARIANT))
{
case BERRYBUSH:
return 0xFFFFFF;
default:
return this.getRenderColor(state);
}
}
// different variants have different sizes // different variants have different sizes

View file

@ -36,6 +36,8 @@ public class BlockGem extends Block implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockGem() public BlockGem()

View file

@ -38,6 +38,8 @@ public class BlockGemOre extends Block implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockGemOre() public BlockGemOre()

View file

@ -42,6 +42,8 @@ public class BlockHive extends Block implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
public BlockHive() public BlockHive()
{ {

View file

@ -45,6 +45,8 @@ public class BlockMud extends Block implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;} public Class<? extends ItemBlock> getItemClass() {return ItemBOPBlock.class;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
// constructor // constructor
public BlockMud() { public BlockMud() {

View file

@ -27,6 +27,8 @@ public class BlockTurnip extends BlockCrops implements IBOPBlock
public Map<String, IBlockState> getNamedStates() {return this.namedStates;} public Map<String, IBlockState> getNamedStates() {return this.namedStates;}
public IBlockState getNamedState(String name) {return this.namedStates.get(name);} public IBlockState getNamedState(String name) {return this.namedStates.get(name);}
public Class<? extends ItemBlock> getItemClass() {return null;} public Class<? extends ItemBlock> getItemClass() {return null;}
public int getItemRenderColor(IBlockState state, int tintIndex) {return this.getRenderColor(state);}
@Override @Override
protected Item getSeed() protected Item getSeed()

View file

@ -59,10 +59,11 @@ public class ItemBOPBlock extends ItemBlock
} }
} }
// TODO: renderPass is actually tintIndex - use for berries etc?
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public int getColorFromItemStack(ItemStack stack, int renderPass) public int getColorFromItemStack(ItemStack stack, int tintIndex)
{ {
return this.block.getRenderColor(this.block.getStateFromMeta(stack.getMetadata())); return this.bopBlock.getItemRenderColor(this.block.getStateFromMeta(stack.getMetadata()), tintIndex);
} }
@Override @Override