Add BOP stone and mud brick slabs
This commit is contained in:
parent
f219f84c09
commit
4b6e4effc7
|
@ -119,6 +119,8 @@ public class BOPBlocks
|
||||||
public static Block crag_rock;
|
public static Block crag_rock;
|
||||||
public static Block mud_brick_block;
|
public static Block mud_brick_block;
|
||||||
public static Block crystal;
|
public static Block crystal;
|
||||||
|
public static Block other_slab;
|
||||||
|
public static Block double_other_slab;
|
||||||
|
|
||||||
public static Block flower_vine;
|
public static Block flower_vine;
|
||||||
public static Block ivy;
|
public static Block ivy;
|
||||||
|
|
|
@ -45,6 +45,7 @@ public class BOPItems
|
||||||
public static Item pixie_dust;
|
public static Item pixie_dust;
|
||||||
public static Item ichor;
|
public static Item ichor;
|
||||||
public static Item pinecone;
|
public static Item pinecone;
|
||||||
|
public static Item other_slab;
|
||||||
|
|
||||||
public static Item dart;
|
public static Item dart;
|
||||||
public static Item dart_blower;
|
public static Item dart_blower;
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright 2014, the Biomes O' Plenty Team
|
||||||
|
*
|
||||||
|
* This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
|
||||||
|
*
|
||||||
|
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
package biomesoplenty.common.block;
|
||||||
|
|
||||||
|
import net.minecraft.block.properties.IProperty;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
|
||||||
|
public class BlockBOPDoubleOtherSlab extends BlockBOPHalfOtherSlab
|
||||||
|
{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IProperty[] getNonRenderingProperties() { return new IProperty[] { HALF }; }
|
||||||
|
@Override
|
||||||
|
public String getStateName(IBlockState state)
|
||||||
|
{
|
||||||
|
return "double_" + ((SlabType) state.getValue(VARIANT)).getName() + "_slab";
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockBOPDoubleOtherSlab()
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDouble() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,215 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright 2014, the Biomes O' Plenty Team
|
||||||
|
*
|
||||||
|
* This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
|
||||||
|
*
|
||||||
|
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
package biomesoplenty.common.block;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
|
||||||
|
import biomesoplenty.api.block.BOPBlocks;
|
||||||
|
import biomesoplenty.api.block.IBOPBlock;
|
||||||
|
import biomesoplenty.common.util.block.BlockStateUtils;
|
||||||
|
import net.minecraft.block.BlockSlab;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.block.properties.IProperty;
|
||||||
|
import net.minecraft.block.properties.PropertyEnum;
|
||||||
|
import net.minecraft.block.state.BlockState;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemBlock;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.IStringSerializable;
|
||||||
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
|
||||||
|
public class BlockBOPHalfOtherSlab extends BlockSlab implements IBOPBlock
|
||||||
|
{
|
||||||
|
|
||||||
|
// add properties
|
||||||
|
public static enum SlabType implements IStringSerializable
|
||||||
|
{
|
||||||
|
LIMESTONE, SILTSTONE, SHALE, POLISHED_LIMESTONE, POLISHED_SILTSTONE, POLISHED_SHALE, CRAG_ROCK, MUD_BRICK;
|
||||||
|
@Override
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return this.name().toLowerCase();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return this.getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
// get this slab's corresponding full block blockstate
|
||||||
|
public IBlockState fullBlockState()
|
||||||
|
{
|
||||||
|
IBlockState state = null;
|
||||||
|
switch (this)
|
||||||
|
{
|
||||||
|
case LIMESTONE:
|
||||||
|
state = BOPBlocks.stone.getDefaultState().withProperty(BlockBOPStone.POLISHED, Boolean.valueOf(false)).withProperty(BlockBOPStone.VARIANT, BlockBOPStone.StoneType.LIMESTONE);
|
||||||
|
break;
|
||||||
|
case SILTSTONE:
|
||||||
|
state = BOPBlocks.stone.getDefaultState().withProperty(BlockBOPStone.POLISHED, Boolean.valueOf(false)).withProperty(BlockBOPStone.VARIANT, BlockBOPStone.StoneType.SILTSTONE);
|
||||||
|
break;
|
||||||
|
case SHALE:
|
||||||
|
state = BOPBlocks.stone.getDefaultState().withProperty(BlockBOPStone.POLISHED, Boolean.valueOf(false)).withProperty(BlockBOPStone.VARIANT, BlockBOPStone.StoneType.SHALE);
|
||||||
|
break;
|
||||||
|
case POLISHED_LIMESTONE:
|
||||||
|
state = BOPBlocks.stone.getDefaultState().withProperty(BlockBOPStone.POLISHED, Boolean.valueOf(true)).withProperty(BlockBOPStone.VARIANT, BlockBOPStone.StoneType.LIMESTONE);
|
||||||
|
break;
|
||||||
|
case POLISHED_SILTSTONE:
|
||||||
|
state = BOPBlocks.stone.getDefaultState().withProperty(BlockBOPStone.POLISHED, Boolean.valueOf(true)).withProperty(BlockBOPStone.VARIANT, BlockBOPStone.StoneType.SILTSTONE);
|
||||||
|
break;
|
||||||
|
case POLISHED_SHALE:
|
||||||
|
state = BOPBlocks.stone.getDefaultState().withProperty(BlockBOPStone.POLISHED, Boolean.valueOf(true)).withProperty(BlockBOPStone.VARIANT, BlockBOPStone.StoneType.SHALE);
|
||||||
|
break;
|
||||||
|
case CRAG_ROCK:
|
||||||
|
state = BOPBlocks.crag_rock.getDefaultState();
|
||||||
|
break;
|
||||||
|
case MUD_BRICK:
|
||||||
|
state = BOPBlocks.mud_brick_block.getDefaultState();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new RuntimeException("No full block state defined for SlabType " + this.name());
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// add properties (note we inherit HALF property from parent BlockSlab)
|
||||||
|
public static final PropertyEnum VARIANT = PropertyEnum.create("variant", SlabType.class);
|
||||||
|
@Override
|
||||||
|
protected BlockState createBlockState() {return new BlockState(this, new IProperty[] { HALF, VARIANT });}
|
||||||
|
|
||||||
|
|
||||||
|
// implement IBOPBlock
|
||||||
|
@Override
|
||||||
|
public Class<? extends ItemBlock> getItemClass() { return null; }
|
||||||
|
@Override
|
||||||
|
public int getItemRenderColor(IBlockState state, int tintIndex) { return this.getRenderColor(state); }
|
||||||
|
@Override
|
||||||
|
public IProperty[] getPresetProperties() { return new IProperty[] { VARIANT }; }
|
||||||
|
@Override
|
||||||
|
public IProperty[] getNonRenderingProperties() { return null; }
|
||||||
|
@Override
|
||||||
|
public String getStateName(IBlockState state)
|
||||||
|
{
|
||||||
|
return ((SlabType) state.getValue(VARIANT)).getName() + "_slab";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public IBlockState getFullBlockVariantState(SlabType type)
|
||||||
|
{
|
||||||
|
return type.fullBlockState();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getFullBlockVariantItem(SlabType type)
|
||||||
|
{
|
||||||
|
return this.getFullBlockVariantItem(type, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getFullBlockVariantItem(SlabType type, int howMany)
|
||||||
|
{
|
||||||
|
IBlockState state = type.fullBlockState();
|
||||||
|
return new ItemStack(state.getBlock(), howMany, state.getBlock().damageDropped(state));
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getVariantItem(SlabType type)
|
||||||
|
{
|
||||||
|
return this.getVariantItem(type, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getVariantItem(SlabType type, int howMany)
|
||||||
|
{
|
||||||
|
IBlockState state = this.getDefaultState().withProperty(VARIANT, type);
|
||||||
|
return new ItemStack(this, howMany, this.damageDropped(state));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public BlockBOPHalfOtherSlab()
|
||||||
|
{
|
||||||
|
super(Material.rock);
|
||||||
|
this.useNeighborBrightness = true;
|
||||||
|
this.setStepSound(soundTypeStone);
|
||||||
|
// TODO: should depend on variant really, but that's quite hard to achieve...
|
||||||
|
this.setHardness(2.0F).setResistance(7.0F);
|
||||||
|
this.setDefaultState(this.blockState.getBaseState().withProperty(HALF, BlockSlab.EnumBlockHalf.BOTTOM));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getHarvestTool(IBlockState state)
|
||||||
|
{
|
||||||
|
IBlockState fullBlockState = ((SlabType)state.getValue(VARIANT)).fullBlockState();
|
||||||
|
return fullBlockState.getBlock().getHarvestTool(fullBlockState);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public int getHarvestLevel(IBlockState state)
|
||||||
|
{
|
||||||
|
IBlockState fullBlockState = ((SlabType)state.getValue(VARIANT)).fullBlockState();
|
||||||
|
return fullBlockState.getBlock().getHarvestLevel(fullBlockState);
|
||||||
|
}
|
||||||
|
|
||||||
|
// these 3 functions are required by BlockSlab for setting up the corresponding ItemSlab
|
||||||
|
@Override
|
||||||
|
public String getUnlocalizedName(int meta)
|
||||||
|
{
|
||||||
|
return this.getStateName(this.getStateFromMeta(meta));
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public IProperty getVariantProperty()
|
||||||
|
{
|
||||||
|
return VARIANT;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public Object getVariant(ItemStack stack)
|
||||||
|
{
|
||||||
|
return SlabType.values()[stack.getMetadata() & 7];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockState getStateFromMeta(int meta)
|
||||||
|
{
|
||||||
|
return this.getDefaultState().withProperty(VARIANT, SlabType.values()[meta & 7]).withProperty(HALF, (meta & 8) == 0 ? BlockSlab.EnumBlockHalf.BOTTOM : BlockSlab.EnumBlockHalf.TOP);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public int getMetaFromState(IBlockState state)
|
||||||
|
{
|
||||||
|
SlabType type = (SlabType)state.getValue(VARIANT);
|
||||||
|
return (state.getValue(HALF) == BlockSlab.EnumBlockHalf.TOP ? 8 : 0) + type.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int damageDropped(IBlockState state)
|
||||||
|
{
|
||||||
|
// always drop a bottom slab
|
||||||
|
return this.getMetaFromState(state.withProperty(HALF, BlockSlab.EnumBlockHalf.BOTTOM));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isDouble() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void getSubBlocks(Item itemIn, CreativeTabs tab, List list)
|
||||||
|
{
|
||||||
|
// get the preset blocks variants
|
||||||
|
ImmutableSet<IBlockState> presets = BlockStateUtils.getBlockPresets(this);
|
||||||
|
// register all the sub-blocks
|
||||||
|
for (IBlockState state : presets)
|
||||||
|
{
|
||||||
|
list.add(new ItemStack(itemIn, 1, this.getMetaFromState(state)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,3 +1,11 @@
|
||||||
|
/*******************************************************************************
|
||||||
|
* Copyright 2014, the Biomes O' Plenty Team
|
||||||
|
*
|
||||||
|
* This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
|
||||||
|
*
|
||||||
|
* To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
package biomesoplenty.common.block;
|
package biomesoplenty.common.block;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
|
@ -75,11 +75,19 @@ public class ModBlocks
|
||||||
hard_sand = registerBlock( (new BlockBOPGeneric(Material.sand)).setHardness(0.9F).setStepSound(Block.soundTypeSand), "hard_sand" );
|
hard_sand = registerBlock( (new BlockBOPGeneric(Material.sand)).setHardness(0.9F).setStepSound(Block.soundTypeSand), "hard_sand" );
|
||||||
mud_brick_block = registerBlock( (new BlockBOPGeneric()).setResistance(2.0F), "mud_brick_block" );
|
mud_brick_block = registerBlock( (new BlockBOPGeneric()).setResistance(2.0F), "mud_brick_block" );
|
||||||
|
|
||||||
|
// stone and brick slabs
|
||||||
|
// need to register items at the same time really so that they can be mapped to each other - bit messy this
|
||||||
|
other_slab = registerBlock( new BlockBOPHalfOtherSlab(), "other_slab");
|
||||||
|
double_other_slab = registerBlock( new BlockBOPDoubleOtherSlab(), "double_other_slab", null ); // no creative tab for double slab
|
||||||
|
BOPItems.other_slab = ModItems.registerItem( new ItemSlab(other_slab, (BlockSlab)other_slab, (BlockSlab)double_other_slab), "other_slab");
|
||||||
|
GameData.getBlockItemMap().put(other_slab, BOPItems.other_slab);
|
||||||
|
GameData.getBlockItemMap().put(double_other_slab, BOPItems.other_slab);
|
||||||
|
|
||||||
// 22 flower types 16 per BlockBOPFlower instance, needs 2 'pages'
|
// 22 flower types 16 per BlockBOPFlower instance, needs 2 'pages'
|
||||||
BlockBOPFlower.createAllPages();
|
BlockBOPFlower.createAllPages();
|
||||||
flower_0 = registerBlock( BlockBOPFlower.paging.getBlock(0), "flower_0" );
|
flower_0 = registerBlock( BlockBOPFlower.paging.getBlock(0), "flower_0" );
|
||||||
flower_1 = registerBlock( BlockBOPFlower.paging.getBlock(1), "flower_1" );
|
flower_1 = registerBlock( BlockBOPFlower.paging.getBlock(1), "flower_1" );
|
||||||
|
|
||||||
// 16 wood types, 4 per BlockBOPLog instance, needs 4 'pages'
|
// 16 wood types, 4 per BlockBOPLog instance, needs 4 'pages'
|
||||||
BlockBOPLog.createAllPages();
|
BlockBOPLog.createAllPages();
|
||||||
log_0 = registerBlock( BlockBOPLog.paging.getBlock(0), "log_0" );
|
log_0 = registerBlock( BlockBOPLog.paging.getBlock(0), "log_0" );
|
||||||
|
@ -90,10 +98,20 @@ public class ModBlocks
|
||||||
// TODO: check if hellbark planks, fence etc can burn
|
// TODO: check if hellbark planks, fence etc can burn
|
||||||
|
|
||||||
// 16 wood types, 8 per BlockBOPHalfWoodSlab and BlockBOPDoubleWoodSlab intance, needs 2 'pages'
|
// 16 wood types, 8 per BlockBOPHalfWoodSlab and BlockBOPDoubleWoodSlab intance, needs 2 'pages'
|
||||||
|
// need to register items at the same time really so that they can be mapped to each other - bit messy this
|
||||||
BlockBOPDoubleWoodSlab.createAllPages();
|
BlockBOPDoubleWoodSlab.createAllPages();
|
||||||
BlockBOPHalfWoodSlab.createAllPages();
|
BlockBOPHalfWoodSlab.createAllPages();
|
||||||
registerWoodSlab( wood_slab_0, double_wood_slab_0, BOPItems.wood_slab_0, 0);
|
wood_slab_0 = registerBlock( BlockBOPHalfWoodSlab.paging.getBlock(0), "wood_slab_0");
|
||||||
registerWoodSlab( wood_slab_1, double_wood_slab_1, BOPItems.wood_slab_1, 1);
|
double_wood_slab_0 = registerBlock( BlockBOPDoubleWoodSlab.paging.getBlock(0), "double_wood_slab_0", null ); // no creative tab for double slab
|
||||||
|
BOPItems.wood_slab_0 = ModItems.registerItem( new ItemSlab(wood_slab_0, (BlockSlab)wood_slab_0, (BlockSlab)double_wood_slab_0), "wood_slab_0");
|
||||||
|
GameData.getBlockItemMap().put(wood_slab_0, BOPItems.wood_slab_0);
|
||||||
|
GameData.getBlockItemMap().put(double_wood_slab_0, BOPItems.wood_slab_0);
|
||||||
|
wood_slab_1 = registerBlock( BlockBOPHalfWoodSlab.paging.getBlock(1), "wood_slab_1");
|
||||||
|
double_wood_slab_1 = registerBlock( BlockBOPDoubleWoodSlab.paging.getBlock(1), "double_wood_slab_1", null ); // no creative tab for double slab
|
||||||
|
BOPItems.wood_slab_1 = ModItems.registerItem( new ItemSlab(wood_slab_1, (BlockSlab)wood_slab_1, (BlockSlab)double_wood_slab_1), "wood_slab_1");
|
||||||
|
GameData.getBlockItemMap().put(wood_slab_1, BOPItems.wood_slab_1);
|
||||||
|
GameData.getBlockItemMap().put(double_wood_slab_1, BOPItems.wood_slab_1);
|
||||||
|
|
||||||
|
|
||||||
// 16 wood types, 16 per BlockBOPPlanks instance, needs 1 'pages'
|
// 16 wood types, 16 per BlockBOPPlanks instance, needs 1 'pages'
|
||||||
BlockBOPPlanks.createAllPages();
|
BlockBOPPlanks.createAllPages();
|
||||||
|
@ -226,17 +244,6 @@ public class ModBlocks
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// use a separate function for registering slabs because the half slab, double slab, and item really need to be registered together
|
|
||||||
public static void registerWoodSlab(Block half_slab, Block double_slab, Item slab_item, int pageNum)
|
|
||||||
{
|
|
||||||
|
|
||||||
half_slab = registerBlock( BlockBOPHalfWoodSlab.paging.getBlock(pageNum), "wood_slab_" + pageNum);
|
|
||||||
double_slab = registerBlock( BlockBOPDoubleWoodSlab.paging.getBlock(pageNum), "double_wood_slab_" + pageNum, null ); // no creative tab for double slab
|
|
||||||
slab_item = ModItems.registerItem( new ItemSlab(half_slab, (BlockSlab)half_slab, (BlockSlab)double_slab), "wood_slab_" + pageNum );
|
|
||||||
GameData.getBlockItemMap().put(half_slab, slab_item);
|
|
||||||
GameData.getBlockItemMap().put(double_slab, slab_item);
|
|
||||||
}
|
|
||||||
|
|
||||||
// use a separate function for registering doors because the door block and item need to be registered together
|
// use a separate function for registering doors because the door block and item need to be registered together
|
||||||
public static Block registerDoor(BlockBOPDoor door_block, String name, Item door_item)
|
public static Block registerDoor(BlockBOPDoor door_block, String name, Item door_item)
|
||||||
{
|
{
|
||||||
|
|
|
@ -78,10 +78,17 @@ public class ModCrafting
|
||||||
GameRegistry.addShapelessRecipe(new ItemStack(BOPItems.brown_dye), new Object[] {((BlockBOPDoublePlant)BOPBlocks.double_plant).getVariantItem(BlockBOPDoublePlant.DoublePlantType.TALL_CATTAIL)});
|
GameRegistry.addShapelessRecipe(new ItemStack(BOPItems.brown_dye), new Object[] {((BlockBOPDoublePlant)BOPBlocks.double_plant).getVariantItem(BlockBOPDoublePlant.DoublePlantType.TALL_CATTAIL)});
|
||||||
|
|
||||||
|
|
||||||
/*** Brick stairs and slabs ***/
|
/*** BOP brick and stone stairs and slabs ***/
|
||||||
|
|
||||||
|
for (BlockBOPHalfOtherSlab.SlabType slabType : BlockBOPHalfOtherSlab.SlabType.values())
|
||||||
|
{
|
||||||
|
BlockBOPHalfOtherSlab otherSlab = (BlockBOPHalfOtherSlab)BOPBlocks.other_slab;
|
||||||
|
System.out.println( otherSlab.getVariantItem(slabType, 6) );
|
||||||
|
System.out.println( otherSlab.getFullBlockVariantItem(slabType) );
|
||||||
|
GameRegistry.addShapedRecipe(otherSlab.getVariantItem(slabType, 6), new Object[] {"RRR", 'R', otherSlab.getFullBlockVariantItem(slabType)});
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: implement these blocks
|
// TODO: implement these blocks
|
||||||
// GameRegistry.addShapedRecipe(new ItemStack(BOPCBlocks.stoneSingleSlab, 6, 2), new Object[] {"RRR", 'R', BOPCBlocks.mudBricks});
|
|
||||||
// GameRegistry.addShapedRecipe(new ItemStack(BOPCBlocks.mudBricksStairs, 4), new Object[] {" R", " RR", "RRR", 'R', BOPCBlocks.mudBricks});
|
// GameRegistry.addShapedRecipe(new ItemStack(BOPCBlocks.mudBricksStairs, 4), new Object[] {" R", " RR", "RRR", 'R', BOPCBlocks.mudBricks});
|
||||||
// GameRegistry.addShapedRecipe(new ItemStack(BOPCBlocks.mudBricksStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', BOPCBlocks.mudBricks});
|
// GameRegistry.addShapedRecipe(new ItemStack(BOPCBlocks.mudBricksStairs, 4), new Object[] {"R ", "RR ", "RRR", 'R', BOPCBlocks.mudBricks});
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"variant=limestone": { "model": "biomesoplenty:limestone" },
|
||||||
|
"variant=siltstone": { "model": "biomesoplenty:siltstone" },
|
||||||
|
"variant=shale": { "model": "biomesoplenty:shale" },
|
||||||
|
"variant=polished_limestone": { "model": "biomesoplenty:polished_limestone" },
|
||||||
|
"variant=polished_siltstone": { "model": "biomesoplenty:polished_siltstone" },
|
||||||
|
"variant=polished_shale": { "model": "biomesoplenty:polished_shale" },
|
||||||
|
"variant=crag_rock": { "model": "biomesoplenty:crag_rock" },
|
||||||
|
"variant=mud_brick": { "model": "biomesoplenty:mud_brick_block" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"half=bottom,variant=limestone": { "model": "biomesoplenty:half_slab_limestone" },
|
||||||
|
"half=top,variant=limestone": { "model": "biomesoplenty:upper_slab_limestone" },
|
||||||
|
"half=bottom,variant=siltstone": { "model": "biomesoplenty:half_slab_siltstone" },
|
||||||
|
"half=top,variant=siltstone": { "model": "biomesoplenty:upper_slab_siltstone" },
|
||||||
|
"half=bottom,variant=shale": { "model": "biomesoplenty:half_slab_shale" },
|
||||||
|
"half=top,variant=shale": { "model": "biomesoplenty:upper_slab_shale" },
|
||||||
|
"half=bottom,variant=polished_limestone": { "model": "biomesoplenty:half_slab_polished_limestone" },
|
||||||
|
"half=top,variant=polished_limestone": { "model": "biomesoplenty:upper_slab_polished_limestone" },
|
||||||
|
"half=bottom,variant=polished_siltstone": { "model": "biomesoplenty:half_polished_siltstone" },
|
||||||
|
"half=top,variant=polished_siltstone": { "model": "biomesoplenty:upper_slab_polished_siltstone" },
|
||||||
|
"half=bottom,variant=polished_shale": { "model": "biomesoplenty:half_slab_polished_shale" },
|
||||||
|
"half=top,variant=polished_shale": { "model": "biomesoplenty:upper_slab_polished_shale" },
|
||||||
|
"half=bottom,variant=crag_rock": { "model": "biomesoplenty:half_slab_crag_rock" },
|
||||||
|
"half=top,variant=crag_rock": { "model": "biomesoplenty:upper_slab_crag_rock" },
|
||||||
|
"half=bottom,variant=mud_brick": { "model": "biomesoplenty:half_slab_mud_brick" },
|
||||||
|
"half=top,variant=mud_brick": { "model": "biomesoplenty:upper_slab_mud_brick" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/crag_rock",
|
||||||
|
"top": "biomesoplenty:blocks/crag_rock",
|
||||||
|
"side": "biomesoplenty:blocks/crag_rock"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/limestone",
|
||||||
|
"top": "biomesoplenty:blocks/limestone",
|
||||||
|
"side": "biomesoplenty:blocks/limestone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/mud_brick_block",
|
||||||
|
"top": "biomesoplenty:blocks/mud_brick_block",
|
||||||
|
"side": "biomesoplenty:blocks/mud_brick_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/polished_limestone",
|
||||||
|
"top": "biomesoplenty:blocks/polished_limestone",
|
||||||
|
"side": "biomesoplenty:blocks/polished_limestone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/polished_shale",
|
||||||
|
"top": "biomesoplenty:blocks/polished_shale",
|
||||||
|
"side": "biomesoplenty:blocks/polished_shale"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/polished_siltstone",
|
||||||
|
"top": "biomesoplenty:blocks/polished_siltstone",
|
||||||
|
"side": "biomesoplenty:blocks/polished_siltstone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/shale",
|
||||||
|
"top": "biomesoplenty:blocks/shale",
|
||||||
|
"side": "biomesoplenty:blocks/shale"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/siltstone",
|
||||||
|
"top": "biomesoplenty:blocks/siltstone",
|
||||||
|
"side": "biomesoplenty:blocks/siltstone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/crag_rock",
|
||||||
|
"top": "biomesoplenty:blocks/crag_rock",
|
||||||
|
"side": "biomesoplenty:blocks/crag_rock"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/limestone",
|
||||||
|
"top": "biomesoplenty:blocks/limestone",
|
||||||
|
"side": "biomesoplenty:blocks/limestone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/mud_brick_block",
|
||||||
|
"top": "biomesoplenty:blocks/mud_brick_block",
|
||||||
|
"side": "biomesoplenty:blocks/mud_brick_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/polished_limestone",
|
||||||
|
"top": "biomesoplenty:blocks/polished_limestone",
|
||||||
|
"side": "biomesoplenty:blocks/polished_limestone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/polished_shale",
|
||||||
|
"top": "biomesoplenty:blocks/polished_shale",
|
||||||
|
"side": "biomesoplenty:blocks/polished_shale"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/polished_siltstone",
|
||||||
|
"top": "biomesoplenty:blocks/polished_siltstone",
|
||||||
|
"side": "biomesoplenty:blocks/polished_siltstone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/shale",
|
||||||
|
"top": "biomesoplenty:blocks/shale",
|
||||||
|
"side": "biomesoplenty:blocks/shale"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "biomesoplenty:blocks/siltstone",
|
||||||
|
"top": "biomesoplenty:blocks/siltstone",
|
||||||
|
"side": "biomesoplenty:blocks/siltstone"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "biomesoplenty:block/half_slab_crag_rock",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "biomesoplenty:block/half_slab_limestone",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "biomesoplenty:block/half_slab_mud_brick",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "biomesoplenty:block/half_slab_polished_limestone",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "biomesoplenty:block/half_slab_polished_shale",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "biomesoplenty:block/half_slab_polished_siltstone",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "biomesoplenty:block/half_slab_shale",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"parent": "biomesoplenty:block/half_slab_siltstone",
|
||||||
|
"display": {
|
||||||
|
"thirdperson": {
|
||||||
|
"rotation": [ 10, -45, 170 ],
|
||||||
|
"translation": [ 0, 1.5, -2.75 ],
|
||||||
|
"scale": [ 0.375, 0.375, 0.375 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue