real-itu / Evocraft-py

A Python interface for Minecraft built on gRPC
123 stars 16 forks source link

Block IDs and metadata #1

Closed kvfrans closed 3 years ago

kvfrans commented 3 years ago

Hi, environment looks great, I can imagine some cool creations evolved with this. I had a few questions regarding the blocks:

What ID system are you using for blocks? I looked at the ID list in minecraft_pb2.py and it didn't seem to match any other block id list online. Also, I am wondering if there is a way to support block metadata: e.g. in minecraft all Wool blocks are the same block id, but they have a metadata value specifying the color.

Related note, it seems that the minecraft-rpc repo linked in the README is private. If there are plans to release the code I am happy to look through and try to implement the metadata stuff.

djole commented 3 years ago

Hi! Thanks for checking out the environment. It was my mistake forgetting to open up the minecraft-rpc repository. The repo should be public now.

minecraft-rpc mod is made using the Sponge framework, so the block list is based on Sponge's org.spongepowered.api.block.BlockTypes.java class (you can see it when you download the minecraft-rpc repo or directly in Sponge). There is a plan from the Sponge community to bump the version of the framework to support Minecraft 1.15 soon. I expect that when the version is upgraded that more blocks will be included in the list.

We are currently working on expansion of the framework to support block metadata and few other features. Thanks for your offer, I'll keep it mind going further.

Feel free to ask more questions. Cheers, Djordje

MichaelTMatthews commented 2 years ago

Hey,

Wondering if there is any plan to support block metadata, as from what I can tell this hasn't been implemented?

Cheers, Mikey

djole commented 2 years ago

Hey, the first on the menu are entity blocks and their metadata. This should be done in the following days. Which block metadata were you thinking specifically?

MichaelTMatthews commented 2 years ago

Hey,

I was specifically hoping for different colours of wool/glass and for different leaf/log types (oak, birch, spruce etc.)

Cheers, Mikey

smearle commented 2 years ago

Just checking back in on this as I'm also interested in spawning a larger set of block types. It looks like Sponge v8 now supports Minecraft versions 1.15 and beyond. Has anyone attempted to migrate the plugin to use a newer version of Sponge? Wondering if it is worth giving this a shot.

EDIT: just realized you say it is "not at all trivial" to update sponge in a comment on another issue. Will heed this warning, though I'm curious if you have any more details about what the challenges are.

djole commented 2 years ago

Hi, As far as I understood from the docs, the changes were substantial and some of the API interfaces have changed. (https://docs.spongepowered.org/stable/en/plugin/migrating-from-7-to-8.html) Unfortunately, I haven't had time to dig deep into the changes needed to be implemented. In case someone decides to make the update, I'll be more than happy to merge the change into the repo.