move most of the registration code to Lua, include harmony, add useful perf methods to Time and a more useful(but still useless) error handling in the hook call
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "MoonSharp Attach",
|
||||
"type": "moonsharp-debug",
|
||||
"debugServer": 41912,
|
||||
"request": "attach"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"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"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
local defaultLib = {}
|
||||
|
||||
require("DefaultRegister")
|
||||
|
||||
local CreateStatic = function (typeName)
|
||||
return LuaUserData.CreateStatic("Barotrauma." .. typeName)
|
||||
end
|
||||
|
||||
defaultLib["WayPoint"] = CreateStatic("WayPoint")
|
||||
defaultLib["SpawnType"] = CreateStatic("SpawnType")
|
||||
defaultLib["ChatMessageType"] = CreateStatic("Networking.ChatMessageType")
|
||||
defaultLib["ServerLog_MessageType"] = CreateStatic("Networking.ServerLog+MessageType")
|
||||
defaultLib["ServerLogMessageType"] = CreateStatic("Networking.ServerLog+MessageType")
|
||||
defaultLib["Submarine"] = CreateStatic("Submarine")
|
||||
defaultLib["Client"] = CreateStatic("Networking.Client")
|
||||
defaultLib["Character"] = CreateStatic("Character")
|
||||
defaultLib["CharacterInfo"] = CreateStatic("CharacterInfo")
|
||||
defaultLib["Item"] = CreateStatic("Item")
|
||||
defaultLib["ItemPrefab"] = CreateStatic("ItemPrefab")
|
||||
defaultLib["Level"] = CreateStatic("Level")
|
||||
defaultLib["PositionType"] = CreateStatic("Level+PositionType")
|
||||
defaultLib["JobPrefab"] = CreateStatic("JobPrefab")
|
||||
defaultLib["TraitorMessageType"] = CreateStatic("Networking.TraitorMessageType")
|
||||
defaultLib["CauseOfDeathType"] = CreateStatic("CauseOfDeathType")
|
||||
defaultLib["AfflictionPrefab"] = CreateStatic("AfflictionPrefab")
|
||||
defaultLib["CharacterTeamType"] = CreateStatic("CharacterTeamType")
|
||||
defaultLib["Vector2"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector2")
|
||||
defaultLib["Vector3"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector3")
|
||||
defaultLib["Vector4"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector4")
|
||||
defaultLib["Color"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Color")
|
||||
defaultLib["Point"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Point")
|
||||
defaultLib["ChatMessage"] = CreateStatic("Networking.ChatMessage")
|
||||
defaultLib["Hull"] = CreateStatic("Hull")
|
||||
defaultLib["InvSlotType"] = CreateStatic("InvSlotType")
|
||||
defaultLib["Gap"] = CreateStatic("Gap")
|
||||
defaultLib["ContentPackage"] = CreateStatic("ContentPackage")
|
||||
defaultLib["ClientPermissions"] = CreateStatic("Networking.ClientPermissions")
|
||||
defaultLib["Signal"] = CreateStatic("Items.Components.Signal")
|
||||
defaultLib["DeliveryMethod"] = CreateStatic("Networking.DeliveryMethod")
|
||||
defaultLib["ClientPacketHeader"] = CreateStatic("Networking.ClientPacketHeader")
|
||||
defaultLib["ServerPacketHeader"] = CreateStatic("Networking.ServerPacketHeader")
|
||||
defaultLib["RandSync"] = CreateStatic("Rand+RandSync")
|
||||
defaultLib["SubmarineInfo"] = CreateStatic("SubmarineInfo")
|
||||
defaultLib["Rectangle"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Rectangle")
|
||||
defaultLib["Entity"] = CreateStatic("Entity")
|
||||
defaultLib["Physics"] = CreateStatic("Physics")
|
||||
|
||||
if SERVER then
|
||||
|
||||
elseif CLIENT then
|
||||
defaultLib["Sprite"] = CreateStatic("Sprite")
|
||||
defaultLib["Keys"] = LuaUserData.RegisterType("Microsoft.Xna.Framework.Input.Keys")
|
||||
defaultLib["PlayerInput"] = CreateStatic("PlayerInput")
|
||||
end
|
||||
|
||||
return defaultLib
|
||||
@@ -0,0 +1,157 @@
|
||||
local function RegisterBarotrauma(typeName)
|
||||
return LuaUserData.RegisterType("Barotrauma." .. typeName)
|
||||
end
|
||||
|
||||
local AddCallMetaMember = LuaUserData.AddCallMetaMember
|
||||
|
||||
RegisterBarotrauma("CauseOfDeathType")
|
||||
RegisterBarotrauma("Level+InterestingPosition")
|
||||
RegisterBarotrauma("Level+PositionType")
|
||||
RegisterBarotrauma("Networking.TraitorMessageType")
|
||||
RegisterBarotrauma("SpawnType")
|
||||
RegisterBarotrauma("Networking.ChatMessageType")
|
||||
RegisterBarotrauma("InputType")
|
||||
|
||||
RegisterBarotrauma("Job")
|
||||
RegisterBarotrauma("JobPrefab")
|
||||
RegisterBarotrauma("Level")
|
||||
RegisterBarotrauma("Items.Components.Steering")
|
||||
RegisterBarotrauma("Networking.ServerLog+MessageType")
|
||||
RegisterBarotrauma("WayPoint")
|
||||
RegisterBarotrauma("Character")
|
||||
RegisterBarotrauma("Item")
|
||||
RegisterBarotrauma("Submarine")
|
||||
RegisterBarotrauma("Networking.Client")
|
||||
RegisterBarotrauma("AfflictionPrefab")
|
||||
RegisterBarotrauma("Affliction")
|
||||
RegisterBarotrauma("CharacterHealth")
|
||||
RegisterBarotrauma("AnimController")
|
||||
RegisterBarotrauma("Limb")
|
||||
RegisterBarotrauma("Ragdoll")
|
||||
RegisterBarotrauma("Networking.ChatMessage")
|
||||
RegisterBarotrauma("CharacterHealth+LimbHealth")
|
||||
RegisterBarotrauma("AttackResult")
|
||||
RegisterBarotrauma("Entity")
|
||||
RegisterBarotrauma("EntitySpawner")
|
||||
RegisterBarotrauma("MapEntity")
|
||||
RegisterBarotrauma("MapEntityPrefab")
|
||||
RegisterBarotrauma("CauseOfDeath")
|
||||
RegisterBarotrauma("CharacterTeamType")
|
||||
RegisterBarotrauma("Items.Components.Connection")
|
||||
RegisterBarotrauma("CharacterInventory")
|
||||
RegisterBarotrauma("Hull")
|
||||
RegisterBarotrauma("Gap")
|
||||
RegisterBarotrauma("PhysicsBody")
|
||||
RegisterBarotrauma("InvSlotType")
|
||||
RegisterBarotrauma("ItemPrefab")
|
||||
RegisterBarotrauma("SerializableProperty")
|
||||
RegisterBarotrauma("StatusEffect")
|
||||
RegisterBarotrauma("FireSource")
|
||||
RegisterBarotrauma("ContentPackage")
|
||||
RegisterBarotrauma("SubmarineBody")
|
||||
RegisterBarotrauma("Explosion")
|
||||
RegisterBarotrauma("Networking.ServerSettings")
|
||||
RegisterBarotrauma("Inventory")
|
||||
RegisterBarotrauma("ItemInventory")
|
||||
|
||||
RegisterBarotrauma("Items.Components.Fabricator")
|
||||
RegisterBarotrauma("Items.Components.ItemComponent")
|
||||
RegisterBarotrauma("Items.Components.WifiComponent")
|
||||
RegisterBarotrauma("Items.Components.LightComponent")
|
||||
RegisterBarotrauma("Items.Components.Holdable")
|
||||
RegisterBarotrauma("Items.Components.CustomInterface")
|
||||
RegisterBarotrauma("Items.Components.CustomInterface+CustomInterfaceElement")
|
||||
RegisterBarotrauma("Items.Components.ItemContainer")
|
||||
RegisterBarotrauma("Items.Components.PowerContainer")
|
||||
RegisterBarotrauma("Items.Components.Pickable")
|
||||
RegisterBarotrauma("Items.Components.Reactor")
|
||||
RegisterBarotrauma("Items.Components.RelayComponent")
|
||||
RegisterBarotrauma("Items.Components.MemoryComponent")
|
||||
RegisterBarotrauma("Items.Components.Engine")
|
||||
|
||||
RegisterBarotrauma("AIController")
|
||||
RegisterBarotrauma("EnemyAIController")
|
||||
RegisterBarotrauma("HumanAIController")
|
||||
RegisterBarotrauma("AICharacter")
|
||||
RegisterBarotrauma("AITarget")
|
||||
RegisterBarotrauma("AITargetMemory")
|
||||
|
||||
RegisterBarotrauma("TalentPrefab")
|
||||
RegisterBarotrauma("TalentOption")
|
||||
RegisterBarotrauma("TalentSubTree")
|
||||
RegisterBarotrauma("TalentTree")
|
||||
RegisterBarotrauma("CharacterTalent")
|
||||
|
||||
RegisterBarotrauma("Screen")
|
||||
RegisterBarotrauma("GameScreen")
|
||||
RegisterBarotrauma("GameSession")
|
||||
RegisterBarotrauma("CampaignMode")
|
||||
|
||||
local descriptor = RegisterBarotrauma("NetLobbyScreen")
|
||||
LuaUserData.MakeFieldAccessible(descriptor, "subs")
|
||||
|
||||
RegisterBarotrauma("Networking.IWriteMessage")
|
||||
RegisterBarotrauma("Networking.IReadMessage")
|
||||
RegisterBarotrauma("Networking.ServerPacketHeader")
|
||||
RegisterBarotrauma("Networking.ClientPacketHeader")
|
||||
RegisterBarotrauma("Networking.DeliveryMethod")
|
||||
RegisterBarotrauma("Rand+RandSync")
|
||||
RegisterBarotrauma("Skill")
|
||||
RegisterBarotrauma("SkillPrefab")
|
||||
RegisterBarotrauma("TraitorMissionPrefab")
|
||||
RegisterBarotrauma("TraitorMissionResult")
|
||||
|
||||
LuaUserData.RegisterType("FarseerPhysics.Dynamics.World")
|
||||
LuaUserData.RegisterType("FarseerPhysics.Dynamics.Fixture")
|
||||
RegisterBarotrauma("Physics")
|
||||
|
||||
RegisterBarotrauma("Camera")
|
||||
RegisterBarotrauma("InputType")
|
||||
RegisterBarotrauma("Key")
|
||||
|
||||
AddCallMetaMember(RegisterBarotrauma("CharacterInfo"))
|
||||
AddCallMetaMember(RegisterBarotrauma("Items.Components.Signal"))
|
||||
AddCallMetaMember(RegisterBarotrauma("SubmarineInfo"))
|
||||
|
||||
AddCallMetaMember(LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector2"))
|
||||
AddCallMetaMember(LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector3"))
|
||||
AddCallMetaMember(LuaUserData.RegisterType("Microsoft.Xna.Framework.Vector4"))
|
||||
AddCallMetaMember(LuaUserData.RegisterType("Microsoft.Xna.Framework.Color"))
|
||||
AddCallMetaMember(LuaUserData.RegisterType("Microsoft.Xna.Framework.Point"))
|
||||
AddCallMetaMember(LuaUserData.RegisterType("Microsoft.Xna.Framework.Rectangle"))
|
||||
|
||||
if SERVER then
|
||||
|
||||
RegisterBarotrauma("Traitor")
|
||||
RegisterBarotrauma("Traitor+TraitorMission")
|
||||
|
||||
elseif CLIENT then
|
||||
|
||||
RegisterBarotrauma("LuaSetup+LuaGUI")
|
||||
RegisterBarotrauma("ChatBox")
|
||||
RegisterBarotrauma("GUICanvas")
|
||||
RegisterBarotrauma("Anchor")
|
||||
RegisterBarotrauma("Alignment")
|
||||
RegisterBarotrauma("Pivot")
|
||||
RegisterBarotrauma("Key")
|
||||
RegisterBarotrauma("PlayerInput")
|
||||
|
||||
LuaUserData.RegisterType("Microsoft.Xna.Framework.Graphics.Texture2D")
|
||||
LuaUserData.RegisterType("EventInput.KeyEventArgs")
|
||||
LuaUserData.RegisterType("Microsoft.Xna.Framework.Input.Keys")
|
||||
|
||||
AddCallMetaMember(RegisterBarotrauma("Sprite"))
|
||||
AddCallMetaMember(RegisterBarotrauma("GUILayoutGroup"))
|
||||
AddCallMetaMember(RegisterBarotrauma("GUITextBox"))
|
||||
AddCallMetaMember(RegisterBarotrauma("GUITextBlock"))
|
||||
AddCallMetaMember(RegisterBarotrauma("GUIButton"))
|
||||
AddCallMetaMember(RegisterBarotrauma("RectTransform"))
|
||||
AddCallMetaMember(RegisterBarotrauma("GUIFrame"))
|
||||
AddCallMetaMember(RegisterBarotrauma("GUITickBox"))
|
||||
AddCallMetaMember(RegisterBarotrauma("GUICustomComponent"))
|
||||
AddCallMetaMember(RegisterBarotrauma("GUIImage"))
|
||||
AddCallMetaMember(RegisterBarotrauma("GUIListBox"))
|
||||
AddCallMetaMember(RegisterBarotrauma("GUIScrollBar"))
|
||||
AddCallMetaMember(RegisterBarotrauma("GUIDropDown"))
|
||||
|
||||
end
|
||||
+10
-2
@@ -1,4 +1,14 @@
|
||||
-- Config
|
||||
|
||||
local runDisabledMods = false
|
||||
local modulePaths = {"Lua/?.lua"}
|
||||
setmodulepaths(modulePaths)
|
||||
|
||||
local defaultLib = require("DefaultLib")
|
||||
|
||||
for key, value in pairs(defaultLib) do
|
||||
_G[key] = value
|
||||
end
|
||||
|
||||
if SERVER and Game.IsDedicated then
|
||||
runDisabledMods = true
|
||||
@@ -30,8 +40,6 @@ local function runFolder(folder)
|
||||
end
|
||||
end
|
||||
|
||||
local modulePaths = {}
|
||||
|
||||
if not runDisabledMods then
|
||||
|
||||
for _, package in pairs(enabledPackages) do
|
||||
Reference in New Issue
Block a user