Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

How do I spawn my feature in the world? [1.16.5]


Recommended Posts

Hello. I'm making my first mod. I'm trying to make some block spawn in caves. I wrote a class, that extends Feature class, but how do I made spawn it in the world? I don't know anything about world generation, and I don't know where should I take information from. Thank you very much

Link to comment
Share on other sites

It depends what version of forge you are using. The old way (1.18 and before) is to use BiomeLoadingEvent. Then use 

event.getGeneration().addFeature()

to add it to the appropriate GenerationStep.

For an example, here is Botania adding mystical flowers and mushrooms to the vegetation step

https://github.com/VazkiiMods/Botania/blob/0cfa08ebb4828aa48b3231d6db6dd3b70dc7942b/Forge/src/main/java/vazkii/botania/forge/ForgeCommonInitializer.java#L250 

Of course you need to register your features to make them useful, see

https://github.com/VazkiiMods/Botania/blob/0cfa08ebb4828aa48b3231d6db6dd3b70dc7942b/Xplat/src/main/java/vazkii/botania/common/world/ModFeatures.java

 

1.19 (still in beta) has overhauled this to use BiomeModifiers:https://forge.gemwire.uk/wiki/Biome_Modifier

Link to comment
Share on other sites

2 minutes ago, warjort said:

This is not ideal. The recommended way to register things is using DeferredRegister, which also provides you with the Holder.

Link to comment
Share on other sites

Quote

This is not ideal. The recommended way to register things is using DeferredRegister, which also provides you with the Holder.

Pretty sure it does it that way because it shares the same code with the fabric implementation which doesn't have deferred registration.

Link to comment
Share on other sites

Do you know a good example?

I just tried to find a good example in well known mods and they seem to use a variant of the RegistryEvent/manual register like botania, except mekanism which has its own specialised FeatureDeferredRegistry implementation.

Edited by warjort
Link to comment
Share on other sites

first of all guys, did you read the version of this thread, it's 1.16.5 there are not Holders, etc?

 

2 hours ago, KastyaLimoness said:

I'm trying to make some block spawn in caves.

like Ores? If so, you don't need a custom Feature you can use Feature.ORE instead
create a static ConfiguredFeature field, then create the ConfiguredFeature in FMLCommonSetupEvent and store it in your field
you then be able to use BiomeLoadingEvent to add the Feature to the World

you can create the ConfiguredFeature via Feature#configured
you can use the vanilla Features class as an example

 

1 hour ago, warjort said:

Do you know a good example?

why do you need a example?
if you provide a example it is helpful but you should know that a few people will copy the code without understanding what the code is doing
and then they come back and say the code is not working (they turn off their brain)
if you want to show examples i would recommend you to use the examples which are provied by Forge in the Forge Community Wiki,
or you create a standalone example (for example with https://gist.github.com/), which you then can link

if you want an example for Features & Placements you can take at: Features & Placements

Edit: in the most cases there are vanilla examples and for the stuff which is added by Forge you can take a look at the Test Mods

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

 Share



×
×
  • Create New...

Important Information

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