Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.gmail.tester.richard.missingblocks.blocks.slabs.stone;
- import java.util.List;
- import java.util.Random;
- import com.gmail.tester.richard.missingblocks.blocks.ModBlocksSlabs;
- import com.gmail.tester.richard.missingblocks.blocks.ModBlocksSlabs;
- import com.gmail.tester.richard.missingblocks.lib.Constants;
- import cpw.mods.fml.common.Mod;
- import cpw.mods.fml.common.event.FMLPostInitializationEvent;
- import cpw.mods.fml.relauncher.Side;
- import cpw.mods.fml.relauncher.SideOnly;
- import net.minecraft.block.Block;
- import net.minecraft.block.BlockSlab;
- import net.minecraft.block.BlockStoneSlab;
- import net.minecraft.block.material.Material;
- import net.minecraft.creativetab.CreativeTabs;
- import net.minecraft.entity.EntityLiving;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.init.Blocks;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemSlab;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.Facing;
- import net.minecraft.util.IIcon;
- import net.minecraft.world.IBlockAccess;
- import net.minecraft.world.World;
- public class ObsidianSlab extends BlockSlab{
- private boolean isDoubleSlab;
- private int numSubBlocks;
- private Block singleSlab;
- private Block textureBlock;
- private int textureStartCounter;
- public final static String name = "obsidianSlab";
- public final static String name1 = "obsidianDblSlab";
- //public static final String[] slabName = new String[]{ name, name1 };
- public ObsidianSlab(boolean _isDoubleSlab, Material _blockMaterial, int _numSubBlocks, Block _singleSlab, Block _textureBlock, int _textureStartCounter) {
- super(_isDoubleSlab, _blockMaterial);
- this.setHardness(50.0F);
- this.setResistance(2000.0F);
- this.setHarvestLevel("pickaxe", 3);
- this.setStepSound(soundTypePiston);
- this.useNeighborBrightness = true;
- this.setLightOpacity(255);
- if(_isDoubleSlab){
- this.setCreativeTab(CreativeTabs.tabBlock);
- //this.setCreativeTab(null);
- } else{
- this.setBlockName(Constants.MODID + "_" + ObsidianSlab.name);
- this.setCreativeTab(CreativeTabs.tabBlock);
- this.isDoubleSlab = _isDoubleSlab;
- this.numSubBlocks = _numSubBlocks;
- this.singleSlab = _singleSlab;
- this.textureBlock = _textureBlock;
- this.textureStartCounter = _textureStartCounter;
- }
- }
- @Override
- @SideOnly(Side.CLIENT)
- public void getSubBlocks(Item par1, CreativeTabs tab, List subItems)
- {
- for (int ix = 0; ix < numSubBlocks; ix++)
- {
- subItems.add(new ItemStack(this, 1, ix));
- }
- }
- @SideOnly(Side.CLIENT)
- public IIcon getIcon(int side, int meta)
- {
- return textureBlock.getIcon(side, (meta % 8) + textureStartCounter);
- }
- @Override
- public Item getItemDropped(int par1, Random rand, int par3)
- {
- return (isDoubleSlab ? Item.getItemFromBlock(singleSlab) : Item.getItemFromBlock(this));
- }
- @Override
- public int quantityDropped(Random rand)
- {
- return (isDoubleSlab ? 2 : 1);
- }
- @Override
- public int damageDropped (int metadata) {
- return metadata % 8;
- }
- @Override
- protected ItemStack createStackedBlock(int meta)
- {
- return new ItemStack(singleSlab, 2, meta & 7);
- }
- @Override
- //In Forge 1.6.4 it was "getFullSlabName"
- public String func_150002_b(int par1)
- {
- if ((par1 < 0) || (par1 >= numSubBlocks))
- {
- par1 = 0;
- }
- return super.getUnlocalizedName() + "." + (par1+1);
- }
- /* if (isDoubleSlab){
- this.opaque = true;
- }
- else{
- this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
- }
- }
- public int quantityDropped(Random rand){
- return this._isDoubleSlab ? 2 : 1;
- }
- public boolean renderAsNormalBlock(){
- return this._isDoubleSlab;
- }
- public int onBlockPlaced(World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata){
- return this._isDoubleSlab ? metadata : (side != 0 && (side == 1 || (double)hitY <= 0.5D) ? metadata : metadata | 8);
- }
- public void onBlockPlacedBy(World world, int par2, int par3, int par4, EntityLiving par5){
- if(world.getBlock(par2, par3 - 1, par4) == ModBlocksSlabs.obsidianSlab){
- world.setBlock(par2, par3 - 1, par4, ModBlocksSlabs.obsidianDblSlab);
- }
- if(world.getBlock(par2, par3 + 1, par4) == ModBlocksSlabs.obsidianSlab){
- world.setBlock(par2, par3 + 1, par4, ModBlocksSlabs.obsidianDblSlab);
- }
- }
- @Override
- public ItemStack createStackedBlock(int idk){
- return new ItemStack(Item.getItemFromBlock(ModBlocksSlabs.obsidianSlab), 2, idk & 7);
- }
- public String getFullSlabName(int i){
- if ((i < 0) || (i >= slabName.length)){
- i = 0;
- }
- return super.getUnlocalizedName() + "." + slabName[i];
- }
- @Override
- @SideOnly(Side.CLIENT)
- public boolean shouldSideBeRendered(IBlockAccess blockAccess, int x, int y, int z, int side){
- if (this._isDoubleSlab)
- {
- return super.shouldSideBeRendered(blockAccess, x, y, z, side);
- }
- else if (side != 1 && side != 0 && !super.shouldSideBeRendered(blockAccess, x, y, z, side))
- {
- return false;
- }
- else
- {
- int i1 = x + Facing.offsetsXForSide[Facing.oppositeSide[side]];
- int j1 = y + Facing.offsetsYForSide[Facing.oppositeSide[side]];
- int k1 = z + Facing.offsetsZForSide[Facing.oppositeSide[side]];
- boolean flag = (blockAccess.getBlockMetadata(i1, j1, k1) & 8) != 0;
- return flag ? (side == 0 ? true : (side == 1 && super.shouldSideBeRendered(blockAccess, x, y, z, side) ? true : !isBlockSingleSlab(blockAccess.getBlock(x, y, z)) || (blockAccess.getBlockMetadata(x, y, z) & 8) == 0)) : (side == 1 ? true : (side == 0 && super.shouldSideBeRendered(blockAccess, x, y, z, side) ? true : !isBlockSingleSlab(blockAccess.getBlock(x, y, z)) || (blockAccess.getBlockMetadata(x, y, z) & 8) != 0));
- }
- }
- @SideOnly(Side.CLIENT)
- public static boolean isBlockSingleSlab(Block b)
- {
- return b == ModBlocksSlabs.obsidianSlab;
- }
- @Override
- @SideOnly(Side.CLIENT)
- public Item getItem(World world, int idk1, int idk2, int idk3){
- return isBlockSingleSlab(this) ? Item.getItemFromBlock(this) : (this == ModBlocksSlabs.obsidianDblSlab ? Item.getItemFromBlock(ModBlocksSlabs.obsidianSlab) : Item.getItemFromBlock(ModBlocksSlabs.obsidianSlab));
- }
- public void getSubBlocks(Block block, CreativeTabs cTabs, List list){
- if (block != ModBlocksSlabs.obsidianDblSlab){
- list.add(new ItemStack(block, 1, 1));
- }
- }
- @Override
- public String func_150002_b(int idk1){
- return null;
- }*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement