Commit Graph
22 Commits
Author SHA1 Message Date
Quentin 37296c1498 lua: sub folders support, check for .lua file extension, refactor and simplify internals. (#1775) 2023-07-22 13:05:43 +02:00
Quentin 8253b58055 feat(lua): Add entities.get_all_vehicles_as_handles() Add entities.get_all_peds_as_handles() Add entities.get_all_objects_as_handles() (#1795) 2023-07-21 21:21:51 +02:00
Bugisoft 3e5cad97e9 Custom Sky Color and unify some stuff (#1779) 2023-07-20 22:46:32 +02:00
Quentin 497781b048 feat(lua): Add tab:is_selected function to check if the tab is the currently selected one in the GUI. (#1763) 2023-07-19 09:28:22 +02:00
Quentin 73d23dd34b fix(lua): move bindings to cpp files (#1757) 2023-07-18 13:07:33 +02:00
Quentin 20ccf1a89b fix(ci): tentative fix for compiler out of heap space (#1746) 2023-07-17 22:57:14 +02:00
Quentin 664b5c6c40 feat(lua): much more complete imgui bindings, allow lua imgui callbacks from outside yimmenu classic tabs through gui.add_imgui(func) but also inside yimmenu classic tabs through tab:add_imgui(func) (#1736) 2023-07-17 14:55:42 +02:00
Quentin 0417fbf0f9 fix(lua): better exception handling (#1734) 2023-07-16 23:32:34 +02:00
Quentin a40b4a0dd8 fix(lua): log not supported lua functions (#1722) 2023-07-15 22:07:10 +02:00
Quentin 0a5cca8c12 fix(lua) (#1697)
- sandbox stuff.
- Fix lua scripts that could run when their lua state was destroyed, causing chaos.
2023-07-13 09:36:13 +02:00
Quentin 21277e4039 Fix(lua / script manager): Potential fix for stack overflow when yielding from lua scripts. Fix io / os lua libs being accessible. (#1681)
* fix(script-mgr / lua): first kill all scripts, then unload lua modules: because the lua scripts depend on lua state (which is stored inside lua module instance), killing the lua module first would not allow proper cleaning because of the lua state getting destroyed while the lua script might still be running.

* fix(unloading): Why even reset the fiber pool here?

* fix(lua): don't allow for io / os lua lib to be accessed for security reasons.

* fix(lua): Potential fix for C stack overflow error by using lua coroutine yielding instead of calling fiber yield directly from lua functions.

* feat(unloading): allow to unload in the main title screen. Also revert https://github.com/YimMenu/YimMenu/commit/309c37460208d23402b17e8b252e379434e2fe8d due to fiber pool being potentially exhausted, we want commands to have their cleanup code ran in priority.
2023-07-11 09:24:44 +02:00
Quentin ac6d86b149 fix(gui): dont draw two gui separators at the top for lua only tab. (#1677) 2023-07-10 20:37:28 +02:00
Quentin b8a7c9be70 fix lua gui: imgui Separator between modules instead of same line which is non sense (#1672) 2023-07-10 19:01:01 +02:00
Quentin abb7e17d83 Lua documentation: commands (#1595)
* lua api: fix command call null context

* lua doc: generate commands doc
2023-07-05 00:31:06 +02:00
Quentin 76afd97185 Lua: can make new tabs from lua scripts, doc generation for available tabs to use (#1593)
* lua api: add globals.get_uint and globals.set_uint

* lua doc: remove duplicate function check as we can overload so it doesn't make sense

* lua doc gen: add support for parsing the tabs enum

* gui: custom lua tabs don't have a `func` rendering function but can still have elements to draw

* lua doc: update generated doc

* chore: code style

* chore: minor spelling mistake

* chore: code style

* gui_service: add runtime removal of tabs

* refactor: make it so that it's less likely defining tabs and their translation key in a wrong way.

* lua api: ability to add custom tabs to the gui from lua
2023-07-05 00:30:57 +02:00
Quentin ed18f7e70d Lua: refactor script api, more doc, add button for Open Lua Scripts Folder (#1588)
* lua manager: pass down the scripts folder to the instance instead of hard coding calls to the file manager everywhere
* lua: add open lua scripts folder button
* lua api: change script binding so that user cannot by mistake try to sleep or yield in a non script context
2023-07-03 13:01:12 +02:00
Quentin b44b2f04e6 Feat lua file watch (#1584)
* feat lua: file watcher for lua script file: reload scripts if they got changed since they were initially loaded
* feat lua auto reload: enable / disable the feature through the ui and settings
2023-07-02 22:32:46 +02:00
tupoy-ya e9ae5d5491 chore(natives.hpp)!: Updated natives to latest. (#1583)
fix(natives_gen.py): Don't save `DRAW_TEXTURED_POLY_WITH_THREE_COLOURS`.
refactor(natives_gen.py)!: Changed `NATIVE_DECL`to `static`.
2023-07-02 22:31:15 +02:00
Quentin 4c71be4142 Lua doc (#1552) 2023-07-02 00:59:02 +02:00
Quentin 2e70faa4ad Fix lua native bindings and lua script reload (#1575)
* fix: script manager and lua scripts: change the api so that the m_scripts array is only modified in a specific safe location: before it gets ticked.
* fix script manager: don't expose the script vector directly, for multithreading safety
* fix lua manager usage: don't iterate the module array without locking, nor un/load module from a script thread
* lua script: only do actual loading of lua modules in script mgr
* lua native bindin: fix pointer parameters, out C style parameters are returned as multiple return values lua-style
2023-07-01 22:40:17 +02:00
Quentin dc18216263 lua: change the way native functions are binded (#1543) 2023-06-27 20:13:05 +02:00
maybegreat48 03c1a96b67 Lua Scripting (#1334)
Closes #83
Fixes #1309
Fixes #1287
Fixes #1129 (actually fixed now)
2023-06-06 09:40:40 +02:00