Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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?

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");

 

  • Author

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.

For registering name,i have used:

 

LanguageRegistry.instance().addStringLocalization(((BlockStoneSlabs)YourSingleSlab).getFullSlabName(0)+".name", "Your Slab");

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.