Fixed some model stuff, began work on fixing block colouring dependent on https://github.com/MinecraftForge/MinecraftForge/pull/2546

This commit is contained in:
Adubbz 2016-03-16 23:15:05 +11:00
parent b684273256
commit 367fa2cefa
63 changed files with 166 additions and 256 deletions

View file

@ -10,6 +10,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.item.ItemBlock;
public interface IBOPBlock {
@ -18,5 +19,7 @@ public interface IBOPBlock {
public IProperty[] getPresetProperties();
public IProperty[] getNonRenderingProperties();
public String getStateName(IBlockState state);
public IBlockColor getColourHandler();
}

View file

@ -17,6 +17,7 @@ import net.minecraft.block.properties.IProperty;
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.entity.EntityLivingBase;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
@ -51,7 +52,8 @@ public class BlockBOPBones extends Block implements IBOPBlock
public static final PropertyEnum AXIS = PropertyEnum.create("axis", EnumFacing.Axis.class);
@Override
protected BlockStateContainer createBlockState() {return new BlockStateContainer(this, new IProperty[] { AXIS, VARIANT });}
@Override
public IBlockColor getColourHandler() { return null; }
// implement IBOPBlock
@Override

View file

@ -18,6 +18,7 @@ import net.minecraft.block.SoundType;
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.entity.Entity;
import net.minecraft.entity.boss.EntityDragon;
import net.minecraft.item.Item;
@ -37,7 +38,8 @@ public class BlockBOPCrystal extends Block implements IBOPBlock
public IProperty[] getNonRenderingProperties() { return null; }
@Override
public String getStateName(IBlockState state) {return "";}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPCrystal() {
super(Material.glass);

View file

@ -11,12 +11,14 @@ package biomesoplenty.common.block;
import java.util.Random;
import biomesoplenty.api.block.IBOPBlock;
import biomesoplenty.common.init.ModBlocks;
import biomesoplenty.common.item.ItemBOPBlock;
import net.minecraft.block.Block;
import net.minecraft.block.SoundType;
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.init.Blocks;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
@ -41,7 +43,8 @@ public class BlockBOPDecoration extends Block implements IBOPBlock
public IProperty[] getNonRenderingProperties() { return null; }
@Override
public String getStateName(IBlockState state) {return "";}
@Override
public IBlockColor getColourHandler() { return ModBlocks.FOLIAGE_COLOURING; }
// constructor
public BlockBOPDecoration() {

View file

@ -23,6 +23,7 @@ import net.minecraft.block.properties.PropertyBool;
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.init.Blocks;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.EnumFacing;
@ -66,7 +67,8 @@ 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 BlockBOPDirt() {

View file

@ -18,6 +18,7 @@ import net.minecraft.block.BlockDoor;
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.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
@ -42,7 +43,9 @@ public class BlockBOPDoor extends BlockDoor implements IBOPBlock
public IProperty[] getNonRenderingProperties() { return new IProperty[] {POWERED}; }
@Override
public String getStateName(IBlockState state) {return "";}
@Override
public IBlockColor getColourHandler() { return null; }
// Map from woods to BlockBOPDoor instance and back
private static Map<BOPWoods, BlockBOPDoor> variantToBlock = new HashMap<BOPWoods, BlockBOPDoor>();
public static BlockBOPDoor getBlock(BOPWoods wood)

View file

@ -23,6 +23,7 @@ import net.minecraft.block.material.Material;
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.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
@ -85,6 +86,8 @@ public class BlockBOPDoubleWoodSlab extends BlockSlab implements IBOPBlock
{
return "double_" + ((BOPWoods)state.getValue(this.variantProperty)).getName() + "_wood_slab";
}
@Override
public IBlockColor getColourHandler() { return null; }
private BlockBOPDoubleWoodSlab()
{

View file

@ -22,6 +22,7 @@ import net.minecraft.block.material.Material;
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.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@ -76,6 +77,8 @@ public class BlockBOPFarmland extends BlockFarmland implements IBOPBlock
{
return ((BlockBOPDirt.BOPDirtType) state.getValue(this.variantProperty)).getName() + "_farmland";
}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPFarmland()
{

View file

@ -20,6 +20,7 @@ import net.minecraft.block.material.MapColor;
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.init.Blocks;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.EnumFacing;
@ -38,6 +39,8 @@ public class BlockBOPFence extends BlockFence implements IBOPBlock
public IProperty[] getNonRenderingProperties() { return null; }
@Override
public String getStateName(IBlockState state) {return "";}
@Override
public IBlockColor getColourHandler() { return null; }
// Map from woods to BlockBOPFence instance and back
private static Map<BOPWoods, BlockBOPFence> variantToBlock = new HashMap<BOPWoods, BlockBOPFence>();

View file

@ -19,6 +19,7 @@ import net.minecraft.block.BlockPlanks;
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.init.Blocks;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.EnumFacing;
@ -38,7 +39,9 @@ public class BlockBOPFenceGate extends BlockFenceGate implements IBOPBlock
public IProperty[] getNonRenderingProperties() { return new IProperty[] {POWERED}; }
@Override
public String getStateName(IBlockState state) {return "";}
@Override
public IBlockColor getColourHandler() { return null; }
// Map from woods to BlockBOPFenceGate instance and back
private static Map<BOPWoods, BlockBOPFenceGate> variantToBlock = new HashMap<BOPWoods, BlockBOPFenceGate>();
public static BlockBOPFenceGate getBlock(BOPWoods wood)

View file

@ -18,6 +18,7 @@ import net.minecraft.block.SoundType;
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.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
@ -42,6 +43,8 @@ public class BlockBOPFlesh extends Block implements IBOPBlock
public IProperty[] getNonRenderingProperties() { return null; }
@Override
public String getStateName(IBlockState state) {return "";}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPFlesh() {
super(Material.sponge);

View file

@ -18,6 +18,7 @@ import net.minecraft.block.properties.IProperty;
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.item.ItemBlock;
public class BlockBOPGem extends Block implements IBOPBlock
@ -40,7 +41,8 @@ public class BlockBOPGem extends Block implements IBOPBlock
{
return ((BOPGems) state.getValue(VARIANT)).getName() + "_block";
}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPGem()
{

View file

@ -23,6 +23,7 @@ import net.minecraft.block.material.Material;
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.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.math.BlockPos;
@ -50,7 +51,8 @@ public class BlockBOPGemOre extends Block implements IBOPBlock
{
return ((BOPGems) state.getValue(VARIANT)).getName() + "_ore";
}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPGemOre()
{

View file

@ -19,6 +19,7 @@ import net.minecraft.block.SoundType;
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.item.ItemBlock;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
@ -37,7 +38,8 @@ public class BlockBOPGeneric extends Block implements IBOPBlock, ISustainsPlantT
public IProperty[] getNonRenderingProperties() { return null; }
@Override
public String getStateName(IBlockState state) {return "";}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPGeneric() {
// use rock as default material

View file

@ -25,6 +25,7 @@ import net.minecraft.block.properties.PropertyEnum;
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.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@ -84,7 +85,8 @@ public class BlockBOPGrass extends BlockGrass implements IBOPBlock, ISustainsPla
return grassType.getName() + "_grass_block";
}
}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPGrass()
{

View file

@ -22,6 +22,7 @@ import net.minecraft.block.properties.IProperty;
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.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
@ -83,7 +84,8 @@ public class BlockBOPHalfOtherSlab extends BlockSlab implements IBOPBlock
{
return ((SlabType) state.getValue(VARIANT)).getName() + "_slab";
}
@Override
public IBlockColor getColourHandler() { return null; }
public IBlockState getFullBlockVariantState(SlabType type)
{

View file

@ -22,6 +22,7 @@ import net.minecraft.block.material.Material;
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.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
@ -82,7 +83,9 @@ public class BlockBOPHalfWoodSlab extends BlockSlab implements IBOPBlock
public String getStateName(IBlockState state)
{
return ((BOPWoods) state.getValue(this.variantProperty)).getName() + "_wood_slab";
}
}
@Override
public IBlockColor getColourHandler() { return null; }
private BlockBOPHalfWoodSlab()
{

View file

@ -21,6 +21,7 @@ import net.minecraft.block.properties.IProperty;
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.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.IStringSerializable;
@ -62,7 +63,9 @@ public class BlockBOPHive extends Block implements IBOPBlock
{
return ((HiveType) state.getValue(VARIANT)).getName() + "_block";
}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPHive()
{
super(Material.wood);

View file

@ -15,6 +15,7 @@ import net.minecraft.block.SoundType;
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.item.ItemBlock;
import net.minecraft.util.BlockRenderLayer;
import net.minecraftforge.fml.relauncher.Side;
@ -32,6 +33,8 @@ public class BlockBOPHoney extends Block implements IBOPBlock
public IProperty[] getNonRenderingProperties() { return null; }
@Override
public String getStateName(IBlockState state) {return "";}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPHoney() {
super(Material.glass);

View file

@ -21,6 +21,7 @@ import net.minecraft.block.BlockPlanks;
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.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
@ -98,6 +99,8 @@ public class BlockBOPLeaves extends BlockLeaves implements IBOPBlock
return tree.getName() + "_leaves";
}
}
@Override
public IBlockColor getColourHandler() { return null; }
private BlockBOPLeaves()
{

View file

@ -16,6 +16,7 @@ import net.minecraft.block.properties.IProperty;
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.item.ItemBlock;
import net.minecraft.util.IStringSerializable;
import net.minecraft.util.math.AxisAlignedBB;
@ -62,7 +63,8 @@ public class BlockBOPLilypad extends BlockLilyPad implements IBOPBlock
return "lily_"+type.getName();
}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPLilypad()
{

View file

@ -16,6 +16,7 @@ import net.minecraft.block.BlockLog;
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.init.Blocks;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.EnumFacing;
@ -77,8 +78,8 @@ public class BlockBOPLog extends BlockLog implements IBOPBlock
return wood.getName() + "_log";
}
}
@Override
public IBlockColor getColourHandler() { return null; }
private BlockBOPLog()
{

View file

@ -21,6 +21,7 @@ import net.minecraft.block.properties.IProperty;
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.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
@ -69,6 +70,8 @@ public class BlockBOPMud extends Block implements IBOPBlock, ISustainsPlantType
{
return ((MudType) state.getValue(VARIANT)).getName();
}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPMud() {

View file

@ -18,6 +18,7 @@ import net.minecraft.block.material.Material;
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.init.Blocks;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.EnumFacing;
@ -73,7 +74,8 @@ public class BlockBOPPlanks extends Block implements IBOPBlock
{
return ((BOPWoods) state.getValue(this.variantProperty)).getName() + "_planks";
}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPPlanks()
{

View file

@ -18,6 +18,7 @@ import net.minecraft.block.properties.IProperty;
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.entity.Entity;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.EnumFacing;
@ -63,6 +64,8 @@ public class BlockBOPSand extends BlockFalling implements IBOPBlock, ISustainsPl
{
return ((SandType) state.getValue(VARIANT)).getName();
}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPSand() {

View file

@ -18,6 +18,7 @@ import net.minecraft.block.properties.PropertyBool;
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.entity.Entity;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.IStringSerializable;
@ -61,7 +62,8 @@ 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 BlockBOPStone()
{

View file

@ -16,6 +16,7 @@ import net.minecraft.block.properties.IProperty;
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.item.ItemBlock;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.IStringSerializable;
@ -62,7 +63,8 @@ public class BlockBOPTerrarium extends Block implements IBOPBlock
return "terrarium_"+type.getName();
}
}
@Override
public IBlockColor getColourHandler() { return null; }
public BlockBOPTerrarium()
{

View file

@ -15,6 +15,7 @@ import biomesoplenty.common.item.ItemBOPBlock;
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.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.math.BlockPos;
@ -34,7 +35,8 @@ public class BlockBOPTurnip extends BlockCrops implements IBOPBlock
public IProperty[] getNonRenderingProperties() { return null; }
@Override
public String getStateName(IBlockState state) {return "";}
@Override
public IBlockColor getColourHandler() { return null; }
@Override
protected Item getSeed()

View file

@ -14,6 +14,7 @@ import net.minecraft.block.BlockVine;
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.init.Blocks;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.EnumFacing;
@ -34,7 +35,8 @@ public class BlockBOPVine extends BlockVine implements IBOPBlock
public IProperty[] getNonRenderingProperties() { return null; }
@Override
public String getStateName(IBlockState state) {return "";}
@Override
public IBlockColor getColourHandler() { return null; }
// 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

View file

@ -17,6 +17,7 @@ import biomesoplenty.common.item.ItemBOPBlock;
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.init.Blocks;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.EnumFacing;
@ -36,6 +37,8 @@ public class BlockBOPWoodStairs extends BlockStairs implements IBOPBlock
public IProperty[] getNonRenderingProperties() { return null; }
@Override
public String getStateName(IBlockState state) {return "";}
@Override
public IBlockColor getColourHandler() { return null; }
// Map from woods to BlockBOPStairs instance and back
private static Map<BOPWoods, BlockBOPWoodStairs> variantToBlock = new HashMap<BOPWoods, BlockBOPWoodStairs>();

View file

@ -77,6 +77,7 @@ import net.minecraft.block.BlockStairs;
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.creativetab.CreativeTabs;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
@ -84,6 +85,10 @@ import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemBucket;
import net.minecraft.item.ItemDoor;
import net.minecraft.item.ItemSlab;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.ColorizerFoliage;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.biome.BiomeColorHelper;
import net.minecraftforge.common.EnumPlantType;
import net.minecraftforge.fluids.BlockFluidBase;
import net.minecraftforge.fluids.Fluid;
@ -92,7 +97,15 @@ import net.minecraftforge.fml.common.registry.GameRegistry;
public class ModBlocks
{
public static final IBlockColor FOLIAGE_COLOURING = new IBlockColor()
{
@Override
public int colorMultiplier(IBlockState state, IBlockAccess world, BlockPos pos, int tintIndex)
{
return world != null && pos != null ? BiomeColorHelper.getFoliageColorAtPos(world, pos) : ColorizerFoliage.getFoliageColorBasic();
}
};
// TODO: use getDrops() in classes where the drops are very specific, instead of implementing all 3 of quantityDropped() getItemDropped() and damageDropped()
// TODO: docblocks!
// TODO: make better use of canSustainPlant() in BlockDecoration and children
@ -353,7 +366,7 @@ public class ModBlocks
IBOPBlock bopBlock = (IBOPBlock)block;
GameRegistry.registerBlock(block, bopBlock.getItemClass(), blockName);
BiomesOPlenty.proxy.registerNonRenderingProperties(block);
BiomesOPlenty.proxy.registerBlockSided(block);
// check for missing default states
IBlockState defaultState = block.getDefaultState();

View file

@ -84,6 +84,8 @@ public class BiomesOPlenty
@EventHandler
public void init(FMLInitializationEvent event)
{
BiomesOPlenty.proxy.registerColouredBlocks();
NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler());
}
@ -92,7 +94,7 @@ public class BiomesOPlenty
{
ModCompatibility.postInit();
}
@EventHandler
public void serverStarting(FMLServerStartingEvent event)
{

View file

@ -30,6 +30,7 @@ import biomesoplenty.common.entities.projectiles.EntityDart;
import biomesoplenty.common.entities.projectiles.EntityMudball;
import biomesoplenty.common.entities.projectiles.RenderDart;
import biomesoplenty.common.entities.projectiles.RenderMudball;
import com.google.common.collect.Lists;
import net.minecraft.block.Block;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.state.IBlockState;
@ -63,6 +64,8 @@ public class ClientProxy extends CommonProxy
public static ResourceLocation[] bopTitlePanoramaPaths = new ResourceLocation[] {new ResourceLocation("biomesoplenty:textures/gui/title/background/panorama_0.png"), new ResourceLocation("biomesoplenty:textures/gui/title/background/panorama_1.png"), new ResourceLocation("biomesoplenty:textures/gui/title/background/panorama_2.png"), new ResourceLocation("biomesoplenty:textures/gui/title/background/panorama_3.png"), new ResourceLocation("biomesoplenty:textures/gui/title/background/panorama_4.png"), new ResourceLocation("biomesoplenty:textures/gui/title/background/panorama_5.png")};
public static ResourceLocation particleTexturesLocation = new ResourceLocation("biomesoplenty:textures/particles/particles.png");
private static List<Block> blocksToColour = Lists.newArrayList();
@Override
public void registerRenderers()
{
@ -80,6 +83,16 @@ public class ClientProxy extends CommonProxy
replaceForgeResources();
}
@Override
public void registerColouredBlocks()
{
for (Block block : blocksToColour)
{
IBOPBlock bopBlock = (IBOPBlock)block;
Minecraft.getMinecraft().getBlockColors().registerBlockColorHandler(bopBlock.getColourHandler(), block);
}
}
@Override
public void registerItemVariantModel(Item item, String name, int metadata)
{
@ -91,11 +104,13 @@ public class ClientProxy extends CommonProxy
}
@Override
public void registerNonRenderingProperties(Block block)
public void registerBlockSided(Block block)
{
if (block instanceof IBOPBlock)
{
IBOPBlock bopBlock = (IBOPBlock)block;
//Register non-rendering properties
IProperty[] nonRenderingProperties = bopBlock.getNonRenderingProperties();
if (nonRenderingProperties != null)
@ -104,6 +119,12 @@ public class ClientProxy extends CommonProxy
IStateMapper custom_mapper = (new StateMap.Builder()).ignore(nonRenderingProperties).build();
ModelLoader.setCustomStateMapper(block, custom_mapper);
}
//Register colour handlers
if (bopBlock.getColourHandler() != null)
{
blocksToColour.add(block);
}
}
}

View file

@ -15,8 +15,9 @@ import net.minecraft.item.Item;
public class CommonProxy
{
public void registerRenderers() {}
public void registerColouredBlocks() {}
public void registerItemVariantModel(Item item, String name, int metadata) {}
public void registerNonRenderingProperties(Block block) {}
public void registerBlockSided(Block block) {}
public void registerFluidBlockRendering(Block block, String name) {}
public void spawnParticle(BOPParticleTypes type, double x, double y, double z, Object... info) {}
}

View file

@ -1,5 +1,5 @@
{
"parent": "block/tallgrass",
"parent": "block/tinted_cross",
"textures": {
"cross": "biomesoplenty:blocks/bush"
}

View file

@ -1,5 +1,5 @@
{
"parent": "block/tallgrass",
"parent": "block/tinted_cross",
"textures": {
"cross": "biomesoplenty:blocks/dampgrass"
}

View file

@ -1,5 +1,5 @@
{
"parent": "block/tallgrass",
"parent": "block/tinted_cross",
"textures": {
"cross": "biomesoplenty:blocks/koru"
}

View file

@ -1,5 +1,5 @@
{
"parent": "block/tallgrass",
"parent": "block/tinted_cross",
"textures": {
"cross": "biomesoplenty:blocks/mediumgrass"
}

View file

@ -1,5 +1,5 @@
{
"parent": "block/tallgrass",
"parent": "block/tinted_cross",
"textures": {
"cross": "biomesoplenty:blocks/poisonivy"
}

View file

@ -1,5 +1,5 @@
{
"parent": "block/tallgrass",
"parent": "block/tinted_cross",
"textures": {
"cross": "biomesoplenty:blocks/shortgrass"
}

View file

@ -1,5 +1,5 @@
{
"parent": "block/tallgrass",
"parent": "block/tinted_cross",
"textures": {
"cross": "biomesoplenty:blocks/sprout"
}

View file

@ -1,5 +1,5 @@
{
"parent": "block/tallgrass",
"parent": "block/tinted_cross",
"textures": {
"cross": "biomesoplenty:blocks/wheatgrass"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/cherry_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/cherry_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/ebony_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/ebony_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/ethereal_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/ethereal_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/eucalyptus_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/eucalyptus_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/fir_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/fir_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/hellbark_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/hellbark_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/jacaranda_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/jacaranda_stairs"
}

View file

@ -1,10 +1,3 @@
{
"parent": "biomesoplenty:block/large_bone_segment",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
}
}
"parent": "biomesoplenty:block/large_bone_segment"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/magic_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/magic_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/mahogany_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/mahogany_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/mangrove_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/mangrove_stairs"
}

View file

@ -1,10 +1,3 @@
{
"parent": "biomesoplenty:block/medium_bone_segment",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
}
}
"parent": "biomesoplenty:block/medium_bone_segment"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/mud_brick_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/mud_brick_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/palm_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/palm_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/pine_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/pine_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/redwood_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/redwood_stairs"
}

View file

@ -1,14 +1,4 @@
{
"parent": "biomesoplenty:block/sacred_oak_fence_inventory",
"display": {
"thirdperson": {
"rotation": [ 0, 0, 180 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 90, 0 ]
}
}
"parent": "biomesoplenty:block/sacred_oak_fence_inventory"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/sacred_oak_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/sacred_oak_stairs"
}

View file

@ -1,10 +1,3 @@
{
"parent": "biomesoplenty:block/small_bone_segment",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
}
}
"parent": "biomesoplenty:block/small_bone_segment"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/umbran_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/umbran_stairs"
}

View file

@ -1,13 +1,3 @@
{
"parent": "biomesoplenty:block/willow_stairs",
"display": {
"thirdperson": {
"rotation": [ 10, -45, 170 ],
"translation": [ 0, 1.5, -2.75 ],
"scale": [ 0.375, 0.375, 0.375 ]
},
"gui": {
"rotation": [ 0, 180, 0 ]
}
}
"parent": "biomesoplenty:block/willow_stairs"
}