Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.camellias.voidaicarcania.common.blocks;
- import java.util.Random;
- import com.camellias.voidaicarcania.Reference;
- import com.camellias.voidaicarcania.core.init.ModBlocks;
- import com.camellias.voidaicarcania.core.init.ModCreativeTabs;
- import com.camellias.voidaicarcania.core.init.ModItems;
- 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.item.Item;
- import net.minecraft.item.ItemBlock;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.IStringSerializable;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.World;
- public abstract class BlockSlabBase extends BlockSlab
- {
- public Block half;
- public static final PropertyEnum<Variant> VARIANT = PropertyEnum.<Variant>create("variant", Variant.class);
- public BlockSlabBase(IBlockState parentState, String name, BlockSlab half)
- {
- super(parentState.getMaterial());
- this.setTranslationKey(Reference.MODID + "." + name);
- this.setRegistryName(name);
- this.setCreativeTab(ModCreativeTabs.VA_TAB_MAIN);
- this.useNeighborBrightness = !this.isDouble();
- IBlockState state = this.blockState.getBaseState().withProperty(VARIANT, Variant.DEFAULT);
- if(!this.isDouble())
- {
- state.withProperty(HALF, EnumBlockHalf.BOTTOM);
- }
- this.half = half;
- ModBlocks.BLOCKS.add(this);
- }
- @Override
- public Item getItemDropped(IBlockState state, Random rand, int fortune)
- {
- return Item.getItemFromBlock(this.half);
- }
- @Override
- public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
- {
- return new ItemStack(this.half);
- }
- @Override
- protected BlockStateContainer createBlockState()
- {
- if(!this.isDouble())
- {
- return new BlockStateContainer(this, VARIANT, HALF);
- }
- else
- {
- return new BlockStateContainer(this, VARIANT);
- }
- }
- @Override
- public IBlockState getStateFromMeta(int meta)
- {
- IBlockState state = this.blockState.getBaseState().withProperty(VARIANT, Variant.DEFAULT);
- if(!this.isDouble())
- {
- state = state.withProperty(HALF, ((meta&8) != 0) ? EnumBlockHalf.TOP : EnumBlockHalf.BOTTOM);
- }
- return state;
- }
- @Override
- public int getMetaFromState(IBlockState state)
- {
- int meta = 0;
- if(!this.isDouble())
- {
- if(state.getValue(HALF) == EnumBlockHalf.TOP) meta |= 8;
- }
- return meta;
- }
- @Override
- public String getTranslationKey(int meta)
- {
- return super.getTranslationKey();
- }
- @Override
- public IProperty<?> getVariantProperty()
- {
- return VARIANT;
- }
- @Override
- public Comparable<?> getTypeForItem(ItemStack stack)
- {
- return Variant.DEFAULT;
- }
- public static enum Variant implements IStringSerializable
- {
- DEFAULT;
- @Override
- public String getName()
- {
- return "default";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement