PrismarineJS / PrismarineJS/minecraft-data
Add tag data
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 938
- Forks
- 294
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 25
Description
Block and item tags are used throughout Minecraft, such as in recipes and entity selectors. For example, the minecraft:wooden_axe recipe requires two minecraft:stick and three #minecraft:planks. In general these are useful groupings of similar values and frequently are added to as more blocks are introduced to the game.
Additionally, the current recipe data appears to not properly account for item variants. The wooden_axe appears to have eight variations, accounting for each wood type in the planks tag, however it does not account for the mixing of wood types. It is indeed valid to mix oak_planks and jungle_planks when crafting a wooden_axe. While this might be able to be deduced most of the time there is no distinction in the data presentation for truly alternate recipes and tag based ingredient variations. Even if recipe data is not to be updated I think tag data would be useful.
An example of the buttons.json items tag appears below,
{
"replace": false,
"values": [
"#minecraft:wooden_buttons",
"minecraft:stone_button",
"minecraft:polished_blackstone_button"
]
}
Note the nested #minecraft:wooden_buttons tag. Given that tags can either reference items (for item tags) or additional tags, I propose either using the string representation as denoted in the example above or creating an id for each tag so that items and tags can be referenced numerically.
Possible implementation if numeric ids are preferred:
{
"id": 10,
"replace": false,
"values": [
{"type": "tag", "id": 62},
{"type": "item", "id": 609},
{"type": "item", "id": 610}
]
}
Lastly, there are many tag types (e.g. block, item, fluids, entity_types, etc) and more tags within those, so I am not sure how these would best be represented in aggregate in this repository but it is something to consider.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the repository's existing recipe data and its representation of item variants. Determine the scope and representation for block, item, fluid, and entity-type tags, including nested tag references; done should provide consistent tag data and clarify how tag-based recipe variations are distinguished.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100