- `SceneGraphNode` was implemented for types `struct Wrapper(Box<dyn NodeTrait>)`
- calling such types node itself is wrong, because the actual node is stored inside the box
- proxying to the inner value overly complicates the implementation and adds a lot overhead
- this is quite dangerous change since it may have subtle side effects, needs to be thoroughly tested
- previous approach with `ComponentProvider` trait was quite misleading, it didn't return a "component" - it simply returned marked fieds
- the new approach is more explicit - method names tells exactly what they do
* replaced the BorrowAs trait with ObjectOrVariant trait; added explicit trait bounds in pool and graph's typed_ref method.
* renamed pool's typed_ref to try_get
* renamed try_get to try_get_node in BaseSceneGraph
* deleted try_get_mut from impl Graph, and replaced all occurrences with try_get_node_mut
* renamed typed_ref in SceneGraph to try_get
* added graph::prelude which contains AbstractSceneGraph, BaseSceneGraph and SceneGraph traits; added use graph::prelude::* in the script template to expose try_get functionalities.
* resolved merge issues
* formatted code
* added use fyrox::graph::prelude::* to template game/src/lib.rs to expose UserInterface's try_get functionality
* added "#[allow(unused_imports)]" on game template and script template
* replaced the BorrowAs trait with ObjectOrVariant trait; added explicit trait bounds in pool and graph's typed_ref method.
* fixed tests
* fixed restore_integrity test
- it was failing spontaneously due do conflicting resource registries from two tests
* fixed clippy warnings
* install rustfmt + clippy on a CI machine before running the tests
* fixed confusing documentation about batching
* updated changelog
* changelog fixes
* ability to set runs via respective message
* replaced the BorrowAs trait with ObjectOrVariant trait; added explicit trait bounds in pool and graph's typed_ref method.
* removed unused imports
* satisfied cargo doc
---------
Co-authored-by: Dmitry <[email protected]>