Read the documentation on IExtensibleEnum.
I’ll take a look into world gen myself and report back (never done anything except super basic ore gen back in 1.12.2)
Oh, I get it. You may be able to “fix” this by disabling AO in your chimney block model. It’s going to look bad on anything that’s not a furnace then though.
All items have 3d models. Some of them just happen to have a single flat element with a full texture UV. You can even find the model at item/generated.json (I think). You can either split your texture into multiple textures or have a non-default model. I would recommend the former as it’s more future-proof and will still be compatible with whatever extra stuff minecraft does to get the 1-pixel-wide sides to the default models.
DeferredRegister uses the event hooks. They just have much simpler and cleaner syntax. They also take care of ensuring your object references stay up to date and also support registry overrides.
I’ve got a tutorial series if you need help with the basics of modding.
Something like splitting something that’s been rendered up into multiple particles that dissipate is likely going to require some very advanced OpenGL code, it’s not something you’re going to be able to do easily as a beginner. The closest thing I can think of that would be doable for a beginner would be to reduce the opacity of the renderer objects while at the same time increasing their size to create a similar effect. Prior to 1.15 you would do this by modifying GL state in the RenderLivingEvent.Pre but I’m not sure if this is still possible due to the massive rendering changes in 1.15.
Not sure what’s hard to read about that.
You need to pass in a function that takes in a TileEntityRendererDispatcher instance and returns a TileEntityRenderer instance. A constructor reference to your TER is most commonly used.
https://github.com/Cadiboo/Example-Mod/blob/4ef1557fdb1ed5ff9ca3af5b9cd06711112363ab/src/main/java/io/github/cadiboo/examplemod/client/ClientModEventSubscriber.java#L46
I’m not sure. You can figure it out by looking at usages of the tulip field with your IDE. Looping the biomes would be more expensive but also more compatible.
Vanilla sets the BlockState when you right click from an item block or in the updatePostPlacement method in blocks. I would look for events containing “Item”, “Block”, “Click”, “Interact”, “Place”. Then find out which one is appropriate to use.