5.2 updates the map to 1.21, brings new items, and a few improvements
[a-zA-Z0-9 .]New category "Roots" with:
New "Armadillo" Category with:
New category "Pale Garden"
These items are only available when playing in 1.21.4
The variety in gold and diamond tools was reduced to make blind runs need to craft fewer of them.
Item registration has been overhauled and existing forks that change the item pool will need to update to the new system.
textComponent has been removedclearCommand has been removeddetectCommand has been removedicon is no longer a text component and instead the 4 digit hex code of the
unicode character representing the item on the HUD bingo cardicon_font specifies a own custom font to use for this item. Can be used to
avoid conflicts in the vanilla Fetchr font files when maintaining forks
actionbar A list of 5 font definitions to use for the card displayed in
the actionbar. Each definition is for a different row on the Bingo card
and needs to have the corresponding ascend value set. Reference the vanilla
Fetchr assets.translation New property for the translation key of the itemitem_tests Optional. Can be used for custom item tests.
type see blowItem tests can be used to further specify an item or override default behavior.
By default, any item in the item field will match, including any defined
components.
If item_tests is specified the components of the item definition will be
ignored for testing purposes and only be used to construct a display item
for the item frame card or the category chests.
fetchr:componentid The data component idcomponent The component valuefetchr:negated_componentid The data component idfetchr:predicateid The item sub predicate typepredicate The predicate dataAt runtime, this will be parsed together with the item id into a command item argument.
For example this definition would leather boots with a blue shaper trim which is not shown in the tooltip and a custom lore text whenever it is displayed, and any leather boots that have any kind of blue trim would match:
{
item: {
id: "minecraft:leather_boots",
components: {
"minecraft:trim": {
pattern: "minecraft:shaper",
material: "minecraft:lapis",
show_in_tooltip: false
},
"minecraft:lore": [
'{"translate": "item.minecraft.smithing_template.upgrade", "color": "gray", "italic": false}',
'[" ", {"translate": "fetchr.item.description.any_trim", "color": "#406d95", "italic": false}]',
'[" ", {"translate": "trim_material.minecraft.lapis", "color": "#406d95", "italic": false}]'
]
}
},
item_tests: [
{
type: "fetchr:predicate",
id: "minecraft:trim",
predicate: {material: "minecraft:lapis" }
}
]
}
When testing the item id together with the specified item tests would check for
minecraft:leather_boots["minecraft:trim"~{material:"minecraft:lapis"}]
Properties in the item storage and the card storage have been renamed to follow
snake_case convention.
The machinery room is obsolete now and has been removed. Item detection has been fully implemented using macros and no longer needs any command blocks.
This should improve the performance quite significantly, as running command blocks every tick was quite expensive.
Item detection now only runs for a player who had a change to their inventory and does not have any active checks that run every tick anymore.
Command blocks are also more expensive because they parse their command every time they are executed anew while functions are pre-parsed. Macro lines still may need to be parsed more often, but because of macro caching, they will only need to be re-parsed when a new card with different items is generated. The cache only caches up to 8 unique combinations of arguments per function file which means some functions have been duplicated to take advantage of the cache for 25 items. There will still be a small performance overhead for cache lookup.
Card generation also could be simplified using macros. Furthermore, there is no
custom random number generator in place anymore, and instead the built-in
random command is used.
fetchr:lime_dye (#236)
A survival Minecraft item Bingo game - Try to get items quickly starting in a fresh world