diff --git a/Barotrauma/BarotraumaShared/Lua/CompatibilityLib.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/CompatibilityLib.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/CompatibilityLib.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/CompatibilityLib.lua diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultHook.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultHook.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/DefaultHook.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultHook.lua diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultLib/LibClient.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/LibClient.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/DefaultLib/LibClient.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/LibClient.lua diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultLib/LibServer.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/LibServer.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/DefaultLib/LibServer.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/LibServer.lua diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultLib/LibShared.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/LibShared.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/DefaultLib/LibShared.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/LibShared.lua diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultLib/Utils/Math.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/Utils/Math.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/DefaultLib/Utils/Math.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/Utils/Math.lua diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultLib/Utils/SteamApi.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/Utils/SteamApi.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/DefaultLib/Utils/SteamApi.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/Utils/SteamApi.lua diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultLib/Utils/String.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/Utils/String.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/DefaultLib/Utils/String.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/Utils/String.lua diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultLib/Utils/Util.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/Utils/Util.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/DefaultLib/Utils/Util.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultLib/Utils/Util.lua diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterClient.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultRegister/RegisterClient.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterClient.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultRegister/RegisterClient.lua diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterServer.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultRegister/RegisterServer.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterServer.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultRegister/RegisterServer.lua diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterShared.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultRegister/RegisterShared.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterShared.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/DefaultRegister/RegisterShared.lua diff --git a/Barotrauma/BarotraumaShared/Lua/LuaSetup.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/LuaSetup.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/LuaSetup.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/LuaSetup.lua diff --git a/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/LuaUserData.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/LuaUserData.lua new file mode 100644 index 000000000..387fc7f2b --- /dev/null +++ b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/LuaUserData.lua @@ -0,0 +1,97 @@ +local clrLuaUserData = LuaUserData +local luaUserData = {} + +luaUserData.Descriptors = {} + +LuaSetup.LuaUserData = luaUserData + +luaUserData.IsRegistered = clrLuaUserData.IsRegistered +luaUserData.UnregisterType = clrLuaUserData.UnregisterType +luaUserData.RegisterGenericType = clrLuaUserData.RegisterGenericType +luaUserData.RegisterExtensionType = clrLuaUserData.RegisterExtensionType +luaUserData.UnregisterGenericType = clrLuaUserData.UnregisterGenericType +luaUserData.IsTargetType = clrLuaUserData.IsTargetType +luaUserData.TypeOf = clrLuaUserData.TypeOf +luaUserData.GetType = clrLuaUserData.GetType +luaUserData.CreateEnumTable = clrLuaUserData.CreateEnumTable +luaUserData.MakeFieldAccessible = clrLuaUserData.MakeFieldAccessible +luaUserData.MakeMethodAccessible = clrLuaUserData.MakeMethodAccessible +luaUserData.MakePropertyAccessible = clrLuaUserData.MakePropertyAccessible +luaUserData.AddMethod = clrLuaUserData.AddMethod +luaUserData.AddField = clrLuaUserData.AddField +luaUserData.RemoveMember = clrLuaUserData.RemoveMember +luaUserData.CreateUserDataFromDescriptor = clrLuaUserData.CreateUserDataFromDescriptor +luaUserData.CreateUserDataFromType = clrLuaUserData.CreateUserDataFromType +luaUserData.HasMember = clrLuaUserData.HasMember + +luaUserData.RegisterType = function(typeName) + local success, result = pcall(clrLuaUserData.RegisterType, typeName) + + if not success then + error(result, 2) + end + + luaUserData.Descriptors[typeName] = result + + return result +end + +luaUserData.RegisterTypeBarotrauma = function(typeName) + typeName = "Barotrauma." .. typeName + local success, result = pcall(luaUserData.RegisterType, typeName) + + if not success then + error(result, 2) + end + + return result +end + +luaUserData.AddCallMetaTable = function (userdata) + if userdata == nil then + error("Attempted to add a call metatable to a nil value.", 2) + end + + if not LuaUserData.HasMember(userdata, ".ctor") then + error("Attempted to add a call metatable to a userdata that does not have a constructor.", 2) + end + + debug.setmetatable(userdata, { + __call = function(obj, ...) + if userdata == nil then + error("userdata was nil.", 2) + end + + local success, result = pcall(userdata.__new, ...) + + + if not success then + error(result, 2) + end + + return result + end + }) +end + +luaUserData.CreateStatic = function(typeName) + if type(typeName) ~= "string" then + error("Expected a string for typeName, got " .. type(typeName) .. ".", 2) + end + + local success, result = pcall(clrLuaUserData.CreateStatic, typeName) + + if not success then + error(result, 2) + end + + if result == nil then + return + end + + if LuaUserData.HasMember(result, ".ctor") then + luaUserData.AddCallMetaTable(result) + end + + return result +end \ No newline at end of file diff --git a/Barotrauma/BarotraumaShared/Lua/ModLoader.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/ModLoader.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/ModLoader.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/ModLoader.lua diff --git a/Barotrauma/BarotraumaShared/Lua/PostSetup.lua b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/PostSetup.lua similarity index 100% rename from Barotrauma/BarotraumaShared/Lua/PostSetup.lua rename to Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/Lua/PostSetup.lua diff --git a/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/ModConfig.xml b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/ModConfig.xml new file mode 100644 index 000000000..e74277984 --- /dev/null +++ b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/ModConfig.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/filelist.xml b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/filelist.xml new file mode 100644 index 000000000..4a679f48e --- /dev/null +++ b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/filelist.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/Barotrauma/BarotraumaShared/Lua/.vscode/launch.json b/Barotrauma/BarotraumaShared/Lua/.vscode/launch.json deleted file mode 100644 index bd4a5a056..000000000 --- a/Barotrauma/BarotraumaShared/Lua/.vscode/launch.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "name": "MoonSharp Attach", - "type": "moonsharp-debug", - "debugServer": 41912, - "request": "attach" - } - ] -} \ No newline at end of file diff --git a/Barotrauma/BarotraumaShared/Lua/.vscode/settings.json b/Barotrauma/BarotraumaShared/Lua/.vscode/settings.json deleted file mode 100644 index 237e6445e..000000000 --- a/Barotrauma/BarotraumaShared/Lua/.vscode/settings.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "Lua.diagnostics.globals": [ - "Game", - "Player", - "Random", - "Hook", - "Timer", - "bit32", - "TotalTime", - "DoFile", - "WayPoint", - "SpawnType", - "Level", - "Submarine", - "Vector2", - "PositionType", - "ServerLog_MessageType", - "Character", - "TraitorMessageType", - "ChatMessageType", - "CauseOfDeathType", - "CreateVector2", - "Item", - "ChatMessage", - "AfflictionPrefab", - "Gap", - "File", - "Networking", - "printNoLog", - "Client", - "SERVER", - "setmodulepaths", - "Type", - "BindingFlags", - "UserData", - "LuaUserData", - "CLIENT", - "ContentPackageManager" - ] -} \ No newline at end of file diff --git a/Barotrauma/BarotraumaShared/Lua/Content/ModConfig.xml b/Barotrauma/BarotraumaShared/Lua/Content/ModConfig.xml deleted file mode 100644 index e69de29bb..000000000 diff --git a/Barotrauma/BarotraumaShared/Lua/Content/Schemas/IModConfig.xsd b/Barotrauma/BarotraumaShared/Lua/Content/Schemas/IModConfig.xsd deleted file mode 100644 index 1908c9960..000000000 --- a/Barotrauma/BarotraumaShared/Lua/Content/Schemas/IModConfig.xsd +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -