Initial draft of update for Flecs 4.1.0.#99
Draft
spacechase0 wants to merge 1 commit intoBeanCheeseBurrito:mainfrom
Draft
Initial draft of update for Flecs 4.1.0.#99spacechase0 wants to merge 1 commit intoBeanCheeseBurrito:mainfrom
spacechase0 wants to merge 1 commit intoBeanCheeseBurrito:mainfrom
Conversation
New features are untested (though some, like the script builder functions, might see testing by me soon). What I didn't do: * Docs for things I added * New tests/examples (such as with the new function stuff for the script builder) * Unsure if relevant, breaking change to match a C++-specific change (entity::get returns ref, new try_get): SanderMertens/flecs#466 (comment) * Unsure if relevant, breaking change to match a C++-specific change (entity::get_constant added to make up for get having changed(?)): SanderMertens/flecs#466 (comment) * Unsure if relevant, new API function to match a C++-specific one (entity::assign) * A bunch of safety checks in the script function/method/constant stuff (and a not-janky implementation of them in general) * Anything that is new in the full changelog, but not in the release announcement's highlights Breaking change made by me specifically to the C# binding: * When registering a prefab associated with a C# type (such as `world.Prefab<SomeStruct>()`), the prefab can no longer have any fields. * This was causing problems in native flecs: `fatal: sparse_storage.c: 124: assert: tgt != 0 INTERNAL_ERROR` * Something to do with relationships being sparse/nonfragmenting now I think? (There's a good chance I'm wrong on that though) * This behavior could probably be restored, maybe by making the C# type correspond to a component, but the Prefab<>(...) call makes a prefab with a separate id that always includes the component (using the World.SetWith functionality, possibly)? But I didn't feel like doing the refactoring for that. I was having some issues with committing line endings for the generated files. Hopefully I only included the ones that actually got functional changes? I'd like to suggest having the generated files not included in the repository and just making it generate as part of the build process (maybe with source generators if the current implementation is hard to fit in correctly).
Open
|
@BeanCheeseBurrito is the merge currently being worked on? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The diffs are messed up because I messed up line endings trying to get the generated files to not go crazy with git replacing them just for line endings.
Looks like I just made things worse (every included file has the entire thing as the diff, ugh), so this will stay as a draft PR unless I can figure out how to fix that.
(I'd like to suggest having the generated files not included in the repository and just making it generate as part of the build process (maybe with source generators if the current implementation is hard to fit in correctly).
New features are untested (though some, like the script builder functions functionality, might see testing by me soon).
What I didn't do:
Breaking change made by me, specifically to the C# binding:
world.Prefab<SomeStruct>()), the prefab can no longer have any fields.fatal: sparse_storage.c: 124: assert: tgt != 0 INTERNAL_ERROR