Advertisement
Camellias_

Untitled

Sep 10th, 2019
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.00 KB | None | 0 0
  1. package com.camellias.voidaicarcania.common.blocks;
  2.  
  3. import java.util.Random;
  4.  
  5. import com.camellias.voidaicarcania.Reference;
  6. import com.camellias.voidaicarcania.core.init.ModBlocks;
  7. import com.camellias.voidaicarcania.core.init.ModCreativeTabs;
  8. import com.camellias.voidaicarcania.core.init.ModItems;
  9.  
  10. import net.minecraft.block.Block;
  11. import net.minecraft.block.BlockSlab;
  12. import net.minecraft.block.properties.IProperty;
  13. import net.minecraft.block.properties.PropertyEnum;
  14. import net.minecraft.block.state.BlockStateContainer;
  15. import net.minecraft.block.state.IBlockState;
  16. import net.minecraft.item.Item;
  17. import net.minecraft.item.ItemBlock;
  18. import net.minecraft.item.ItemStack;
  19. import net.minecraft.util.IStringSerializable;
  20. import net.minecraft.util.math.BlockPos;
  21. import net.minecraft.world.World;
  22.  
  23. public abstract class BlockSlabBase extends BlockSlab
  24. {
  25.     public Block half;
  26.     public static final PropertyEnum<Variant> VARIANT = PropertyEnum.<Variant>create("variant", Variant.class);
  27.    
  28.     public BlockSlabBase(IBlockState parentState, String name, BlockSlab half)
  29.     {
  30.         super(parentState.getMaterial());
  31.         this.setTranslationKey(Reference.MODID + "." + name);
  32.         this.setRegistryName(name);
  33.         this.setCreativeTab(ModCreativeTabs.VA_TAB_MAIN);
  34.         this.useNeighborBrightness = !this.isDouble();
  35.        
  36.         IBlockState state = this.blockState.getBaseState().withProperty(VARIANT, Variant.DEFAULT);
  37.        
  38.         if(!this.isDouble())
  39.         {
  40.             state.withProperty(HALF, EnumBlockHalf.BOTTOM);
  41.         }
  42.        
  43.         this.half = half;
  44.        
  45.         ModBlocks.BLOCKS.add(this);
  46.     }
  47.    
  48.     @Override
  49.     public Item getItemDropped(IBlockState state, Random rand, int fortune)
  50.     {
  51.         return Item.getItemFromBlock(this.half);
  52.     }
  53.    
  54.     @Override
  55.     public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
  56.     {
  57.         return new ItemStack(this.half);
  58.     }
  59.    
  60.     @Override
  61.     protected BlockStateContainer createBlockState()
  62.     {
  63.         if(!this.isDouble())
  64.         {
  65.             return new BlockStateContainer(this, VARIANT, HALF);
  66.         }
  67.         else
  68.         {
  69.             return new BlockStateContainer(this, VARIANT);
  70.         }
  71.     }
  72.    
  73.     @Override
  74.     public IBlockState getStateFromMeta(int meta)
  75.     {
  76.         IBlockState state = this.blockState.getBaseState().withProperty(VARIANT, Variant.DEFAULT);
  77.        
  78.         if(!this.isDouble())
  79.         {
  80.             state = state.withProperty(HALF, ((meta&8) != 0) ? EnumBlockHalf.TOP : EnumBlockHalf.BOTTOM);
  81.         }
  82.        
  83.         return state;
  84.     }
  85.    
  86.     @Override
  87.     public int getMetaFromState(IBlockState state)
  88.     {
  89.         int meta = 0;
  90.        
  91.         if(!this.isDouble())
  92.         {
  93.             if(state.getValue(HALF) == EnumBlockHalf.TOP) meta |= 8;
  94.         }
  95.        
  96.         return meta;
  97.     }
  98.    
  99.     @Override
  100.     public String getTranslationKey(int meta)
  101.     {
  102.         return super.getTranslationKey();
  103.     }
  104.    
  105.     @Override
  106.     public IProperty<?> getVariantProperty()
  107.     {
  108.         return VARIANT;
  109.     }
  110.    
  111.     @Override
  112.     public Comparable<?> getTypeForItem(ItemStack stack)
  113.     {
  114.         return Variant.DEFAULT;
  115.     }
  116.    
  117.     public static enum Variant implements IStringSerializable
  118.     {
  119.         DEFAULT;
  120.        
  121.         @Override
  122.         public String getName()
  123.         {
  124.             return "default";
  125.         }
  126.     }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement