Fixes #2433: Readded decorative slabs.
This commit is contained in:
parent
4b607d8fc8
commit
87cebc3e3f
|
@ -85,16 +85,21 @@ public interface IBlocks
|
||||||
|
|
||||||
IBlockDefinition quartzPillarStairs();
|
IBlockDefinition quartzPillarStairs();
|
||||||
|
|
||||||
/*
|
IBlockDefinition skyStoneSlab();
|
||||||
* IBlockDefinition skyStoneSlab();
|
|
||||||
* IBlockDefinition skyStoneBlockSlab();
|
IBlockDefinition smoothSkyStoneSlab();
|
||||||
* IBlockDefinition skyStoneBrickSlab();
|
|
||||||
* IBlockDefinition skyStoneSmallBrickSlab();
|
IBlockDefinition skyStoneBrickSlab();
|
||||||
* IBlockDefinition fluixSlab();
|
|
||||||
* IBlockDefinition quartzSlab();
|
IBlockDefinition skyStoneSmallBrickSlab();
|
||||||
* IBlockDefinition chiseledQuartzSlab();
|
|
||||||
* IBlockDefinition quartzPillarSlab();
|
IBlockDefinition fluixSlab();
|
||||||
*/
|
|
||||||
|
IBlockDefinition quartzSlab();
|
||||||
|
|
||||||
|
IBlockDefinition chiseledQuartzSlab();
|
||||||
|
|
||||||
|
IBlockDefinition quartzPillarSlab();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* misc
|
* misc
|
||||||
|
|
|
@ -26,6 +26,7 @@ import java.util.List;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
|
@ -72,6 +73,8 @@ class BlockDefinitionBuilder implements IBlockBuilder
|
||||||
|
|
||||||
private CreativeTabs creativeTab = CreativeTab.instance;
|
private CreativeTabs creativeTab = CreativeTab.instance;
|
||||||
|
|
||||||
|
private boolean disableItem = false;
|
||||||
|
|
||||||
private Function<Block, ItemBlock> itemFactory;
|
private Function<Block, ItemBlock> itemFactory;
|
||||||
|
|
||||||
@SideOnly( Side.CLIENT )
|
@SideOnly( Side.CLIENT )
|
||||||
|
@ -163,6 +166,13 @@ class BlockDefinitionBuilder implements IBlockBuilder
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IBlockBuilder disableItem()
|
||||||
|
{
|
||||||
|
this.disableItem = true;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@SideOnly( Side.CLIENT )
|
@SideOnly( Side.CLIENT )
|
||||||
private void customizeForClient( BlockRenderingCustomizer callback )
|
private void customizeForClient( BlockRenderingCustomizer callback )
|
||||||
{
|
{
|
||||||
|
@ -183,12 +193,17 @@ class BlockDefinitionBuilder implements IBlockBuilder
|
||||||
block.setRegistryName( AppEng.MOD_ID, registryName );
|
block.setRegistryName( AppEng.MOD_ID, registryName );
|
||||||
|
|
||||||
ItemBlock item = constructItemFromBlock( block );
|
ItemBlock item = constructItemFromBlock( block );
|
||||||
item.setRegistryName( AppEng.MOD_ID, registryName );
|
if ( item != null ) {
|
||||||
|
item.setRegistryName( AppEng.MOD_ID, registryName );
|
||||||
|
}
|
||||||
|
|
||||||
// Register the item and block with the game
|
// Register the item and block with the game
|
||||||
factory.addPreInit( side -> {
|
factory.addPreInit( side -> {
|
||||||
GameRegistry.register( block );
|
GameRegistry.register( block );
|
||||||
GameRegistry.register( item );
|
if ( item != null )
|
||||||
|
{
|
||||||
|
GameRegistry.register( item );
|
||||||
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
block.setCreativeTab( creativeTab );
|
block.setCreativeTab( creativeTab );
|
||||||
|
@ -211,7 +226,10 @@ class BlockDefinitionBuilder implements IBlockBuilder
|
||||||
blockRendering.apply( factory, block, null );
|
blockRendering.apply( factory, block, null );
|
||||||
}
|
}
|
||||||
|
|
||||||
itemRendering.apply( factory, item );
|
if( item != null )
|
||||||
|
{
|
||||||
|
itemRendering.apply( factory, item );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( block instanceof AEBaseTileBlock )
|
if( block instanceof AEBaseTileBlock )
|
||||||
|
@ -233,8 +251,14 @@ class BlockDefinitionBuilder implements IBlockBuilder
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
private ItemBlock constructItemFromBlock( Block block )
|
private ItemBlock constructItemFromBlock( Block block )
|
||||||
{
|
{
|
||||||
|
if( disableItem )
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
if( itemFactory != null )
|
if( itemFactory != null )
|
||||||
{
|
{
|
||||||
return itemFactory.apply( block );
|
return itemFactory.apply( block );
|
||||||
|
|
|
@ -45,6 +45,11 @@ public interface IBlockBuilder
|
||||||
|
|
||||||
IBlockBuilder rendering( BlockRenderingCustomizer callback );
|
IBlockBuilder rendering( BlockRenderingCustomizer callback );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Don't register an item for this block.
|
||||||
|
*/
|
||||||
|
IBlockBuilder disableItem();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Forces this block's item to uses a custom model, instead of using the default block state as the item model.
|
* Forces this block's item to uses a custom model, instead of using the default block state as the item model.
|
||||||
* The model has the same name as the registry name.
|
* The model has the same name as the registry name.
|
||||||
|
|
|
@ -19,8 +19,14 @@
|
||||||
package appeng.core.api.definitions;
|
package appeng.core.api.definitions;
|
||||||
|
|
||||||
|
|
||||||
|
import com.google.common.base.Verify;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockDispenser;
|
import net.minecraft.block.BlockDispenser;
|
||||||
|
import net.minecraft.block.BlockSlab;
|
||||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
|
import net.minecraft.item.ItemBlock;
|
||||||
|
import net.minecraft.item.ItemSlab;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraftforge.fml.relauncher.Side;
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
|
@ -29,6 +35,7 @@ import net.minecraftforge.oredict.OreDictionary;
|
||||||
|
|
||||||
import appeng.api.definitions.IBlockDefinition;
|
import appeng.api.definitions.IBlockDefinition;
|
||||||
import appeng.api.definitions.IBlocks;
|
import appeng.api.definitions.IBlocks;
|
||||||
|
import appeng.api.definitions.IItemDefinition;
|
||||||
import appeng.api.definitions.ITileDefinition;
|
import appeng.api.definitions.ITileDefinition;
|
||||||
import appeng.block.AEBaseItemBlockChargeable;
|
import appeng.block.AEBaseItemBlockChargeable;
|
||||||
import appeng.block.crafting.BlockCraftingMonitor;
|
import appeng.block.crafting.BlockCraftingMonitor;
|
||||||
|
@ -91,11 +98,13 @@ import appeng.client.render.model.GlassModel;
|
||||||
import appeng.client.render.spatial.SpatialPylonRendering;
|
import appeng.client.render.spatial.SpatialPylonRendering;
|
||||||
import appeng.core.AppEng;
|
import appeng.core.AppEng;
|
||||||
import appeng.core.features.AEFeature;
|
import appeng.core.features.AEFeature;
|
||||||
|
import appeng.core.features.BlockDefinition;
|
||||||
import appeng.core.features.registries.PartModels;
|
import appeng.core.features.registries.PartModels;
|
||||||
import appeng.debug.BlockChunkloader;
|
import appeng.debug.BlockChunkloader;
|
||||||
import appeng.debug.BlockCubeGenerator;
|
import appeng.debug.BlockCubeGenerator;
|
||||||
import appeng.debug.BlockItemGen;
|
import appeng.debug.BlockItemGen;
|
||||||
import appeng.debug.BlockPhantomNode;
|
import appeng.debug.BlockPhantomNode;
|
||||||
|
import appeng.decorative.slab.BlockSlabCommon;
|
||||||
import appeng.decorative.solid.BlockChargedQuartzOre;
|
import appeng.decorative.solid.BlockChargedQuartzOre;
|
||||||
import appeng.decorative.solid.BlockChiseledQuartz;
|
import appeng.decorative.solid.BlockChiseledQuartz;
|
||||||
import appeng.decorative.solid.BlockFluix;
|
import appeng.decorative.solid.BlockFluix;
|
||||||
|
@ -175,16 +184,15 @@ public final class ApiBlocks implements IBlocks
|
||||||
private final IBlockDefinition quartzStairs;
|
private final IBlockDefinition quartzStairs;
|
||||||
private final IBlockDefinition chiseledQuartzStairs;
|
private final IBlockDefinition chiseledQuartzStairs;
|
||||||
private final IBlockDefinition quartzPillarStairs;
|
private final IBlockDefinition quartzPillarStairs;
|
||||||
/*
|
|
||||||
* private final IBlockDefinition skyStoneSlab;
|
private final IBlockDefinition skyStoneSlab;
|
||||||
* private final IBlockDefinition skyStoneBlockSlab;
|
private final IBlockDefinition smoothSkyStoneSlab;
|
||||||
* private final IBlockDefinition skyStoneBrickSlab;
|
private final IBlockDefinition skyStoneBrickSlab;
|
||||||
* private final IBlockDefinition skyStoneSmallBrickSlab;
|
private final IBlockDefinition skyStoneSmallBrickSlab;
|
||||||
* private final IBlockDefinition fluixSlab;
|
private final IBlockDefinition fluixSlab;
|
||||||
* private final IBlockDefinition quartzSlab;
|
private final IBlockDefinition quartzSlab;
|
||||||
* private final IBlockDefinition chiseledQuartzSlab;
|
private final IBlockDefinition chiseledQuartzSlab;
|
||||||
* private final IBlockDefinition quartzPillarSlab;
|
private final IBlockDefinition quartzPillarSlab;
|
||||||
*/
|
|
||||||
|
|
||||||
private final IBlockDefinition itemGen;
|
private final IBlockDefinition itemGen;
|
||||||
private final IBlockDefinition chunkLoader;
|
private final IBlockDefinition chunkLoader;
|
||||||
|
@ -395,25 +403,14 @@ public final class ApiBlocks implements IBlocks
|
||||||
} )
|
} )
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// TODO Re-Add Slabs...
|
this.skyStoneSlab = makeSlab( "sky_stone_slab", "sky_stone_double_slab", registry, this.skyStoneBlock() );
|
||||||
/*
|
this.smoothSkyStoneSlab = makeSlab( "smooth_sky_stone_slab", "smooth_sky_stone_double_slab", registry, this.smoothSkyStoneBlock() );
|
||||||
* this.skyStoneSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone_stone,
|
this.skyStoneBrickSlab = makeSlab( "sky_stone_brick_slab", "sky_stone_brick_double_slab", registry, this.skyStoneBrick() );
|
||||||
* EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneSlabBlock" ) );
|
this.skyStoneSmallBrickSlab = makeSlab( "sky_stone_small_brick_slab", "sky_stone_small_brick_double_slab", registry, this.skyStoneSmallBrick() );
|
||||||
* this.skyStoneBlockSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone_block,
|
this.fluixSlab = makeSlab( "fluix_slab", "fluix_double_slab", registry, this.fluixBlock() );
|
||||||
* EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneBlockSlabBlock" ) );
|
this.quartzSlab = makeSlab( "quartz_slab", "quartz_double_slab", registry, this.quartzBlock() );
|
||||||
* this.skyStoneBrickSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone_brick,
|
this.chiseledQuartzSlab = makeSlab( "chiseled_quartz_slab", "chiseled_quartz_double_slab", registry, this.chiseledQuartzBlock() );
|
||||||
* EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneBrickSlabBlock" ) );
|
this.quartzPillarSlab = makeSlab( "quartz_pillar_slab", "quartz_pillar_double_slab", registry, this.quartzPillar() );
|
||||||
* this.skyStoneSmallBrickSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone_smallbrick,
|
|
||||||
* EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneSmallBrickSlabBlock" ) );
|
|
||||||
* this.fluixSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( fluixBlock,
|
|
||||||
* EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "FluixSlabBlock" ) );
|
|
||||||
* this.quartzSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( quartzBlock,
|
|
||||||
* EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "QuartzSlabBlock" ) );
|
|
||||||
* this.chiseledQuartzSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( chiseledQuartzBlock,
|
|
||||||
* EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "ChiseledQuartzSlabBlock" ) );
|
|
||||||
* this.quartzPillarSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( quartzPillar,
|
|
||||||
* EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "QuartzPillarSlabBlock" ) )
|
|
||||||
*/
|
|
||||||
|
|
||||||
this.itemGen = registry.block( "debug_item_gen", BlockItemGen::new )
|
this.itemGen = registry.block( "debug_item_gen", BlockItemGen::new )
|
||||||
.features( AEFeature.UnsupportedDeveloperTools, AEFeature.Creative )
|
.features( AEFeature.UnsupportedDeveloperTools, AEFeature.Creative )
|
||||||
|
@ -433,6 +430,48 @@ public final class ApiBlocks implements IBlocks
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static IBlockDefinition makeSlab( String slabId, String doubleSlabId, FeatureFactory registry, IBlockDefinition blockDef )
|
||||||
|
{
|
||||||
|
if( !blockDef.maybeBlock().isPresent() )
|
||||||
|
{
|
||||||
|
return new BlockDefinition( slabId, null, null );
|
||||||
|
}
|
||||||
|
|
||||||
|
Block block = blockDef.maybeBlock().get();
|
||||||
|
|
||||||
|
IBlockDefinition slabDef = registry.block( slabId, () -> new BlockSlabCommon.Half( block ) )
|
||||||
|
.features( AEFeature.DecorativeQuartzBlocks )
|
||||||
|
.disableItem()
|
||||||
|
.build();
|
||||||
|
|
||||||
|
if( !slabDef.maybeBlock().isPresent() )
|
||||||
|
{
|
||||||
|
return new BlockDefinition( slabId, null, null );
|
||||||
|
}
|
||||||
|
|
||||||
|
BlockSlab slabBlock = (BlockSlab) slabDef.maybeBlock().get();
|
||||||
|
|
||||||
|
// Reigster the double slab variant as well
|
||||||
|
IBlockDefinition doubleSlabDef = registry.block( doubleSlabId, () -> new BlockSlabCommon.Double( slabBlock, block ) )
|
||||||
|
.features( AEFeature.DecorativeQuartzBlocks )
|
||||||
|
.disableItem()
|
||||||
|
.build();
|
||||||
|
|
||||||
|
Verify.verify( doubleSlabDef.maybeBlock().isPresent() );
|
||||||
|
|
||||||
|
BlockSlab doubleSlabBlock = (BlockSlab) doubleSlabDef.maybeBlock().get();
|
||||||
|
|
||||||
|
// Make the slab item
|
||||||
|
IItemDefinition itemDef = registry.item( slabId, () -> new ItemSlab( slabBlock, slabBlock, doubleSlabBlock ) )
|
||||||
|
.features( AEFeature.DecorativeQuartzBlocks )
|
||||||
|
.build();
|
||||||
|
|
||||||
|
Verify.verify( itemDef.maybeItem().isPresent() );
|
||||||
|
|
||||||
|
// Return a new composite block definition that combines the single slab block with the slab item
|
||||||
|
return new BlockDefinition( slabId, slabBlock, (ItemBlock) itemDef.maybeItem().get() );
|
||||||
|
}
|
||||||
|
|
||||||
private static IBlockDefinition makeStairs( String registryName, FeatureFactory registry, IBlockDefinition block )
|
private static IBlockDefinition makeStairs( String registryName, FeatureFactory registry, IBlockDefinition block )
|
||||||
{
|
{
|
||||||
return registry.block( registryName, () -> new BlockStairCommon( block.maybeBlock().get(), block.identifier() ) )
|
return registry.block( registryName, () -> new BlockStairCommon( block.maybeBlock().get(), block.identifier() ) )
|
||||||
|
@ -600,48 +639,53 @@ public final class ApiBlocks implements IBlocks
|
||||||
return this.quartzPillarStairs;
|
return this.quartzPillarStairs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
@Override
|
||||||
* @Override
|
public IBlockDefinition skyStoneSlab()
|
||||||
* public IBlockDefinition skyStoneSlab()
|
{
|
||||||
* {
|
return this.skyStoneSlab;
|
||||||
* return this.skyStoneSlab;
|
}
|
||||||
* }
|
|
||||||
* @Override
|
@Override
|
||||||
* public IBlockDefinition skyStoneBlockSlab()
|
public IBlockDefinition smoothSkyStoneSlab()
|
||||||
* {
|
{
|
||||||
* return this.skyStoneBlockSlab;
|
return this.smoothSkyStoneSlab;
|
||||||
* }
|
}
|
||||||
* @Override
|
|
||||||
* public IBlockDefinition skyStoneBrickSlab()
|
@Override
|
||||||
* {
|
public IBlockDefinition skyStoneBrickSlab()
|
||||||
* return this.skyStoneBrickSlab;
|
{
|
||||||
* }
|
return this.skyStoneBrickSlab;
|
||||||
* @Override
|
}
|
||||||
* public IBlockDefinition skyStoneSmallBrickSlab()
|
|
||||||
* {
|
@Override
|
||||||
* return this.skyStoneSmallBrickSlab;
|
public IBlockDefinition skyStoneSmallBrickSlab()
|
||||||
* }
|
{
|
||||||
* @Override
|
return this.skyStoneSmallBrickSlab;
|
||||||
* public IBlockDefinition fluixSlab()
|
}
|
||||||
* {
|
|
||||||
* return this.fluixSlab;
|
@Override
|
||||||
* }
|
public IBlockDefinition fluixSlab()
|
||||||
* @Override
|
{
|
||||||
* public IBlockDefinition quartzSlab()
|
return this.fluixSlab;
|
||||||
* {
|
}
|
||||||
* return this.quartzSlab;
|
|
||||||
* }
|
@Override
|
||||||
* @Override
|
public IBlockDefinition quartzSlab()
|
||||||
* public IBlockDefinition chiseledQuartzSlab()
|
{
|
||||||
* {
|
return this.quartzSlab;
|
||||||
* return this.chiseledQuartzSlab;
|
}
|
||||||
* }
|
|
||||||
* @Override
|
@Override
|
||||||
* public IBlockDefinition quartzPillarSlab()
|
public IBlockDefinition chiseledQuartzSlab()
|
||||||
* {
|
{
|
||||||
* return this.quartzPillarSlab;
|
return this.chiseledQuartzSlab;
|
||||||
* }
|
}
|
||||||
*/
|
|
||||||
|
@Override
|
||||||
|
public IBlockDefinition quartzPillarSlab()
|
||||||
|
{
|
||||||
|
return this.quartzPillarSlab;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ITileDefinition grindstone()
|
public ITileDefinition grindstone()
|
||||||
|
|
159
src/main/java/appeng/decorative/slab/BlockSlabCommon.java
Normal file
159
src/main/java/appeng/decorative/slab/BlockSlabCommon.java
Normal file
|
@ -0,0 +1,159 @@
|
||||||
|
package appeng.decorative.slab;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockSlab;
|
||||||
|
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.creativetab.CreativeTabs;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.IStringSerializable;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
|
||||||
|
public abstract class BlockSlabCommon extends BlockSlab
|
||||||
|
{
|
||||||
|
|
||||||
|
static final PropertyEnum<BlockSlabCommon.Variant> VARIANT = PropertyEnum.create( "variant", Variant.class );
|
||||||
|
|
||||||
|
private BlockSlabCommon( Block block )
|
||||||
|
{
|
||||||
|
super( block.getMaterial( block.getDefaultState() ) );
|
||||||
|
this.setHardness( block.getBlockHardness( block.getDefaultState(), null, null ) );
|
||||||
|
this.setResistance( block.getExplosionResistance( null ) * 5.0F / 3.0F );
|
||||||
|
|
||||||
|
IBlockState iblockstate = this.blockState.getBaseState();
|
||||||
|
|
||||||
|
if( !this.isDouble() )
|
||||||
|
{
|
||||||
|
iblockstate = iblockstate.withProperty( HALF, BlockSlab.EnumBlockHalf.BOTTOM );
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setDefaultState( iblockstate.withProperty( VARIANT, Variant.DEFAULT ) );
|
||||||
|
this.setCreativeTab( CreativeTabs.BUILDING_BLOCKS );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the given metadata into a BlockState for this Block
|
||||||
|
*/
|
||||||
|
public IBlockState getStateFromMeta( int meta )
|
||||||
|
{
|
||||||
|
IBlockState iblockstate = this.getDefaultState().withProperty( VARIANT, Variant.DEFAULT );
|
||||||
|
|
||||||
|
if( !this.isDouble() )
|
||||||
|
{
|
||||||
|
iblockstate = iblockstate.withProperty( HALF, ( meta & 8 ) == 0 ? BlockSlab.EnumBlockHalf.BOTTOM : BlockSlab.EnumBlockHalf.TOP );
|
||||||
|
}
|
||||||
|
|
||||||
|
return iblockstate;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert the BlockState into the correct metadata value
|
||||||
|
*/
|
||||||
|
public int getMetaFromState( IBlockState state )
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
if( !this.isDouble() && state.getValue( HALF ) == BlockSlab.EnumBlockHalf.TOP )
|
||||||
|
{
|
||||||
|
i |= 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected BlockStateContainer createBlockState()
|
||||||
|
{
|
||||||
|
return this.isDouble() ? new BlockStateContainer( this, VARIANT ) : new BlockStateContainer( this, HALF, VARIANT );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Item getItemDropped( IBlockState state, Random rand, int fortune )
|
||||||
|
{
|
||||||
|
return Item.getItemFromBlock( this );
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getItem( World worldIn, BlockPos pos, IBlockState state )
|
||||||
|
{
|
||||||
|
return new ItemStack( this, 1, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUnlocalizedName( int meta )
|
||||||
|
{
|
||||||
|
return getUnlocalizedName();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IProperty<?> getVariantProperty()
|
||||||
|
{
|
||||||
|
return VARIANT;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Comparable<?> getTypeForItem( ItemStack stack )
|
||||||
|
{
|
||||||
|
return Variant.DEFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Double extends BlockSlabCommon
|
||||||
|
{
|
||||||
|
|
||||||
|
private final Block halfSlabBlock;
|
||||||
|
|
||||||
|
public Double( Block halfSlabBlock, Block block )
|
||||||
|
{
|
||||||
|
super( block );
|
||||||
|
this.halfSlabBlock = halfSlabBlock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isDouble()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public Item getItemDropped( IBlockState state, Random rand, int fortune )
|
||||||
|
{
|
||||||
|
return Item.getItemFromBlock( halfSlabBlock );
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack getItem( World worldIn, BlockPos pos, IBlockState state )
|
||||||
|
{
|
||||||
|
return new ItemStack( halfSlabBlock, 1, 0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Half extends BlockSlabCommon
|
||||||
|
{
|
||||||
|
|
||||||
|
public Half( Block block )
|
||||||
|
{
|
||||||
|
super( block );
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isDouble()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Variant implements IStringSerializable
|
||||||
|
{
|
||||||
|
DEFAULT;
|
||||||
|
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return "default";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"variant=default": { "model": "appliedenergistics2:chiseled_quartz_block" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"half=bottom,variant=default": { "model": "appliedenergistics2:slabs/chiseled_quartz_half" },
|
||||||
|
"half=top": { "model": "appliedenergistics2:slabs/chiseled_quartz_upper" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"variant=default": { "model": "appliedenergistics2:fluix_block" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"half=bottom,variant=default": { "model": "appliedenergistics2:slabs/fluix_half" },
|
||||||
|
"half=top,variant=default": { "model": "appliedenergistics2:slabs/fluix_upper" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"variant=default": { "model": "appliedenergistics2:quartz_block" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"variant=default": { "model": "appliedenergistics2:quartz_pillar" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"half=bottom,variant=default": { "model": "appliedenergistics2:slabs/quartz_pillar_half" },
|
||||||
|
"half=top": { "model": "appliedenergistics2:slabs/quartz_pillar_upper" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"half=bottom,variant=default": { "model": "appliedenergistics2:slabs/quartz_half" },
|
||||||
|
"half=top": { "model": "appliedenergistics2:slabs/quartz_upper" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"variant=default": { "model": "appliedenergistics2:sky_stone_brick" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"half=bottom,variant=default": { "model": "appliedenergistics2:slabs/sky_stone_brick_half" },
|
||||||
|
"half=top": { "model": "appliedenergistics2:slabs/sky_stone_brick_upper" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"variant=default": { "model": "appliedenergistics2:sky_stone_block" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"half=bottom,variant=default": { "model": "appliedenergistics2:slabs/sky_stone_half" },
|
||||||
|
"half=top": { "model": "appliedenergistics2:slabs/sky_stone_upper" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"variant=default": { "model": "appliedenergistics2:sky_stone_small_brick" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"half=bottom,variant=default": { "model": "appliedenergistics2:slabs/sky_stone_small_brick_half" },
|
||||||
|
"half=top": { "model": "appliedenergistics2:slabs/sky_stone_small_brick_upper" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"variant=default": { "model": "appliedenergistics2:smooth_sky_stone_block" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"half=bottom,variant=default": { "model": "appliedenergistics2:slabs/smooth_sky_stone_half" },
|
||||||
|
"half=top": { "model": "appliedenergistics2:slabs/smooth_sky_stone_upper" }
|
||||||
|
}
|
||||||
|
}
|
|
@ -62,14 +62,14 @@ tile.appliedenergistics2.SkyStoneSmallBrickStairBlock.name=Himmelssteinkleinzieg
|
||||||
tile.appliedenergistics2.SkyStoneStairBlock.name=Himmelssteintreppe
|
tile.appliedenergistics2.SkyStoneStairBlock.name=Himmelssteintreppe
|
||||||
|
|
||||||
// Slabs
|
// Slabs
|
||||||
tile.appliedenergistics2.ChiseledQuartzSlabBlock.name=Gemeißelte Certusquartzstufe
|
tile.appliedenergistics2.chiseled_quartz_slab.name=Gemeißelte Certusquartzstufe
|
||||||
tile.appliedenergistics2.FluixSlabBlock.name=Fluixstufe
|
tile.appliedenergistics2.fluix_slab.name=Fluixstufe
|
||||||
tile.appliedenergistics2.QuartzPillarSlabBlock.name=Certusquartzsäulenstufe
|
tile.appliedenergistics2.quartz_pillar_slab.name=Certusquartzsäulenstufe
|
||||||
tile.appliedenergistics2.QuartzSlabBlock.name=Certusquartzstufe
|
tile.appliedenergistics2.quartz_slab.name=Certusquartzstufe
|
||||||
tile.appliedenergistics2.SkyStoneBlockSlabBlock.name=Himmelssteinblockstufe
|
tile.appliedenergistics2.smooth_sky_stone_slab.name=Himmelssteinblockstufe
|
||||||
tile.appliedenergistics2.SkyStoneBrickSlabBlock.name=Himmelssteinziegelstufe
|
tile.appliedenergistics2.sky_stone_brick_slab.name=Himmelssteinziegelstufe
|
||||||
tile.appliedenergistics2.SkyStoneSmallBrickSlabBlock.name=Himmelssteinkleinziegelstufe
|
tile.appliedenergistics2.sky_stone_small_brick_slab.name=Himmelssteinkleinziegelstufe
|
||||||
tile.appliedenergistics2.SkyStoneSlabBlock.name=Himmelssteinstufe
|
tile.appliedenergistics2.sky_stone_slab.name=Himmelssteinstufe
|
||||||
|
|
||||||
// Chat Messages
|
// Chat Messages
|
||||||
chat.appliedenergistics2.ChestCannotReadStorageCell=ME-Truhe kann die Speicherzelle nicht einlesen.
|
chat.appliedenergistics2.ChestCannotReadStorageCell=ME-Truhe kann die Speicherzelle nicht einlesen.
|
||||||
|
|
|
@ -62,14 +62,14 @@ tile.appliedenergistics2.sky_stone_small_brick_stairs.name=Sky Stone Small Brick
|
||||||
tile.appliedenergistics2.sky_stone_stairs.name=Sky Stone Stairs
|
tile.appliedenergistics2.sky_stone_stairs.name=Sky Stone Stairs
|
||||||
|
|
||||||
// Slabs
|
// Slabs
|
||||||
tile.appliedenergistics2.ChiseledQuartzSlabBlock.name=Chiseled Certus Quartz Slabs
|
tile.appliedenergistics2.chiseled_quartz_slab.name=Chiseled Certus Quartz Slabs
|
||||||
tile.appliedenergistics2.FluixSlabBlock.name=Fluix Slabs
|
tile.appliedenergistics2.fluix_slab.name=Fluix Slabs
|
||||||
tile.appliedenergistics2.QuartzPillarSlabBlock.name=Certus Quartz Pillar Slabs
|
tile.appliedenergistics2.quartz_pillar_slab.name=Certus Quartz Pillar Slabs
|
||||||
tile.appliedenergistics2.QuartzSlabBlock.name=Certus Quartz Slabs
|
tile.appliedenergistics2.quartz_slab.name=Certus Quartz Slabs
|
||||||
tile.appliedenergistics2.SkyStoneBlockSlabBlock.name=Sky Stone Block Slabs
|
tile.appliedenergistics2.smooth_sky_stone_slab.name=Sky Stone Block Slabs
|
||||||
tile.appliedenergistics2.SkyStoneBrickSlabBlock.name=Sky Stone Brick Slabs
|
tile.appliedenergistics2.sky_stone_brick_slab.name=Sky Stone Brick Slabs
|
||||||
tile.appliedenergistics2.SkyStoneSmallBrickSlabBlock.name=Sky Stone Small Brick Slabs
|
tile.appliedenergistics2.sky_stone_small_brick_slab.name=Sky Stone Small Brick Slabs
|
||||||
tile.appliedenergistics2.SkyStoneSlabBlock.name=Sky Stone Slabs
|
tile.appliedenergistics2.sky_stone_slab.name=Sky Stone Slabs
|
||||||
|
|
||||||
// Chat Messages
|
// Chat Messages
|
||||||
chat.appliedenergistics2.ChestCannotReadStorageCell=ME Chest cannot read storage cell.
|
chat.appliedenergistics2.ChestCannotReadStorageCell=ME Chest cannot read storage cell.
|
||||||
|
|
|
@ -62,14 +62,14 @@ tile.appliedenergistics2.SkyStoneSmallBrickStairBlock.name=Escaliers de petites
|
||||||
tile.appliedenergistics2.SkyStoneStairBlock.name=Escaliers de pierre de ciel
|
tile.appliedenergistics2.SkyStoneStairBlock.name=Escaliers de pierre de ciel
|
||||||
|
|
||||||
// Slabs
|
// Slabs
|
||||||
tile.appliedenergistics2.ChiseledQuartzSlabBlock.name=Dalle de Quartz Certus ciselé
|
tile.appliedenergistics2.chiseled_quartz_slab.name=Dalle de Quartz Certus ciselé
|
||||||
tile.appliedenergistics2.FluixSlabBlock.name=Dalle de Fluix
|
tile.appliedenergistics2.fluix_slab.name=Dalle de Fluix
|
||||||
tile.appliedenergistics2.QuartzPillarSlabBlock.name=Dalle de pilier de Quartz Certus
|
tile.appliedenergistics2.quartz_pillar_slab.name=Dalle de pilier de Quartz Certus
|
||||||
tile.appliedenergistics2.QuartzSlabBlock.name=Dalle de Quartz Certus
|
tile.appliedenergistics2.quartz_slab.name=Dalle de Quartz Certus
|
||||||
tile.appliedenergistics2.SkyStoneBlockSlabBlock.name=Dalle de bloc de pierre de ciel
|
tile.appliedenergistics2.smooth_sky_stone_slab.name=Dalle de bloc de pierre de ciel
|
||||||
tile.appliedenergistics2.SkyStoneBrickSlabBlock.name=Dalle de briques de pierre de ciel
|
tile.appliedenergistics2.sky_stone_brick_slab.name=Dalle de briques de pierre de ciel
|
||||||
tile.appliedenergistics2.SkyStoneSmallBrickSlabBlock.name=Dalle de petites briques de pierre de ciel
|
tile.appliedenergistics2.sky_stone_small_brick_slab.name=Dalle de petites briques de pierre de ciel
|
||||||
tile.appliedenergistics2.SkyStoneSlabBlock.name=Dalle de pierre de ciel
|
tile.appliedenergistics2.sky_stone_slab.name=Dalle de pierre de ciel
|
||||||
|
|
||||||
// Chat Messages
|
// Chat Messages
|
||||||
chat.appliedenergistics2.ChestCannotReadStorageCell=Le coffre ME Chest ne peut pas lire la cellule de stockage.
|
chat.appliedenergistics2.ChestCannotReadStorageCell=Le coffre ME Chest ne peut pas lire la cellule de stockage.
|
||||||
|
|
|
@ -62,14 +62,14 @@ tile.appliedenergistics2.SkyStoneSmallBrickStairBlock.name=Escadas de Tijolos Pe
|
||||||
tile.appliedenergistics2.SkyStoneStairBlock.name=Escadas de Pedra do Céu
|
tile.appliedenergistics2.SkyStoneStairBlock.name=Escadas de Pedra do Céu
|
||||||
|
|
||||||
// Slabs
|
// Slabs
|
||||||
tile.appliedenergistics2.ChiseledQuartzSlabBlock.name=Laje de Quartzo Certus Talhadas
|
tile.appliedenergistics2.chiseled_quartz_slab.name=Laje de Quartzo Certus Talhadas
|
||||||
tile.appliedenergistics2.FluixSlabBlock.name=Laje de Fluix
|
tile.appliedenergistics2.fluix_slab.name=Laje de Fluix
|
||||||
tile.appliedenergistics2.QuartzPillarSlabBlock.name=Laje de Pilar de Quartzo Certus
|
tile.appliedenergistics2.quartz_pillar_slab.name=Laje de Pilar de Quartzo Certus
|
||||||
tile.appliedenergistics2.QuartzSlabBlock.name=Laje de Quartzo Certus
|
tile.appliedenergistics2.quartz_slab.name=Laje de Quartzo Certus
|
||||||
tile.appliedenergistics2.SkyStoneBlockSlabBlock.name=Laje de Bloco de Pedra do Céu
|
tile.appliedenergistics2.smooth_sky_stone_slab.name=Laje de Bloco de Pedra do Céu
|
||||||
tile.appliedenergistics2.SkyStoneBrickSlabBlock.name=Laje de Tijolos de Pedra do Céu
|
tile.appliedenergistics2.sky_stone_brick_slab.name=Laje de Tijolos de Pedra do Céu
|
||||||
tile.appliedenergistics2.SkyStoneSmallBrickSlabBlock.name=Laje de Tijolos Pequenos de Pedra do Céu
|
tile.appliedenergistics2.sky_stone_small_brick_slab.name=Laje de Tijolos Pequenos de Pedra do Céu
|
||||||
tile.appliedenergistics2.SkyStoneSlabBlock.name=Laje de Pedra do Céu
|
tile.appliedenergistics2.sky_stone_slab.name=Laje de Pedra do Céu
|
||||||
|
|
||||||
// Chat Messages
|
// Chat Messages
|
||||||
chat.appliedenergistics2.ChestCannotReadStorageCell=Baú ME não consegue ler a célula de armazenamento.
|
chat.appliedenergistics2.ChestCannotReadStorageCell=Baú ME não consegue ler a célula de armazenamento.
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/chiseled_quartz_block_top",
|
||||||
|
"side": "appliedenergistics2:blocks/chiseled_quartz_block_side",
|
||||||
|
"top": "appliedenergistics2:blocks/chiseled_quartz_block_top"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/chiseled_quartz_block_top",
|
||||||
|
"side": "appliedenergistics2:blocks/chiseled_quartz_block_side",
|
||||||
|
"top": "appliedenergistics2:blocks/chiseled_quartz_block_top"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/fluix_block",
|
||||||
|
"side": "appliedenergistics2:blocks/fluix_block",
|
||||||
|
"top": "appliedenergistics2:blocks/fluix_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/fluix_block",
|
||||||
|
"side": "appliedenergistics2:blocks/fluix_block",
|
||||||
|
"top": "appliedenergistics2:blocks/fluix_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/quartz_block",
|
||||||
|
"side": "appliedenergistics2:blocks/quartz_block",
|
||||||
|
"top": "appliedenergistics2:blocks/quartz_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/quartz_pillar_top",
|
||||||
|
"side": "appliedenergistics2:blocks/quartz_pillar_side",
|
||||||
|
"top": "appliedenergistics2:blocks/quartz_pillar_top"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/quartz_pillar_top",
|
||||||
|
"side": "appliedenergistics2:blocks/quartz_pillar_side",
|
||||||
|
"top": "appliedenergistics2:blocks/quartz_pillar_top"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/quartz_block",
|
||||||
|
"side": "appliedenergistics2:blocks/quartz_block",
|
||||||
|
"top": "appliedenergistics2:blocks/quartz_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/sky_stone_brick",
|
||||||
|
"side": "appliedenergistics2:blocks/sky_stone_brick",
|
||||||
|
"top": "appliedenergistics2:blocks/sky_stone_brick"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/sky_stone_brick",
|
||||||
|
"side": "appliedenergistics2:blocks/sky_stone_brick",
|
||||||
|
"top": "appliedenergistics2:blocks/sky_stone_brick"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/sky_stone_block",
|
||||||
|
"side": "appliedenergistics2:blocks/sky_stone_block",
|
||||||
|
"top": "appliedenergistics2:blocks/sky_stone_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/sky_stone_small_brick",
|
||||||
|
"side": "appliedenergistics2:blocks/sky_stone_small_brick",
|
||||||
|
"top": "appliedenergistics2:blocks/sky_stone_small_brick"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/sky_stone_small_brick",
|
||||||
|
"side": "appliedenergistics2:blocks/sky_stone_small_brick",
|
||||||
|
"top": "appliedenergistics2:blocks/sky_stone_small_brick"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/sky_stone_block",
|
||||||
|
"side": "appliedenergistics2:blocks/sky_stone_block",
|
||||||
|
"top": "appliedenergistics2:blocks/sky_stone_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/half_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/smooth_sky_stone_block",
|
||||||
|
"side": "appliedenergistics2:blocks/smooth_sky_stone_block",
|
||||||
|
"top": "appliedenergistics2:blocks/smooth_sky_stone_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "block/upper_slab",
|
||||||
|
"textures": {
|
||||||
|
"bottom": "appliedenergistics2:blocks/smooth_sky_stone_block",
|
||||||
|
"side": "appliedenergistics2:blocks/smooth_sky_stone_block",
|
||||||
|
"top": "appliedenergistics2:blocks/smooth_sky_stone_block"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,31 +1,31 @@
|
||||||
shaped=
|
shaped=
|
||||||
ae2:chiseled_quartz_block ae2:chiseled_quartz_block ae2:chiseled_quartz_block
|
ae2:chiseled_quartz_block ae2:chiseled_quartz_block ae2:chiseled_quartz_block
|
||||||
-> 6 ae2:ChiseledQuartzSlabBlock
|
-> 6 ae2:chiseled_quartz_slab
|
||||||
|
|
||||||
shaped=
|
shaped=
|
||||||
ae2:fluix ae2:fluix ae2:fluix
|
ae2:fluix_block ae2:fluix_block ae2:fluix_block
|
||||||
-> 6 ae2:FluixSlabBlock
|
-> 6 ae2:fluix_slab
|
||||||
|
|
||||||
shaped=
|
shaped=
|
||||||
ae2:quartz_pillar ae2:quartz_pillar ae2:quartz_pillar
|
ae2:quartz_pillar ae2:quartz_pillar ae2:quartz_pillar
|
||||||
-> 6 ae2:QuartzPillarSlabBlock
|
-> 6 ae2:quartz_pillar_slab
|
||||||
|
|
||||||
shaped=
|
shaped=
|
||||||
ae2:quartz_block ae2:quartz_block ae2:quartz_block
|
ae2:quartz_block ae2:quartz_block ae2:quartz_block
|
||||||
-> 6 ae2:QuartzSlabBlock
|
-> 6 ae2:quartz_slab
|
||||||
|
|
||||||
shaped=
|
shaped=
|
||||||
ae2:sky_stone_block ae2:sky_stone_block ae2:sky_stone_block
|
ae2:sky_stone_block ae2:sky_stone_block ae2:sky_stone_block
|
||||||
-> 6 ae2:SkyStoneSlabBlock
|
-> 6 ae2:sky_stone_slab
|
||||||
|
|
||||||
shaped=
|
shaped=
|
||||||
ae2:smooth_sky_stone_block ae2:smooth_sky_stone_block ae2:smooth_sky_stone_block
|
ae2:smooth_sky_stone_block ae2:smooth_sky_stone_block ae2:smooth_sky_stone_block
|
||||||
-> 6 ae2:SkyStoneBlockSlabBlock
|
-> 6 ae2:smooth_sky_stone_slab
|
||||||
|
|
||||||
shaped=
|
shaped=
|
||||||
ae2:sky_stone_brick ae2:sky_stone_brick ae2:sky_stone_brick
|
ae2:sky_stone_brick ae2:sky_stone_brick ae2:sky_stone_brick
|
||||||
-> 6 ae2:SkyStoneBrickSlabBlock
|
-> 6 ae2:sky_stone_brick_slab
|
||||||
|
|
||||||
shaped=
|
shaped=
|
||||||
ae2:sky_stone_small_brick ae2:sky_stone_small_brick ae2:sky_stone_small_brick
|
ae2:sky_stone_small_brick ae2:sky_stone_small_brick ae2:sky_stone_small_brick
|
||||||
-> 6 ae2:SkyStoneSmallBrickSlabBlock
|
-> 6 ae2:sky_stone_small_brick_slab
|
||||||
|
|
Loading…
Reference in a new issue