Insert RecipeBook into ECS
Add recipe command
Fully functional recipes
Recipe items
Update item_image_manifest.ron
scroll item image/drop model
Colored recipe vox models
Reset recipes command
Move RecipeBook into Inventory
Persistence for recipe book
Recipe book migration
Recipe items can now be dynamically generated from the recipe book
Removed recipe items and recipe item generation bin
Fix rebase
Made recipes available in world
Fix rebase
Default recipes to manifest
Recipes now have prices in economy.
Changed recipes to go into kind before reaching item visual manifests.
Default recipes automatically added to recipe book on character load.
Loot table rebalancing
Addressed balance feedback
MR review feedback
Recipes are now unlocked in groups
Modular weapon component recipes now require learning recipes
Metal weapon recipes now also teach how to craft their requisite ingots
Added test for all recipes being valid
- GlideBoost ability
- Vroom Glider item
- Made possible to attach ability_spec to gliders
- Activate glider ability while Glide/GlideWield
TODO:
- make it visible in voxygen
- Add ItemL10n struct that is similar to ItemImgs except it holds i18n
description and not items. ItemDesc::l10n uses this struct to provide
common_i18n::Content for both names and descriptions.
So far it only used in voxygen, but it can be used by rtsim in
dialogues.
- Introduced new deprecation, ItemKind::Ingredient, because it uses
item.name().
It's not deleted, because it's used in inventory sorting, and our
inventory sorting is, for some reason, server-side.
- Crafting UI also still uses deprecated item.name(), because again,
sorting. It's probably will be easier to handle, because it's UI
sorting and we can use localized names here, but still, it's a thing
to discuss.
- Moved Item::describe() to voxygen/hud/util.
The most important thing to note is we don't want to completely delete
deprecated .name() and .description() along with corresponding fields
in ItemDef because ItemDef is now "public" API, exposed in plugins and I
don't want to break plugins before we actually implement i18n for them.
Otherwise, it would be basically impossible to use items in plugins.
What's left is actually fully implementing ItemDesc::l10n, create
item_l10n.ron and add fallback on current .name() and .description()
implementation.