Jump to content

[1.7.x] Check block has sub-blocks or not


BlackCrafer666

Recommended Posts

i want to build array of all the Block objects with sub-blocks if block has it.

if i build this array without sub-blocks, all my things are working fine.

my code:

int elementsCount = 0;

    public static void getBlockList(){
   	 Iterator it = Block.blockRegistry.iterator();
   	 for (boolean b=true; b==true; b=it.hasNext()){
   		 Block block = (Block)it.next();
   		 List list = new ArrayList();
   		 block.getSubBlocks(Item.getItemFromBlock(block), null, list);
   		 System.out.println(list.size());
   		 if (list.size()>1){
                    for (int i=0; i<list.size(); i++){
  		    ItemStack stack = (ItemStack)list.get(i);
   		    blocks[elementsCount] = Block.getBlockFromItem(stack.getItem());
   		    System.out.println(stack.getItem().getUnlocalizedName());
   		    System.out.println(Block.getIdFromBlock(blocks[elementsCount])+" : "+blocks[elementsCount].getLocalizedName());
   		    ++elementsCount;
  		 }
   		 }
   				 
   	 }
}

It's working, but blocks array is filling with the same blocks (not sub-blocks). E.G. wool block has 16 sub-blocks (aka sub-types) with different colors. But all 16 elements of my array is filling with only first type of wool (white wool). Same situation with wood, planks, saplings e.t.c.

Is it fixable?

and i also need to get localized names of each sub-block.

Link to comment
Share on other sites

Okay first of all

 

What is that for loop? Just use a while statement.

 

Anyway, what are you trying to ACTUALLY do? What do you need this array for?

 

And what do you mean by it not working? If it crashed, what was the crash report?

 

 

BEFORE ASKING FOR HELP READ THE EAQ!

 

I'll help if I can. Apologies if I do something obviously stupid. :D

 

If you don't know basic Java yet, go and follow these tutorials.

Link to comment
Share on other sites

Anyway, what are you trying to ACTUALLY do? What do you need this array for?

I'm trying to build blocks list in my custom GUI to select block which i need to use in next operation.

And what do you mean by it not working? If it crashed, what was the crash report?

It's no crashes and no errors.

sorry, i make tag mistake in my previous post. Answer is located in the and of previous post. But i repeat it:

blocks array is filling with the same blocks (not sub-blocks). E.G. wool block has 16 sub-blocks (aka sub-types) with different colors. But all 16 elements of my array is filling with only first type of wool (white wool). Same situation with wood, planks, saplings e.t.c.

Link to comment
Share on other sites

That's because the sub-blocks aren't actually blocks, they're ItemStacks with metadata values.

 

If you want an array of blocks that have sub blocks, that's fine. But if you want to actually store all the actual sub blocks themselves, you're going to need an ItemStack array/list.

BEFORE ASKING FOR HELP READ THE EAQ!

 

I'll help if I can. Apologies if I do something obviously stupid. :D

 

If you don't know basic Java yet, go and follow these tutorials.

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.

Announcements



×
×
  • Create New...

Important Information

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