Fix rubberbanding on ladders
This commit is contained in:
@@ -2,16 +2,12 @@
|
||||
local utils = require "Cyka.utils"
|
||||
local dump = require "Cyka.dump"
|
||||
|
||||
Hook.Add("Character_CanInteractWith_Item_Postfix", "YourModName.AllowRemoteInteraction", function()
|
||||
return true
|
||||
end)
|
||||
|
||||
-- Then patch the CanInteractWith method
|
||||
local machines = "fabricator,deconstructor,medicalfabricator"
|
||||
Hook.Patch("Cyka", "Barotrauma.Character", "CanInteractWith",
|
||||
{ "Barotrauma.Item", "System.Single&", "System.Boolean" },
|
||||
function(_, ptable)
|
||||
local result = Hook.Call("Character_CanInteractWith_Item_Postfix")
|
||||
if result == true then
|
||||
local item = ptable["item"]
|
||||
if machines:find(tostring(item.Prefab.Identifier.Value)) then
|
||||
ptable.ReturnValue = true
|
||||
end
|
||||
end,
|
||||
@@ -22,6 +18,12 @@ local cachedFabricator = nil
|
||||
local cachedDeconstructor = nil
|
||||
local cachedMedicalFabricator = nil
|
||||
|
||||
local function select(item)
|
||||
MyModGlobal.debugPrint("Selecting " .. tostring(item))
|
||||
item.Prefab.GrabWhenSelected = false
|
||||
Character.Controlled.SelectedItem = item
|
||||
end
|
||||
|
||||
---@param prefabIdentifier string
|
||||
---@param componentName string
|
||||
---@return Barotrauma.Item, Barotrauma.Items.Components
|
||||
@@ -68,16 +70,8 @@ local function tryAccessFabricator(force)
|
||||
cachedFabricator = fabricator
|
||||
end
|
||||
|
||||
local me = Character.Controlled
|
||||
if not me then
|
||||
MyModGlobal.debugPrint("No controlled character found")
|
||||
return
|
||||
end
|
||||
|
||||
MyModGlobal.debugPrint("Selecting fabricator")
|
||||
-- fabricatorComponent.Select(me)
|
||||
fabricator.Prefab.GrabWhenSelected = false
|
||||
me.SelectedItem = fabricator
|
||||
select(fabricator)
|
||||
end
|
||||
|
||||
---@param force boolean
|
||||
@@ -92,16 +86,8 @@ local function tryAccessDeconstructor(force)
|
||||
cachedDeconstructor = deconstructor
|
||||
end
|
||||
|
||||
local me = Character.Controlled
|
||||
if not me then
|
||||
MyModGlobal.debugPrint("No controlled character found")
|
||||
return
|
||||
end
|
||||
|
||||
MyModGlobal.debugPrint("Selecting deconstructor")
|
||||
-- deconstructorComponent.Select(me)
|
||||
deconstructor.Prefab.GrabWhenSelected = false
|
||||
me.SelectedItem = deconstructor
|
||||
select(deconstructor)
|
||||
end
|
||||
|
||||
---@param force boolean
|
||||
@@ -116,16 +102,8 @@ local function tryAccessMedicalFabricator(force)
|
||||
cachedMedicalFabricator = medicalFabricator
|
||||
end
|
||||
|
||||
local me = Character.Controlled
|
||||
if not me then
|
||||
MyModGlobal.debugPrint("No controlled character found")
|
||||
return
|
||||
end
|
||||
|
||||
MyModGlobal.debugPrint("Selecting medical fabricator")
|
||||
-- medicalFabricatorComponent.Select(me)
|
||||
medicalFabricator.Prefab.GrabWhenSelected = false
|
||||
me.SelectedItem = medicalFabricator
|
||||
select(medicalFabricator)
|
||||
end
|
||||
|
||||
return {
|
||||
|
Reference in New Issue
Block a user