-
Notifications
You must be signed in to change notification settings - Fork 32
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
Improve illumination.lua
#410
base: main
Are you sure you want to change the base?
Conversation
@@ -2273,6 +2273,7 @@ Current mouse cursor position in screen coordinates. | |||
#### [Illumination](#Illumination) create_illumination([Color](#Color) color, float size, int uid) | |||
|
|||
Creates a new [Illumination](#Illumination). Don't forget to continuously call [refresh_illumination](#refresh_illumination), otherwise your light emitter fades out! Check out the [illumination.lua](https://github.com/spelunky-fyi/overlunky/blob/main/examples/illumination.lua) script for an example. | |||
Warning: this is only valid for current level! |
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.
Should i also add stuff like "save the Illumination
in state.user_data
for it to work online" ?
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.
On one hand seams logical, on the other, this should be rule for everything, not just the illumination
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.
does it even work online correctly yet? isn't it a pointer?
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.
hmm... actually you're right, i was only thinking about rollback from it being created to when it wasn't. But yeah, it won't work when the heap is copied to different one.
Unless we can adjust the pointer in user_data just like the game adjust it's pointers
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.
or, i can make some weird solution for the meta table so it can use OnHeapPointer
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.
both solutions would work I guess, just that I have no idea how to know if a lua object is a pointer for the first idea
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.
both solutions would work I guess, just that I have no idea how to know if a lua object is a pointer for the first idea
[](sol::object obj)
{
if (obj.valid() && obj.get_type() == sol::type::userdata)
{
DEBUG("{:x}", *(size_t*)obj.pointer());
}
};
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.
Didn't test much, but i think all userdata is stored as pointers to an actual data, even stuff created on lua stack like when using Color:new()
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.
if it works, and is documented that it does that, it seems a fine possible solution
No description provided.