summaryrefslogtreecommitdiffstats
path: root/src/Bindings/LuaState.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-06-25Compile the entire Lua stack as C++Tiger Wang1-4/+1
* Fixes #5216
2021-06-23Add optional prefix parameter to LOG functions (#5229)x12xx12x1-0/+1
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2021-05-04Rename files to match codeTiger Wang1-1/+1
2021-05-03Add player statistics to API (#5193)nshah251-0/+2
* Fixed issue #5166 Co-authored-by: 12xx12 <44411062+12xx12@users.noreply.github.com> Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
2021-03-20Change TimeOfDay to WorldDate (#5160)Tiger Wang1-3/+0
* Change TimeOfDay to WorldDate * Do not wrap at 20 minutes, continue incrementing * Fixes #4737 * Fixes #5159
2021-01-26Fix debug macro situation (#5114)Tiger Wang1-1/+1
Use the standard NDEBUG.
2021-01-11zlib -> libdeflate (#5085)Tiger Wang1-0/+2
+ Use libdeflate + Use std::byte * Fix passing temporary to string_view + Emulate make_unique_for_overwrite
2020-12-18Warnings improvementsTiger Wang1-3/+2
* Turn off global-constructors warning. These are needed to implement cRoot signal handler functionality * Add Clang flags based on version lookup instead of a compile test. The CMake config process is single threaded and slow enough already * Reduced GetStackValue verbosity + Clarify EnchantmentLevel, StayCount, AlwaysTicked, ViewDistance signedness + Give SettingsRepositoryInterface a move constructor to simplify main.cpp code - Remove do {} while (false) construction in redstone handler
2020-09-30C++17 stuffTiger Wang1-1/+1
2020-05-15Enable some more clang-tidy linter checks (#4738)peterbell101-1/+1
* Avoid inefficient AString -> c_str() -> AString round trip * Avoid redundant string init expressions * Avoid unnecessary return, continue, etc. * Add .clang-format to help with clang-tidy fix-its * Avoid unnecessary passing by value * Avoid unnecessary local copying * Avoid copying in range-for loops * Avoid over-complicated boolean expressions * Some violations missed by my local clang-tidy * Allow unnecessary continue statements * Add brackets * Another expression missed locally * Move BindingsProcessor call into clang-tidy.sh and add space * Fix pushd not found error * Different grouping of CheckBlockInteractionRate
2020-05-10Cleanup unneeded globals (#4736)peterbell101-3/+3
2020-05-05Update fmt to 6.2.0 (#4718)peterbell101-1/+1
* Update fmt to 6.2.0
2020-04-16Using Super.Mattes D1-3/+4
2020-04-15Fixed Lua Vector unification. (#4652)Mattes D1-0/+4
2020-04-14Bindings: Allow coercion between Vector3 subtypes. (#4646)Mattes D1-3/+17
In manually bound functions, allows one to use any Vector3<T> value, as well as a {x, y, z} table, in Lua as any Vector3<T> parameter. Has example in Debuggers' /vector command. Unfortunately doesn't work in auto-bindings.
2020-03-21Wrong overload of function push() got called when pushing a cEntity*. (#4512)Max Luchterhand1-0/+1
* Now having two funcs, Push(cEntity* ..) and Push(const cEntity* ...). For now, the const function just casts away the const qualifier and passes to the other. Co-authored-by: mluchterhand <mluchterhand@max.de>
2018-09-24Add a formatting function for Vector3 (#4282)peterbell101-3/+21
* Vector3: Add custom fmt compatible formatter. * cLuaState: Add fmt version of ApiParamError * Use vector formatting in manual bindings * Always log vectors with FLOG
2018-01-03Add the fmt library (#4065)peterbell101-1/+2
* Replaces AppendVPrintf with fmt::sprintf * fmt::ArgList now used as a type safe alternative to varargs. * Removed SIZE_T_FMT compatibility macros. fmt::sprintf is fully portable and supports %zu. * Adds FLOG functions to log with fmt's native formatting style.
2017-09-11Replace ItemCallbacks with lambdas (#3993)peterbell101-2/+3
2017-09-02Revert "Replace ItemCallbacks with lambdas (#3948)"LogicParrot1-1/+1
This reverts commit 496c337cdfa593654018c171f6a74c28272265b5.
2017-09-01Replace ItemCallbacks with lambdas (#3948)peterbell101-1/+1
2017-08-25Add cUUID class (#3871)peterbell101-0/+5
2017-08-24Minor changes (#3909)mathiascode1-1/+1
2017-08-18Represent cItem::m_Lore as an AStringVector (#3882)peterbell101-0/+1
* Replace cItem::m_Lore with AStringVector * Reword deprecation warning * Fix lua bindings
2017-08-17Add cLuaWindow OnClicked Callback (#3901)Lane Kolbly1-0/+1
2017-08-04Fixed compilation for clang 4.0 & gcc 7.1Dan Čermák1-0/+3
2017-08-03Remove double includes part 2 (#3890)peterbell101-2/+0
2017-08-03Removed unused forward declarations (#3888)Lukas Pioch1-1/+0
2017-07-21Remove smart pointer macrospeterbell101-7/+7
2017-06-26Moved ApiParamError into cLuaState.Mattes D1-0/+9
2017-06-24cBlockArea supports block entities. (#3795)Mattes D1-0/+4
2017-06-22NetworkSingleton: Fixed a throw warning in VS2017. (#3792)Mattes D1-3/+3
Also fixed the misleading name.
2017-06-19LuaState: Fixed VS2017's throw warnings for destructors. (#3779)Mattes D1-3/+3
2017-06-09Fixed handling Lua errors in nested callbacks (#3755)Mattes D1-1/+36
2017-05-09Fixed Lua bindings for const objects.Mattes D1-8/+2
2017-01-18DeadlockDetect now lists some tracked CS's stats.Mattes D1-0/+7
2017-01-15LuaState: Fixed untracking references.Mattes D1-1/+2
One thread may untrack a ref while another thread was closing the LuaState, which had emptied the tracked refs.
2017-01-13Fixed race conditions and forgotten clear in Lua ref tracking. (#3530)Mattes D1-9/+15
This fixes occasional crashes on plugin reload.
2017-01-09LuaState: Fixed race condition in ref tracking. (#3529)Mattes D1-1/+1
2016-11-10LuaState: Fixed stack balance when calling functions (#3428)Mattes D1-2/+55
2016-08-23cUrlClient: Exported to Lua API.Mattes D1-0/+24
2016-08-22cLuaState: Moved function param counting to PushCallPop() template.Mattes D1-0/+2
The Push() functions can be used not only for function params, but also returns or temporaries, so it doesn't make sense to count the params there.
2016-08-22cLuaState: Added direct support for pushing a nil constant.Mattes D1-3/+9
2016-08-22cLuaState: Added support for optional params and AStringMap values.Mattes D1-4/+35
2016-08-21cLuaState: Added template to push multiple values in a single call. (#3331)Mattes D1-3/+12
2016-08-14Fixed cWorld:ChunkStay bindings. (#3319)Mattes D1-6/+73
Introduced new cLuaState::cOptionalCallback for representing optional callbacks (nil from Lua side). Introduced new cLuaState::cStackTable class for easy access to Lua table's elements. Fixes #3305.
2016-08-13Converted cLuaState::cTableRef to use cTrackedRef.Mattes D1-62/+139
This makes the table-based callbacks resistent to LuaState unloads and safer to use.
2016-08-04Fixed RasPi builds of unit tests.Mattes D1-2/+1
On RasPi with gcc 4.8.2, the asserts wouldn't compile when tests were enabled. Enforced the assumption that ASSERT code is generated only in Debug builds.
2016-06-27Converted cLuaState::cCallbackPtr into a UniquePtr.Mattes D1-1/+3
2016-06-27Removed dead code related to callbacks.Mattes D1-9/+1
2016-06-27LuaState: Implemented proper locking for cCallback.Mattes D1-14/+43
2016-06-27Changed cLuaWindow callbacks to use cLuaState::cCallback.Mattes D1-2/+22
2016-06-27Changed plugin hook registrations to use cLuaState::cCallback.Mattes D1-1/+5
2016-06-27Added cLuaState::cCallback for representing (resettable) Lua callbacks.Mattes D1-3/+86
2016-05-31LuaState: Inter-plugin calls now support simple tables. (#3220)Mattes D1-2/+14
2016-03-21Revert "Lua callback"Mattes D1-112/+5
2016-03-17Changed cLuaWindow callbacks to use cLuaState::cCallback.Mattes D1-2/+22
2016-03-17Changed plugin hook registrations to use cLuaState::cCallback.Mattes D1-1/+5
2016-03-17Added cLuaState::cCallback for representing (resettable) Lua callbacks.Mattes D1-3/+86
2016-02-05Bulk clearing of whitespaceLogicParrot1-49/+49
2015-12-18Revised the explosion-related Lua API and docs.Mattes D1-1/+3
Fixes #2746.
2015-12-01Added PieceStructures generator.Mattes D1-6/+18
2015-09-28Added LuaState tracker and memory stats logging.Mattes D1-0/+37
2015-09-26Extended and fixed the cFile API.Mattes D1-0/+1
2015-07-29Silenced and fixed many warning messages across multiple files.Samuel Barney1-0/+1
2015-06-19Externalized cPrefabPiecePool self-test.Mattes D1-3/+4
2015-06-17LuaState: Added support for config-style usage.Mattes D1-26/+123
Globals and table values can be queried from the Lua state easily. Use perfect forwarding.
2015-05-24Made -Weverything an error.tycho1-1/+1
2015-05-19Added LuaState support for all integral typestycho1-14/+38
All so added error handling for out of range values
2015-05-16Lua: Break into ZBS debugger on API errors.Mattes D1-0/+3
2015-05-12ToLua now generates cLuaState::Push() and GetStackValue()Mattes D1-74/+11
For classes exported through ToLua it generates the cLuaState::Push() and cLuaState::GetStackValue() functions, as well as the supporting forward declarations and typedefs. Renamed virtual_method_hooks.lua to BindingsProcessor.lua since it no longer provides virtual method hooks and instead does additional processing when generating the bindings.
2015-05-10OnExecuteCommand hook can override the command result (crXXX).Mattes D1-1/+2
2015-05-09Fixed some Visual Studio warningsTiger Wang1-0/+1
2015-05-07Added support for additional data in the ParticleEffect Packettycho1-0/+6
Also started refactoring how broadcasts are handled
2015-04-29Added cBlockArea:GetNonAirCropRelCoords() API function.Mattes D1-0/+4
Fixes #1915.
2015-04-23Refactored ManualBindings' callbacks using templates.Mattes D1-0/+3
This is a bit easier to read, has better error reporting and fixes a few subtle bugs. Fixes #1889.
2015-04-23Implemented cPluginManager:DoWithPlugin(), fixed ForEachPlugin().Mattes D1-39/+36
Both functions are exported as static.
2015-02-20cNetwork: Added UDP API.Mattes D1-0/+2
2015-02-12LuaAPI: Added client TLS support for TCP links.Mattes D1-0/+2
2015-02-04Exported cServerHandle and cNetwork:Listen to Lua.Mattes D1-0/+9
Also added an example to the NetworkTest plugin.
2015-02-04cNetwork: Exported the Connect() method and cTCPLink class to Lua.Mattes D1-0/+2
2015-01-31Switched LuaState to use sizeof...tycho1-15/+1
2015-01-11Initial convertion of a_Dt to std::chronoTycho1-0/+1
also refactored cWorld::m_WorldAge and cWorld::m_TimeOfDay
2014-10-31cLuaState: Fixed errors on non-existent callbacks.Mattes D1-1/+5
This mostly affected table-based callbacks, such as the cLineBlockTracer. If a callback didn't exist, the code would still push its arguments on the stack, breaking the next callback.
2014-10-23En masse NULL -> nullptr replaceTiger Wang1-3/+3
2014-10-20En masse NULL -> nullptr replaceTiger Wang1-3/+3
2014-10-19Fixed minor style issues.Mattes D1-1/+1
2014-10-16Use universal referencesworktycho1-4/+4
2014-10-15cLuaState::Call() uses variadic templates.Mattes D1-3/+75
(doesn't compile)
2014-10-06Fixed crash in ForEachEntityInBox API.madmaxoft1-1/+1
Fixes #1511.
2014-09-26Removed a few unnessicary includesTycho1-1/+0
2014-09-03LuaState: Fixed referenced function pushing.madmaxoft1-0/+8
The references are no longer destroyed by the call.
2014-09-03Added cWorld::ForEachEntityInBox()madmaxoft1-0/+10
2014-08-22cLuaState: Fixed Vector3<> names pushed to Lua.Mattes D1-0/+3
2014-07-17Normalized comments.madmaxoft1-1/+1
This was mostly done automatically and then visually inspected for obvious errors. All //-style comments should have a 2-space separation from the code, and 1 space after the comment sign.
2014-07-03Changed OnWeatherChanging hook to always read the returned weather.madmaxoft1-0/+5
Ref.: http://forum.mc-server.org/showthread.php?tid=1512
2014-07-01Tolua generates LuaState_Call.inc file.madmaxoft1-622/+7
2014-06-03Fixed OnProjectileHitBlock bindings.madmaxoft1-20/+24
Also sorted the various cLuaState::Push() functions.
2014-03-29Fixed error when the hook gets called.STRWarrior1-0/+2
2014-03-20Made pushing plain pointer to Lua a valid operation, with a warning.madmaxoft1-1/+1
This is used for exotic explosions, and the NORETURNDEBUG macro caused MSVC warnings across the entire cLuaState class (MSVC marked ALL Push() function overloads as non-returning)
2014-03-19Errors in Lua don't include the error handler in the stack trace.madmaxoft1-2/+2
Fixes #817.
2014-03-14Added Noreturn attribtes to a couple of functions and made a missing noreturn an errorTycho1-1/+1
2014-03-12Moved Lua API registering into a separate function.madmaxoft1-1/+6
This will allow us to use Lua as lite-config files as well, should we want to.
2014-03-11Unified Vector classesandrew1-1/+2
2014-03-04cLuaState: Made public the GetStackValue() functions.madmaxoft1-48/+49
2014-02-17Add Lua plugin path to package.path and .cpath.madmaxoft1-0/+3
Fixes #693.
2014-02-11Added cLuaState::CheckParamFunctionOrNil().madmaxoft1-0/+3
Also fixed error reporting for the two function-checking functions.
2014-02-09cLuaState::cRef can be unbound and re-bound.madmaxoft1-2/+15
This will allow us to store Lua references as member variables in classes and initialize those later than in the constructor.
2014-01-21Implemented cPluginManager:CallPlugin() API.madmaxoft1-58/+85
This function supersedes cPlugin:Call(), is safer to use in regards to multithreading and once again removes the need for the cPlugin class being exported at all.
2014-01-19cLuaState can now check function params.madmaxoft1-0/+3
2014-01-13cCreeper is no longer available in API.madmaxoft1-1/+0
Has been replaced by cMonster.
2014-01-11Lua errors display stack trace.madmaxoft1-0/+2
Fixes #418.
2014-01-11Removed internal methods from public cLuaState interface.madmaxoft1-38/+60
PushFunction(), CallFunction() and GetReturn() are not to be called independently, but rather only by using the Call() templated overrides. Push() needs to be left in the public part, it is used for pushing results in the ManualBindings. Preparation for #418.
2013-12-31implemented the recommendations Xoft gave.STRWarrior1-0/+1
2013-12-22merged in warnings changesTycho Bickerstaff1-0/+21
2013-12-29Added HOOK_PLUGINS_LOADED.madmaxoft1-0/+19
This fixes #482.
2013-12-22converted commneted paramater names to the unused macroTycho Bickerstaff1-20/+41
2013-12-21Root is now warnings cleanTycho Bickerstaff1-20/+20
2013-12-08Moved bindings-related to a Bindings subfolder.madmaxoft1-0/+0
Ref.: #407
2013-11-30Added the real tick duration to the OnWorldTick hook.madmaxoft1-0/+16
2013-11-26Fixed loads more of them.Alexander Harkness1-1/+1
2013-11-24Attempt to fix compilationTiger Wang1-1/+1
2013-11-24Moved source to srcAlexander Harkness1-0/+0
2013-11-22Added cFile:GetFolderContents().madmaxoft1-2/+5
Fix 162.
2013-11-22Fixed cRoot:GetFurnaceRecipe() Lua binding.madmaxoft1-1/+4
2013-08-21Hook adding uses the new API.madmaxoft1-1/+1
Multiple hooks per plugin can be added. The cPluginManager.AddHook() has four available signatures, the recommended one is cPluginManager.AddHook(HOOK_TYPE, CallbackFunction)
2013-08-21cLuaState: Added LogStackTrace() and GetTypeText() utility functionsmadmaxoft1-0/+6
2013-08-19Finished renaming cPlugin_NewLua to cPluginLua.madmaxoft1-2/+2
2013-08-11Added the OnHopperPullingItem and OnHopperPushingItem hooks.madmaxoft1-0/+4
Requested in FS 412, slightly modified the params.
2013-08-09Added OnExploding() and OnExploded() hooks.madmaxoft1-0/+203
As requested in FS 413, with extra parameters: World, BlockX, BlockY, BlockZ, Size, CanCauseFire, Source, SourceData OnExploding() can return 3 values: StopHook, CanCauseFire, ExplosionSize
2013-08-08Removed LuaScript.madmaxoft1-0/+4
The WebAdmin now uses LuaState directly to call the one function it needs.
2013-08-08cPlugin_NewLua is now completely rewritten to use templated LuaState calls.madmaxoft1-29/+86
2013-08-08LuaState refactoring: using templates for hook function calls.madmaxoft1-20/+357
This simplifies calling Lua functions considerably, it's almost like calling a C++ function, only with an extra argument to delimit args from returned values.
2013-08-08Addeed OnSpawningEntity, OnSpawnedEntity, OnSpawningMonster, OnSpawnedMonster hooks.madmaxoft1-0/+2
As requested in FS 418.
2013-08-07cLuaState has reference management, param checking and a fixed destructor.madmaxoft1-3/+48
References are now managed as RAII objects, cLuaState::cRef. Destructor now calls correct function, either Close() or Detach(), based on the owned-ness of the lua_State *.
2013-08-06cLuaState now tracks the function name and number of argsmadmaxoft1-4/+46
2013-08-06cLuaState can now contain a detached LuaState, too.madmaxoft1-1/+22
This will be useful for cases when we get a lua_State * from the outside and are asked to perform operations on it.
2013-08-04LuaState refactoring: initial part.madmaxoft1-0/+90
The cLuaState class is a wrapper for the lua_State * and for the common functions on it. The cPlugin_NewLua has been rewritten to use it instead of the raw pointer. Part of #33