-
Notifications
You must be signed in to change notification settings - Fork 276
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat!: lua bindings mostly for creature #4070
Conversation
The Autofix app has found code style violation and automatically formatted this Pull Request. I locally edit my commits (e.g: git, github desktop)Please choose following options: I'd like to accept the automated commit
I do not want the automated commit
If you don't do this, your following commits will be based on the old commit, and cause MERGE CONFLICT. This PR is complete and I don't want to edit it anymoreIt's safe to ignore this message. I edit this PR through web UIYou can ignore this message and continue working. I have no idea what this message is talking aboutYou can ignore this message and continue working. If you find any problem, please ask for help and ping @scarf005. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Haven't playtested yet, but looks good and tests pass.
let's see how it goes. |
Purpose of change
Building on top of #2216 to extend Lua bindings, a whole bunch of functions for creature, character, avatar and NPC are now exposed to Lua, with other bindings in order for the aforementioned bindings to work, and a few other miscellaneous bindings.
Describe the solution
In order to bind most of the creature class family's methods and members to Lua, the types used/returned were bound to Lua, which required refactoring/changes/additions, most of which were covered by the project's Lua documentation. Still, I had to do more than what the documentation had, and so I added those things to the documentation.
To make binding less tiresome, preprocessor macros were created to help. Though binding large classes like those of the creature family still looked threatening, and for that I used my editor's (Neovim) regex functionality to produce most of the bindings, which I outlined in the changed Lua documentation.
A
enum_conversions.cpp
file was created forenum_to_string<...>
s needed for Lua bindings.Testing
Additional context