* Inert entities like arrows no longer block interactions like picking
up items! Logic looking for the closest entity will skip them.
* When pickaxe is not equipped and wielded we now show "Needs Pickaxe"
as the hint text for mineable blocks.
* Mineable blocks that aren't pointed at now show the mining text hint
instead of the text hint used for regular collectible blocks.
* Fixed recent bug where all interactables were showing the open text hint.
* Split `BlockInteraction` out of the `Interaction` enum in voxygen
since we were using this enum for two different things.
other changes that already occured that tick.
Also get terrain/block change resources from the ecs once to avoid the
overhead of fetching them from the ecs (and aquiring/releasing runtime
borrow).
interacting with sprites and rustfmt decides to format a bunch of
stuff...
* Add PartialEq impls between ItemDefinitionId<'_> and
ItemDefinitionIdOwned.
* Remove unused Serialize and Deserialize derives from
ItemDefinitionId<'_>
* Add Inventory::get_slot_of_item_by_def_id which acts like
Inventory::get_slot_of_item but accepts a ItemDefinitionIdOwned
reference instead of an Item reference.
* Add some TODOs for some potential optimizations
* Rustfmt decided now was the time to format some random stuff I didn't
touch. Maybe I fixed something it was getting stuck on???? But some
files I didn't make any changes (although might have inadvertantly saved
them when viewing in editor (with fmt on save)).
* InvSlotId passed to SpriteInteract character state instead of
refinding the item in the inventory (if it moved we simply give up on
the state as if the requirements weren't met). (overall in this change
3 searches for the item in the inventory are reduced to a single one)
Allow the camera's zoom to be locked by a keybind
or a Gameplay setting. The zoom lock
behavior can be changed between Toggle
and Auto, where Auto only locks the camera
zoom while specific movement/combat inputs
are being pressed. (closes!1528)
A temporary fading notification is shown at the
top of the screen, informing the player of
the setting change (when the keybind is
used) or that the zoom is locked (when
the player might have forgotten the zoom
is locked, and is trying to zoom).
i18n strings are added for English and German,
but no other languages.
To implement the simplistic fading text, the
behavior was extracted into an impl
called `ChangeNotification`, where
reasons are quantified by `NotificationReason`.