Jump to content

1.12 - Trying to use WorldEdit schematics with Custom Blocks


skeeter144

Recommended Posts

So I've been developing a very large mod over the last couple months, and I'm trying to use WorldEdit schematics with WorldPainter so I can create some stuff for a server. (Specifically, large trees for a certain area, using my custom blocks)

 

The problem is that if I'm using WorldEdit's schematics by themselves, like for transferring stuff between worlds, it works just fine, but if I load a schematic into WorldPainter and then put it in a new world, half of the blocks don't get generated.

 

And the weird thing is, the blocks that don't get generated are the blocks that are registered second in my proxy.  So if I register the logs first and the leaves second, only the logs will get put into the world, and vice versa.

 

I'm inclined to think that there's something wrong with the registration, because I basically made the leaves and logs identical blocks with different textures, and the only thing that makes a difference is the registry order.

 

 

 

public static void registerBlocks() {
	//if I register the leaves first, they'll get generated by WorldPainter, but the logs won't and vice versa
	register(spiderTreeLeaves);
	register(spiderTreeLog);
	//....
}

 

where register blocks is called from:

public class CommonProxy 
{
	public void preInit(FMLPreInitializationEvent event)
	{
		//...
		TOCItems.registerItems();
		TOCBlocks.registerBlocks();
	//...
	}
	//....
}

 

 

Does anyone have ANY idea that they could help me with? I've been scratching my head on this one for a while :/

Link to comment
Share on other sites

2 hours ago, MDW01 said:

could you give an example of what the item id's show up in game as and show the code for registering that specific item.

 

Okay, so completely refactored, and no improvement. :o The first SS is a picture of what WorldPainter generates from a really simply .schematic file.

The schematic is just a column of alternating custom leaf and log blocks.  Only the block that is registered first shows up right for some reason.

 

Item IDs appear to be working correctly.

 

And my registration code...

@SubscribeEvent
	public void registerBlocks(RegistryEvent.Register<Block> event) {
		final IForgeRegistry<Block> registry = event.getRegistry();
		final Block[] blocks = {
      //...
				spiderTreeLeaves,
				spiderTreeLog
	//...	
      };
		
		for(Block b : blocks) {
			registry.register(b);
		}
	}

 

2017-10-05_11.29.56.png

2017-10-05_11.30.14.png

2017-10-05_11.30.17.png

Link to comment
Share on other sites

9 minutes ago, MDW01 said:

I don't see anything wrong this might be an issue with world painter. Is there a way to see if world painter actually tells the blocks to get generated or not?

That, I'm not sure of, I don't know enough about the implementation of WorldPainter and/or MCEdit's schematic files, butttt.....

 

Fixed it!!! It's a SUPER ghetto fix that I have no idea why it works...Check this out...this may be very very useful for other modders.

So apparently WorldPainter doesn't want to generate the LAST block that's registered in your Mod, so if you register a dummy block as the final one, it will generate just fine 9_9¬¬O.o>:(

 

So here's what I did:

	@SubscribeEvent
	public void registerItemBlocks(RegistryEvent.Register<Item> event) {
		final IForgeRegistry<Item> registry = event.getRegistry();
		final ItemBlock[] items = {
      			//...
				new ItemBlock(spiderTreeLeaves),
				new ItemBlock(spiderTreeLog),
				new ItemBlock(dummy_block)
		};
		
		for(ItemBlock i : items) {
			Block b = i.getBlock();
			registry.register(i.setRegistryName(b.getRegistryName()));
		}
	}
	

 

Annddd BAM. It works, it just doesn't copy over the dummy block.

 

So strange.  Thanks for your input anyway!

 

2017-10-05_11.50.34.png

2017-10-05_11.51.38.png

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.