Gosh, I opened the file and what do I find?
https://github.com/MinecraftForge/MinecraftForge/blob/1.15.x/src/main/java/net/minecraftforge/registries/DeferredRegister.java#L93
A deprecated annotation and a fucking comment about what to do instead.
Why would you have to? It literally makes no sense that the game would have to ask you to serialize something to a given format and not have a working implementation of that format to serialize to.
I'm not even sure the game would know how to serialize and deserialize your custom NBT classes properly.
Yes. Transparent things and opaque things need to be drawn in different passes as they have different sorting orders.
(The HUD is also a separate pass)
"Impl" is an abbreviation of "implementation." Use your IDE to find implementations of IRenderTypeBuffer.
Because you need several transformation matrices applied one after the other to handle certain types of rendering. Think about an item that lays flat on the top surface of a block (campfires do this). The item renderer assumes that the item sticks up vertically but the campfire wants to render it horizontally. We already have a transformation matrix to counteract the player's position away from 0,0,0 but now we need another one to rotate the item to lay flat...
I did find the git branch, my eyes probably skipped over it. But I did check.
Either way, the earliest change on the branch/build isn't even 24 hours old yet. It was committed at near-midnight last night.
You could read the text of the sign, but you can't change it, because of this pesky thing called "server authoritative model."
That is, the server is the absolute authority on the state of the game, and that state includes the text on signs. Without code on the server to change that text, you can't.
I don't know what its stability state is. Just because there's a build doesn't mean its ready.
The branch has only existed for a day. The oldest change in the change log isn't even 24 hours old yet.
This is client side only.
Either:
Your mod needs to be client side only (in which case, it can't make changes).
You need to access the TE via a server world.
I'm not sure how you managed this, honestly.
You should probably fix these.
Not the cause of your crash, that appears to have been a null pointer exception in the networking thread, but I can't discern why.
You also haven't posted your code either. Soo...
18 shelf slots as booleans results in 262,144 total states for your block.
While the game does not enforce a maximum, this is still a lot.
I would suggest using an IDynamicBakedModel instead of the blockstate system.