Jump to content

Double Slabs? [Solved]


candlemaster

Recommended Posts

So, I managed to create a half slab that works nicely, but when I try to put another one on top of it, it doesn't create a double slab; instead it creates a new slab above it.  It inherits from BlockHalfSlab, and I used that class as well as BlockWoodSlab as examples, but I can't seem to figure this out.  Here's what I have so far:

 

public class SlabHay extends BlockHalfSlab
{
protected static Icon iconSide;

public SlabHay(int id, boolean doubleslab)
{
	super(id, doubleslab, Material.wood);

	setHardness(1.5f);
	setResistance(4.0f);
	setStepSound(Block.soundGrassFootstep);
	setUnlocalizedName("haySlab");

	useNeighborBrightness[id] = true;
}

public int idDropped(int par1, Random par2Random, int par3)
{
	return HayMod.haySlab.blockID;
}

public String getFullSlabName(int i)
{
	if (!isDoubleSlab)
		return super.getUnlocalizedName() + "haySlab";
	else
		return super.getUnlocalizedName() + "hayDoubleSlab";
}

@Override
public void func_94332_a(IconRegister par1IconRegister)
{
	iconSide = par1IconRegister.func_94245_a("hvh:hay_side");
	field_94336_cN = par1IconRegister.func_94245_a("hvh:hay_top");
}

@SideOnly(Side.CLIENT)
public Icon getBlockTextureFromSideAndMetadata(int par1, int par2)
{
	if (par1 == 0 || par1 == 1)
		return field_94336_cN;
	else
		return iconSide;
}
} 

 

Is there a method that I missed?  Am I supposed to register it with something?

Link to comment
Share on other sites

It's because of the slab is an itemblock,you need a custom itemblock for it,but a more simple thing is to put a line in the FMLPostInitializationEvent :

 

Item.itemsList[YourSingleSlab.blockID] = (new ItemSlab(YourSingleSlab.blockID - 256, (BlockHalfSlab)YourSingleSlab, (BlockHalfSlab)YourDoubleSlab, false)).setItemName("YourSlabName");

 

Link to comment
Share on other sites

It works great (I had to use setUnlocalizedName() instead of setItemName()), but now I have working double slabs.  Problem is, now my double slab has a name, but my single slabs have a blank tooltip.

 

Here's some bits of code that might be relevant:

public static BlockHalfSlab haySlab = (BlockHalfSlab) new SlabHay(505, false) .setUnlocalizedName("haySlab") .setCreativeTab(CreativeTabs.tabBlock);
public static BlockHalfSlab hayDoubleSlab = (BlockHalfSlab) new SlabHay(506, true) .setUnlocalizedName("hayDoubleSlab");

@Init
public void load(FMLInitializationEvent event)
{
	proxy.registerRenderers();

	//// Register the block, it's name, and it's harvest level
	// Hay Double Slab
	GameRegistry.registerBlock(hayDoubleSlab, "hayDoubleSlab");
	LanguageRegistry.addName(hayDoubleSlab, "Hay Double Slab");
	MinecraftForge.setBlockHarvestLevel(hayDoubleSlab, "hatchet", 0);
	// Hay Slab
	GameRegistry.registerBlock(haySlab, "haySlab");
	LanguageRegistry.addName(haySlab, "Hay Slab");
	MinecraftForge.setBlockHarvestLevel(haySlab, "hatchet", 0);

	//// Register the recipes
	// Hay Slab
	GameRegistry.addRecipe(new ItemStack(haySlab, 6), "xxx",
							'x', new ItemStack(hayBlock));
}

@PostInit
public void postInit(FMLPostInitializationEvent event)
{
	Item.itemsList[haySlab.blockID] = new ItemSlab(haySlab.blockID - 256, (BlockHalfSlab)haySlab, (BlockHalfSlab)hayDoubleSlab, false) .setUnlocalizedName("haySlab");
}

 

Any idea why my single slab has no name?  I tried using

LanguageRegistry.addName(Item.itemsList[haySlab.blockID], "Hay Slab");

to no avail.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.