Jump to content

[1.11.2] Remove / overwrite vanilla tree generation


Riyoze

Recommended Posts

Hi everyone! This is my first post here...

 

I'm trying to figure out how to overwrite or prevent vanilla tree generation so I can replace it with my own trees, which use vanilla wood/leaf blocks. I've already managed to figure out how to write my own tree generation and limit it to certain biomes:

 

tumblr_inline_onrn46Xq3p1r233f7_500.png

 

But as you can see in the screenshot, vanilla minecraft trees generate alongside mine. How can I prevent that and/or replace vanilla tree generation with my own? My assumption is that I need to iterate through the biome generation defaults and remove them or something...

 

I've done some research and I've found previous source code that used BiomeGenBase.getBiomeArray:

https://gitlab.prok.pw/Mirrors/SpongeCommon/commit/0ec7ffd0822d78ebbca0278939c6cda631faf62c?expand_all_diffs=1#3fef1ae77a8885b7b6135dc763b287f7902bddd0_64_65

But this no longer exists in 1.11.2.

 

I've also found GameRegistry.worldGenerators, which is where it would seem one would add moded biomes to the biome generation list, but it's private...

 

Can anyone help me out here?

 

Thanks! 

 

Edited by Riyoze
Link to comment
Share on other sites

Whew! I spent all day on this and finally figured it out! Thank you for your help! :D

 

//In a new class called ModEventHandler:

@SubscribeEvent(receiveCanceled=true)
    public void onEvent(Decorate event){
        if(event.getType() == Decorate.EventType.TREE){
            event.setResult(Event.Result.DENY);
        }
    }

 

In my main class in the init method:

MinecraftForge.TERRAIN_GEN_BUS.register(new ModEventHandler());

 

It seems so easy now looking at the end result but I banged my head over this for hours. xD

Link to comment
Share on other sites

57 minutes ago, Riyoze said:

(receiveCanceled=true)

 
 

You are a rare occurrence, as lots of people just try once, can't figure it out, and come back here in frustration. Thanks. As for that phrase, you don't need it. The Decorate event is not a cancelable event, so checking for receivedCanceled doesn't do anything.

Edited by TheMasterGabriel
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.