Fix server and client scripts on cyka

This commit is contained in:
2025-03-31 18:56:02 +02:00
parent 9ba782b8e9
commit 28486c00ff

View File

@@ -1,16 +1,18 @@
-- luacheck: globals MyModGlobal -- luacheck: globals MyModGlobal
-- luacheck: read_globals Character SERVER Keys LuaUserData Hook Descriptors PlayerInput Timer -- luacheck: read_globals Character SERVER Keys LuaUserData Hook Descriptors PlayerInput Timer
-- luacheck: max line length 420 -- luacheck: max line length 420
if SERVER then return end
-- Docs: https://evilfactory.github.io/LuaCsForBarotrauma/lua-docs/manual/common-questions/ -- Docs: https://evilfactory.github.io/LuaCsForBarotrauma/lua-docs/manual/common-questions/
---@class MyModGlobal if SERVER then
---@field CONFIG {QUICKSTACK_KEYS: Keys, FABRICATOR_KEY: Keys, MAX_BUY: Keys, NESTED_CONTAINERS: boolean, DEBUG_MODE: boolean} require("Cyka.xpticker")
---@field MOD_NAME string else
---@field MOD_VERSION string ---@class MyModGlobal
---@field DumpTable fun(table: table, depth?: number) ---@field CONFIG {QUICKSTACK_KEYS: Keys, FABRICATOR_KEY: Keys, MAX_BUY: Keys, NESTED_CONTAINERS: boolean, DEBUG_MODE: boolean}
---@field debugPrint fun(message: string) ---@field MOD_NAME string
MyModGlobal = { ---@field MOD_VERSION string
---@field DumpTable fun(table: table, depth?: number)
---@field debugPrint fun(message: string)
MyModGlobal = {
CONFIG = { CONFIG = {
QUICKSTACK_KEYS = Keys.F, QUICKSTACK_KEYS = Keys.F,
FABRICATOR_KEY = Keys.V, FABRICATOR_KEY = Keys.V,
@@ -31,11 +33,11 @@ MyModGlobal = {
MOD_NAME = "Cyka Quick", MOD_NAME = "Cyka Quick",
MOD_VERSION = "1.1.0", MOD_VERSION = "1.1.0",
BAG_SLOT = 8, BAG_SLOT = 8,
} }
---@param table table ---@param table table
---@param depth number? ---@param depth number?
MyModGlobal.DumpTable = function(table, depth) MyModGlobal.DumpTable = function(table, depth)
if depth == nil then if depth == nil then
depth = 0 depth = 0
end end
@@ -51,82 +53,81 @@ MyModGlobal.DumpTable = function(table, depth)
print(string.rep(" ", depth) .. k .. ": ", v) print(string.rep(" ", depth) .. k .. ": ", v)
end end
end end
end end
-- Debugging helper function -- Debugging helper function
MyModGlobal.debugPrint = function(message) MyModGlobal.debugPrint = function(message)
if MyModGlobal.CONFIG.DEBUG_MODE then if MyModGlobal.CONFIG.DEBUG_MODE then
print("[" .. MyModGlobal.MOD_NAME .. "] " .. message) print("[" .. MyModGlobal.MOD_NAME .. "] " .. message)
end end
end end
local quickstack = require("Cyka.quickstack") local quickstack = require("Cyka.quickstack")
local fabricatorstack = require("Cyka.fabricatorstack") local fabricatorstack = require("Cyka.fabricatorstack")
local quickbuy = require("Cyka.quickbuy") local quickbuy = require("Cyka.quickbuy")
local hotkeyrepair = require("Cyka.hotkeyrepair") local hotkeyrepair = require("Cyka.hotkeyrepair")
local cursormacroer = require("Cyka.cursormacroer") local cursormacroer = require("Cyka.cursormacroer")
local quickunload = require("Cyka.quickunload") local quickunload = require("Cyka.quickunload")
local quickreload = require("Cyka.quickreload") local quickreload = require("Cyka.quickreload")
local quickloot = require("Cyka.quickloot") local quickloot = require("Cyka.quickloot")
local sonarpinger = require("Cyka.sonarpinger") local sonarpinger = require("Cyka.sonarpinger")
local aoepickup = require("Cyka.aoepickup") local aoepickup = require("Cyka.aoepickup")
local quickaccess = require("Cyka.quickaccess") local quickaccess = require("Cyka.quickaccess")
require("Cyka.xpticker") require("Cyka.zoom")
require("Cyka.zoom")
-- TODO: Keybind fabricator / medical fabricator / deconstructor on the sub -- TODO: Keybind fabricator / medical fabricator / deconstructor on the sub
print(MyModGlobal.MOD_NAME .. " v" .. MyModGlobal.MOD_VERSION .. " loaded!") print(MyModGlobal.MOD_NAME .. " v" .. MyModGlobal.MOD_VERSION .. " loaded!")
-- Register necessary types and make fields accessible -- Register necessary types and make fields accessible
LuaUserData.RegisterType("Barotrauma.Items.Components.ItemContainer+SlotRestrictions") LuaUserData.RegisterType("Barotrauma.Items.Components.ItemContainer+SlotRestrictions")
LuaUserData.RegisterType( LuaUserData.RegisterType(
'System.Collections.Immutable.ImmutableArray`1[[Barotrauma.Items.Components.ItemContainer+SlotRestrictions, Barotrauma]]') 'System.Collections.Immutable.ImmutableArray`1[[Barotrauma.Items.Components.ItemContainer+SlotRestrictions, Barotrauma]]')
LuaUserData.MakeFieldAccessible(Descriptors['Barotrauma.Items.Components.ItemContainer'], 'slotRestrictions') LuaUserData.MakeFieldAccessible(Descriptors['Barotrauma.Items.Components.ItemContainer'], 'slotRestrictions')
LuaUserData.MakeFieldAccessible(Descriptors['Barotrauma.ItemInventory'], 'slots') LuaUserData.MakeFieldAccessible(Descriptors['Barotrauma.ItemInventory'], 'slots')
LuaUserData.MakeFieldAccessible(Descriptors['Barotrauma.ItemInventory'], 'slotsPerRow') LuaUserData.MakeFieldAccessible(Descriptors['Barotrauma.ItemInventory'], 'slotsPerRow')
LuaUserData.MakeFieldAccessible(Descriptors["Barotrauma.CharacterInventory"], "slots") LuaUserData.MakeFieldAccessible(Descriptors["Barotrauma.CharacterInventory"], "slots")
LuaUserData.RegisterType("Barotrauma.Store") LuaUserData.RegisterType("Barotrauma.Store")
LuaUserData.RegisterType("Barotrauma.GUIComponent") LuaUserData.RegisterType("Barotrauma.GUIComponent")
LuaUserData.RegisterType("Barotrauma.PurchasedItem") LuaUserData.RegisterType("Barotrauma.PurchasedItem")
LuaUserData.RegisterType("Barotrauma.ItemPrefab") LuaUserData.RegisterType("Barotrauma.ItemPrefab")
LuaUserData.RegisterType("Barotrauma.Location+StoreInfo") LuaUserData.RegisterType("Barotrauma.Location+StoreInfo")
LuaUserData.MakeMethodAccessible(Descriptors["Barotrauma.CargoManager"], "GetConfirmedSoldEntities") LuaUserData.MakeMethodAccessible(Descriptors["Barotrauma.CargoManager"], "GetConfirmedSoldEntities")
LuaUserData.RegisterType("Barotrauma.Items.Components.Repairable") LuaUserData.RegisterType("Barotrauma.Items.Components.Repairable")
LuaUserData.RegisterType("Barotrauma.VisualSlot") LuaUserData.RegisterType("Barotrauma.VisualSlot")
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QUICKSTACK_KEYS) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QUICKSTACK_KEYS) then return end
quickstack.quickStackItems(instance) quickstack.quickStackItems(instance)
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.STACK_TO_CURSOR) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.STACK_TO_CURSOR) then return end
if not PlayerInput.IsShiftDown() then if not PlayerInput.IsShiftDown() then
quickstack.stackToCursor() quickstack.stackToCursor()
else else
quickstack.stackAllToCursor() quickstack.stackAllToCursor()
end end
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.FABRICATOR_KEY) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.FABRICATOR_KEY) then return end
fabricatorstack.tryStackFabricator(instance) fabricatorstack.tryStackFabricator(instance)
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.FIX) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.FIX) then return end
hotkeyrepair.tryRepair() hotkeyrepair.tryRepair()
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.MAX_BUY) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.MAX_BUY) then return end
quickbuy.tryBuy() quickbuy.tryBuy()
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
local throttle = 0.1 local throttle = 0.1
local throttleTimer = 0 local throttleTimer = 0
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if PlayerInput.Mouse4ButtonClicked() then if PlayerInput.Mouse4ButtonClicked() then
cursormacroer.setTargetInventory() cursormacroer.setTargetInventory()
end end
@@ -138,44 +139,45 @@ Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptab
-- if not PlayerInput.IsShiftDown() then return end -- if not PlayerInput.IsShiftDown() then return end
-- if not PlayerInput.PrimaryMouseButtonClicked() then return end -- if not PlayerInput.PrimaryMouseButtonClicked() then return end
cursormacroer.tryStackCursorItem() cursormacroer.tryStackCursorItem()
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.UNLOAD) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.UNLOAD) then return end
quickunload.tryUnloadCursorItem() quickunload.tryUnloadCursorItem()
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.RELOAD) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.RELOAD) then return end
quickreload.tryReloadCursorItem(PlayerInput.IsShiftDown()) quickreload.tryReloadCursorItem(PlayerInput.IsShiftDown())
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) -- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.LOOT) then return end -- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.LOOT) then return end
-- quickloot.tryLoot() -- quickloot.tryLoot()
-- end, Hook.HookMethodType.After) -- end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.SONAR) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.SONAR) then return end
sonarpinger.tryPing() sonarpinger.tryPing()
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.AOEPICKUP) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.AOEPICKUP) then return end
aoepickup.tryAoePickup() aoepickup.tryAoePickup()
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_FABRICATOR) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_FABRICATOR) then return end
quickaccess.tryAccessFabricator(PlayerInput.IsShiftDown()) quickaccess.tryAccessFabricator(PlayerInput.IsShiftDown())
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_DECONSTRUCTOR) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_DECONSTRUCTOR) then return end
quickaccess.tryAccessDeconstructor(PlayerInput.IsShiftDown()) quickaccess.tryAccessDeconstructor(PlayerInput.IsShiftDown())
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable) Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_MEDICAL_FABRICATOR) then return end if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_MEDICAL_FABRICATOR) then return end
quickaccess.tryAccessMedicalFabricator(PlayerInput.IsShiftDown()) quickaccess.tryAccessMedicalFabricator(PlayerInput.IsShiftDown())
end, Hook.HookMethodType.After) end, Hook.HookMethodType.After)
end