Add BOP stone and mud brick slabs
This commit is contained in:
parent
f219f84c09
commit
4b6e4effc7
33 changed files with 540 additions and 16 deletions
|
@ -119,6 +119,8 @@ public class BOPBlocks
|
|||
public static Block crag_rock;
|
||||
public static Block mud_brick_block;
|
||||
public static Block crystal;
|
||||
public static Block other_slab;
|
||||
public static Block double_other_slab;
|
||||
|
||||
public static Block flower_vine;
|
||||
public static Block ivy;
|
||||
|
|
|
@ -45,6 +45,7 @@ public class BOPItems
|
|||
public static Item pixie_dust;
|
||||
public static Item ichor;
|
||||
public static Item pinecone;
|
||||
public static Item other_slab;
|
||||
|
||||
public static Item dart;
|
||||
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;
|
||||
|
||||
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" );
|
||||
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'
|
||||
BlockBOPFlower.createAllPages();
|
||||
flower_0 = registerBlock( BlockBOPFlower.paging.getBlock(0), "flower_0" );
|
||||
flower_1 = registerBlock( BlockBOPFlower.paging.getBlock(1), "flower_1" );
|
||||
|
||||
|
||||
// 16 wood types, 4 per BlockBOPLog instance, needs 4 'pages'
|
||||
BlockBOPLog.createAllPages();
|
||||
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
|
||||
|
||||
// 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();
|
||||
BlockBOPHalfWoodSlab.createAllPages();
|
||||
registerWoodSlab( wood_slab_0, double_wood_slab_0, BOPItems.wood_slab_0, 0);
|
||||
registerWoodSlab( wood_slab_1, double_wood_slab_1, BOPItems.wood_slab_1, 1);
|
||||
wood_slab_0 = registerBlock( BlockBOPHalfWoodSlab.paging.getBlock(0), "wood_slab_0");
|
||||
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'
|
||||
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
|
||||
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)});
|
||||
|
||||
|
||||
/*** 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
|
||||
// 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});
|
||||
|
||||
|
|
|
@ -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 a new issue