Track LocalMods as part of monolith
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
local findtarget = dofile(... .. "/Lua/findtarget.lua")
|
||||
|
||||
local function AddMessage(text, client)
|
||||
local message = ChatMessage.Create("Lua Linker", text, ChatMessageType.Default, nil, nil)
|
||||
message.Color = Color(60, 100, 255)
|
||||
|
||||
if CLIENT then
|
||||
Game.ChatBox.AddMessage(message)
|
||||
else
|
||||
Game.SendDirectChatMessage(message, client)
|
||||
end
|
||||
end
|
||||
|
||||
local linksDisplaySideBySide = {}
|
||||
|
||||
Hook.Add("luaDisplaySideBySide.onUse", "lualinker.luaDisplaySideBySide",function(statusEffect, delta, item)
|
||||
local target = findtarget.findtarget(item)
|
||||
if CLIENT and Game.IsMultiplayer then
|
||||
return
|
||||
end
|
||||
local owner = findtarget.FindClientCharacter(item.ParentInventory.Owner)
|
||||
|
||||
if target == nil then
|
||||
AddMessage("No item found", owner)
|
||||
return
|
||||
end
|
||||
|
||||
if linksDisplaySideBySide[item] == nil then
|
||||
linksDisplaySideBySide[item] = target
|
||||
-- AddMessage(string.format("Link Start: \"%s\"", target.Name), owner)
|
||||
|
||||
if target.DisplaySideBySideWhenLinked == true then
|
||||
|
||||
target.DisplaySideBySideWhenLinked = false
|
||||
AddMessage(string.format(
|
||||
"Removed DisplaySideBySideWhenLinked from \"%s\"",
|
||||
target.Name), owner)
|
||||
|
||||
if SERVER then
|
||||
-- lets send a net message to all clients so they remove our DisplaySideBySideWhenLinked
|
||||
local msg = Networking.Start("luaDisplaySideBySide.remove")
|
||||
msg.WriteUInt16(UShort(target.ID))
|
||||
Networking.Send(msg)
|
||||
end
|
||||
|
||||
linksDisplaySideBySide[item] = nil
|
||||
return
|
||||
else
|
||||
|
||||
-- target.AddLinked(otherTarget)
|
||||
-- otherTarget.AddLinked(target)
|
||||
-- otherTarget.DisplaySideBySideWhenLinked = true
|
||||
|
||||
target.DisplaySideBySideWhenLinked = true
|
||||
AddMessage(string.format(
|
||||
"Added DisplaySideBySideWhenLinked to \"%s\"",
|
||||
target.Name), owner)
|
||||
|
||||
if SERVER then
|
||||
-- lets send a net message to all clients so they add our DisplaySideBySideWhenLinked
|
||||
local msg = Networking.Start("luaDisplaySideBySide.add")
|
||||
msg.WriteUInt16(UShort(target.ID))
|
||||
Networking.Send(msg)
|
||||
end
|
||||
|
||||
linksDisplaySideBySide[item] = nil
|
||||
return
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
if CLIENT and Game.IsMultiplayer then
|
||||
Networking.Receive("luaDisplaySideBySide.add", function(msg)
|
||||
local target = Entity.FindEntityByID(msg.ReadUInt16())
|
||||
|
||||
target.DisplaySideBySideWhenLinked = true
|
||||
end)
|
||||
|
||||
Networking.Receive("luaDisplaySideBySide.remove", function(msg)
|
||||
local target = Entity.FindEntityByID(msg.ReadUInt16())
|
||||
|
||||
target.DisplaySideBySideWhenLinked = false
|
||||
end)
|
||||
end
|
||||
Reference in New Issue
Block a user