|
3 | 3 | 
|
4 | 4 |
|
5 | 5 | ## Summary
|
6 |
| -- Adds macro for generating namespace builder instantiations including docstrings and argument names like so: |
| 6 | +- Adds ability to construct arbitrary types and enums via `construct` global functions: |
| 7 | +```lua |
| 8 | +local myStruct = construct(StructType, { |
| 9 | + foo = bar |
| 10 | + zoo = construct(NestedType { |
| 11 | + foo = bar |
| 12 | + }) |
| 13 | +}) |
| 14 | + |
| 15 | +local myEnum = construct(EnumType, { |
| 16 | + variant = "StructVariant" |
| 17 | + foo = Bar |
| 18 | +}) |
| 19 | + |
| 20 | +local myTupleStructEnum = construct(EnumType, { |
| 21 | + variant = "TupleStructVariant" |
| 22 | + _1 = bar |
| 23 | +}) |
| 24 | +``` |
| 25 | + |
| 26 | +- BMS will now automatically register components with `ReflectComponent` type data, so that you can query them as components *before* inserting them into entities. i.e.: |
7 | 27 | ```rust
|
8 |
| -#[script_bindings(name = "test_functions")] |
9 |
| -impl TestStruct { |
10 |
| - /// My docs !! |
11 |
| - fn test_fn(_self: Ref<TestStruct>, mut _arg1: usize) {} |
12 |
| -} |
13 |
| - |
14 |
| -fn main() { |
15 |
| - let mut world = ... |
16 |
| - register_test_functions(&mut world); |
17 |
| -} |
| 28 | +#[derive(Reflect, ..)] |
| 29 | +#[reflect(Component)] |
| 30 | +struct MyComp; |
18 | 31 | ```
|
19 |
| -- Fixes compilation issues with `tracy` enabled |
20 |
| -- Initial work on `Language Agnostic Declaration` (LAD) file format for doc-gen |
21 |
| -- Adds ability to create static scripts, which do not need to be attached to an entity to run: |
| 32 | + |
| 33 | +- `ReflectAllocator` diagnostics are now available conveniently packaged as a plugin (measuring current allocation count + deallocations): |
22 | 34 | ```rust
|
23 |
| -commands.queue(AddStaticScript::new("my_static_script.lua")); |
| 35 | +app.add_plugins(AllocatorDiagnosticPlugin) |
24 | 36 | ```
|
25 |
| -- Fixes asset loader issues (asset loaders now specify extensions) when working with `bevy_asset_loader` and other asset loading crates |
26 |
| -- And more |
| 37 | + |
| 38 | +- Initial documentation generation from LAD files is now being published with the book over at https://makspll.github.io/bevy_mod_scripting/ladfiles/bindings.lad.html |
| 39 | + - This is still a prototype, but will contain useful information on bindings BMS exports by default. |
| 40 | + - LAD files are in a good shape, but some details need to be polished before they become stable |
| 41 | + - work on other backends (other than mdbook) should be possible now, albeit changes are expected |
| 42 | + |
| 43 | +## Fixes |
| 44 | +- When an asset handle is requested and immediately dropped, the previously confusing error: `A script was added but it's asset was not found, failed to compute metadata. This script will not be loaded.` was downgraded to a warning with a helpful hint. |
| 45 | +- Cases where resource/component/allocation locks would not be correctly released in the case of script function errors or short-circuting logic were fixed |
| 46 | +- The `bevy/reflect_functions` and `bevy/file_watcher` feature flags are no longer pulled into the dependency tree by BMS, reducing bloat. |
27 | 47 |
|
28 | 48 | ## Changelog
|
29 | 49 | See a detailed changelog [here](https://github.com/makspll/bevy_mod_scripting/blob/main/CHANGELOG.md)
|
0 commit comments