Files
2025-03-31 13:19:47 +02:00

5870 lines
253 KiB
Lua

EditGUI = {}
EditGUI.Path = ...
if not File.Exists(EditGUI.Path .. "/settings.json") then
File.Write(EditGUI.Path .. "/settings.json", json.serialize(dofile(EditGUI.Path .. "/Lua/defaultsettings.lua")))
end
EditGUI.Settings = json.parse(File.Read(EditGUI.Path .. "/settings.json"))
if not SERVER then
if not File.Exists(EditGUI.Path .. "/clientsidesettings.json") then
File.Write(EditGUI.Path .. "/clientsidesettings.json", json.serialize(dofile(EditGUI.Path .. "/Lua/defaultclientsidesettings.lua")))
end
EditGUI.ClientsideSettings = json.parse(File.Read(EditGUI.Path .. "/clientsidesettings.json"))
end
local network = dofile(EditGUI.Path .. "/Lua/networking.lua")
local findtarget = dofile(EditGUI.Path .. "/Lua/findtarget.lua")
LinkAdd = function(itemedit1, itemedit2)
itemedit1.AddLinked(itemedit2)
itemedit2.AddLinked(itemedit1)
end
LinkRemove = function(itemedit1, itemedit2)
itemedit1.RemoveLinked(itemedit2)
itemedit2.RemoveLinked(itemedit1)
end
if SERVER then
return
end
local check = true
local FindClientCharacter = function(character)
for key, value in pairs(Client.ClientList) do
if value.Character == character then
return value
end
end
end
EditGUI.AddMessage = function(text, client)
message = ChatMessage.Create("Lua Editor", text, ChatMessageType.Default, nil, nil)
message.Color = Color(255, 95, 31)
if CLIENT then
Game.ChatBox.AddMessage(message)
else
Game.SendDirectChatMessage(message, client)
end
end
frame = GUI.Frame(GUI.RectTransform(Vector2(1, 1)), nil)
frame.CanBeFocused = false
-- Attribute Draw Functions Start --
local DrawRequiredItems = function(component, key, list, height, relatedItemType, fieldName, optional, msgTag)
optional = optional or false
local relatedItemClass = LuaUserData.CreateStatic("Barotrauma.RelatedItem")
local requireditemslayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, height), list.Content.RectTransform), nil)
requireditemslayout.isHorizontal = true
requireditemslayout.Stretch = true
requireditemslayout.RelativeSpacing = 0.001
local requireditemstextblock = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), requireditemslayout.RectTransform), fieldName, nil, nil, GUI.Alignment.CenterLeft)
local requireditemstext = GUI.TextBox(GUI.RectTransform(Vector2(0.8, 1), requireditemslayout.RectTransform), "")
local function getRelatedItem()
local relatedItemsTable = component.requiredItems[relatedItemType]
if relatedItemsTable == nil then
return nil
end
return relatedItemsTable[1]
end
local relatedItem = getRelatedItem()
local joinedIdentifiers = ""
if relatedItem ~= nil then
joinedIdentifiers = relatedItem.JoinedIdentifiers
end
requireditemstext.Text = joinedIdentifiers
requireditemstext.OnTextChangedDelegate = function()
local relatedItem = getRelatedItem()
joinedIdentifiers = requireditemstext.Text
local shouldRelatedItemExist = joinedIdentifiers ~= ""
local hasRelatedItem = relatedItem ~= nil
if shouldRelatedItemExist then
if not hasRelatedItem then
local msgAttribute = ""
if msgTag and msgTag:match("^%s*$") == nil then
msgAttribute = " msg=\"" .. msgTag .."\""
end
local requiredItemSampleData = string.format([[<requireditem items="id_captain" type="%s" characterinventoryslottype="None" optional="%s" ignoreineditor="true" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false"%s />
]], tostring(relatedItemType), tostring(optional), msgAttribute)
local xml = XDocument.Parse(requiredItemSampleData).Root
local contentXml = ContentXElement(nil, xml) -- package is nil
relatedItem = relatedItemClass.__new(contentXml, "LuaEditorRequiredItem")
local tempRequiredItems = component.requiredItems
tempRequiredItems[relatedItemType] = {relatedItem}
component.requiredItems = tempRequiredItems
end
relatedItem.JoinedIdentifiers = joinedIdentifiers
else
if hasRelatedItem then
-- component.requiredItems = {} -- delete other types
-- component.requiredItems[relatedItemType] = nil -- doesn't work
local tempRequiredItems = {}
for requiredType, requiredTypeItems in pairs(component.requiredItems) do
if (requiredType ~= relatedItemType) then
tempRequiredItems[requiredType] = requiredTypeItems
end
end
component.requiredItems = tempRequiredItems
relatedItem = nil
end
end
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key ..".RequiredItems", component.requiredItems, "RequiredItems")
end
end
end
local DrawPickedRequired = function(component, key, list, height, optional, msgTag)
local relatedItemType = LuaUserData.CreateEnumTable("Barotrauma.RelatedItem+RelationType")
DrawRequiredItems(component, key, list, height, relatedItemType.Picked, "Picked Required", optional, msgTag)
end
local DrawEquippedRequired = function(component, key, list, height, optional, msgTag)
local relatedItemType = LuaUserData.CreateEnumTable("Barotrauma.RelatedItem+RelationType")
DrawRequiredItems(component, key, list, height, relatedItemType.Equipped, "Equipped Required", optional, msgTag)
end
-- Attribute Draw Functions End --
-- Main Component Start --
local MainComponentfunction = function()
if not menu then
menu = GUI.Frame(GUI.RectTransform(Vector2(0.55, 1.1), frame.RectTransform, GUI.Anchor.CenterRight), nil)
menu.CanBeFocused = false
menu.RectTransform.AbsoluteOffset = Point(0, -40)
menuContent = GUI.Frame(GUI.RectTransform(Vector2(0.45, 0.6), menu.RectTransform, GUI.Anchor.CenterRight))
end
menuList = GUI.ListBox(GUI.RectTransform(Vector2(0.93, 0.7), menuContent.RectTransform, GUI.Anchor.Center))
menuList.RectTransform.AbsoluteOffset = Point(0, -17)
itemList = GUI.ListBox(GUI.RectTransform(Vector2(1, 1), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
itemname = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.1), itemList.Content.RectTransform), "None", nil, nil, GUI.Alignment.Center)
itemname.TextColor = Color((255), (153), (153))
itemname.TextScale = 1.3
if EditGUI.Settings.spritedepth == true then
local spritedepthlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), itemList.Content.RectTransform), nil)
spritedepthlayout.isHorizontal = true
spritedepthlayout.Stretch = true
spritedepthlayout.RelativeSpacing = 0.001
local spritedepthtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), spritedepthlayout.RectTransform), "Sprite Depth", nil, nil, GUI.Alignment.CenterLeft)
spritedepth = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), spritedepthlayout.RectTransform), NumberType.Float)
spritedepth.DecimalsToDisplay = 3
spritedepth.MinValueFloat = 0.001
spritedepth.MaxValueFloat = 0.999
spritedepth.valueStep = 0.1
if itemedit then
spritedepth.FloatValue = itemedit.SpriteDepth
end
spritedepth.OnValueChanged = function ()
if itemedit then
itemedit.SpriteDepth = spritedepth.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "SpriteDepth", itemedit.SpriteDepth)
end
end
end
end
if EditGUI.Settings.rotation == true and targeting == "items" then
local rotationlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), itemList.Content.RectTransform), nil)
rotationlayout.isHorizontal = true
rotationlayout.Stretch = true
rotationlayout.RelativeSpacing = 0.001
local rotationtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), rotationlayout.RectTransform), "Rotation", nil, nil, GUI.Alignment.CenterLeft)
rotation = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), rotationlayout.RectTransform), NumberType.Int)
rotation.MinValueInt = 0
rotation.MaxValueInt = 360
rotation.valueStep = 10
if itemedit then
rotation.IntValue = itemedit.Rotation
end
rotation.OnValueChanged = function ()
if itemedit then
itemedit.Rotation = rotation.IntValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "Rotation", itemedit.Rotation)
end
end
end
end
if EditGUI.Settings.scale == true and targeting == "items" then
local scalelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), itemList.Content.RectTransform), nil)
scalelayout.isHorizontal = true
scalelayout.Stretch = true
scalelayout.RelativeSpacing = 0.001
local scaletext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), scalelayout.RectTransform), "Scale", nil, nil, GUI.Alignment.CenterLeft)
scale = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), scalelayout.RectTransform), NumberType.Float)
scale.DecimalsToDisplay = 3
scale.valueStep = 0.1
scale.MinValueFloat = EditGUI.Settings.scalemin
scale.MaxValueFloat = EditGUI.Settings.scalemax
if itemedit then
scale.FloatValue = itemedit.Scale
end
scale.OnValueChanged = function ()
if itemedit and scale.FloatValue <= scale.MaxValueFloat and scale.FloatValue >= scale.MinValueFloat then
itemedit.Scale = scale.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "Scale", itemedit.Scale)
end
end
end
end
if targeting ~= "items" then
local rectwidthlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), itemList.Content.RectTransform), nil)
rectwidthlayout.isHorizontal = true
rectwidthlayout.Stretch = true
rectwidthlayout.RelativeSpacing = 0.001
local rectwithtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), rectwidthlayout.RectTransform), "Width", nil, nil, GUI.Alignment.CenterLeft)
rectwidth = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), rectwidthlayout.RectTransform), NumberType.Float)
rectwidth.DecimalsToDisplay = 3
rectwidth.valueStep = 0.1
if itemedit then
rectwidth.FloatValue = itemedit.RectWidth
end
rectwidth.OnValueChanged = function ()
if itemedit then
itemedit.RectWidth = rectwidth.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "RectWidth", rectwidth.FloatValue)
end
end
end
end
if targeting ~= "items" then
local rectheightlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), itemList.Content.RectTransform), nil)
rectheightlayout.isHorizontal = true
rectheightlayout.Stretch = true
rectheightlayout.RelativeSpacing = 0.001
local rectheighttext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), rectheightlayout.RectTransform), "Height", nil, nil, GUI.Alignment.CenterLeft)
rectheight = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), rectheightlayout.RectTransform), NumberType.Float)
rectheight.DecimalsToDisplay = 3
rectheight.valueStep = 0.1
if itemedit then
rectheight.FloatValue = itemedit.RectHeight
end
rectheight.OnValueChanged = function ()
if itemedit then
itemedit.RectHeight = rectheight.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "RectHeight", rectheight.FloatValue)
end
end
end
end
if EditGUI.Settings.condition == true and targeting == "items" then
local conditionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), itemList.Content.RectTransform), nil)
conditionlayout.isHorizontal = true
conditionlayout.Stretch = true
conditionlayout.RelativeSpacing = 0.001
local conditiontext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), conditionlayout.RectTransform), "Condition", nil, nil, GUI.Alignment.CenterLeft)
condition = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), conditionlayout.RectTransform), NumberType.Float)
condition.MinValueFloat = 0
condition.MaxValueFloat = 100
condition.valueStep = 1
if itemedit then
condition.FloatValue = itemedit.Condition
end
condition.OnValueChanged = function ()
if itemedit then
itemedit.Condition = condition.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "Condition", condition.FloatValue)
end
end
end
end
if EditGUI.Settings.spritecolor == true and targeting == "items" or targeting == "walls" then
local colorlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.075), itemList.Content.RectTransform), nil)
colorlayout.isHorizontal = true
colorlayout.Stretch = true
colorlayout.RelativeSpacing = 0.01
local spritecolortext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), colorlayout.RectTransform), "Sprite Color", nil, nil, GUI.Alignment.CenterLeft)
local redtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "R", nil, nil, GUI.Alignment.Center)
red = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
local greentext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "G", nil, nil, GUI.Alignment.Center)
green = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
local bluetext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "B", nil, nil, GUI.Alignment.Center)
blue = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
red.MinValueInt = 0
red.MaxValueInt = 255
if itemedit then
red.IntValue = itemedit.SpriteColor.R
end
green.MinValueInt = 0
green.MaxValueInt = 255
if itemedit then
green.IntValue = itemedit.SpriteColor.G
end
blue.MinValueInt = 0
blue.MaxValueInt = 255
if itemedit then
blue.IntValue = itemedit.SpriteColor.B
end
if EditGUI.Settings.alpha == true then
local alphatext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "A", nil, nil, GUI.Alignment.Center)
alpha = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
alpha.MinValueInt = 0
alpha.MaxValueInt = 255
if itemedit then
alpha.IntValue = itemedit.SpriteColor.A
end
alpha.OnValueChanged = function ()
if itemedit and alpha.IntValue <= 255 and alpha.IntValue >= 0 then
itemedit.SpriteColor = Color(itemedit.SpriteColor.r, itemedit.SpriteColor.g, itemedit.SpriteColor.b, alpha.IntValue)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "SpriteColor", itemedit.SpriteColor, "Color")
end
end
end
end
red.OnValueChanged = function ()
if itemedit and red.IntValue <= 255 and red.IntValue >= 0 then
itemedit.SpriteColor = Color(red.IntValue, itemedit.SpriteColor.g, itemedit.SpriteColor.b, itemedit.SpriteColor.a)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "SpriteColor", itemedit.SpriteColor, "Color")
end
end
end
green.OnValueChanged = function ()
if itemedit and green.IntValue <= 255 and green.IntValue >= 0 then
itemedit.SpriteColor = Color(itemedit.SpriteColor.r, green.IntValue, itemedit.SpriteColor.b, itemedit.SpriteColor.a)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "SpriteColor", itemedit.SpriteColor, "Color")
end
end
end
blue.OnValueChanged = function ()
if itemedit and blue.IntValue <= 255 and blue.IntValue >= 0 then
itemedit.SpriteColor = Color(itemedit.SpriteColor.r, itemedit.SpriteColor.g, blue.IntValue, itemedit.SpriteColor.a)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "SpriteColor", itemedit.SpriteColor, "Color")
end
end
end
end
if EditGUI.Settings.tags == true and targeting == "items" then
local tagslayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), itemList.Content.RectTransform), nil)
tagslayout.isHorizontal = true
tagslayout.Stretch = true
tagslayout.RelativeSpacing = 0.001
local tagstextblock = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), tagslayout.RectTransform), "Tags", nil, nil, GUI.Alignment.CenterLeft)
tagstext = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), tagslayout.RectTransform), "")
if itemedit then
tagstext.Text = itemedit.Tags
end
tagstext.OnTextChangedDelegate = function()
if itemedit then
itemedit.Tags = tagstext.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "Tags", itemedit.Tags)
end
end
end
end
if EditGUI.Settings.description == true and targeting == "items" then
local descriptionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), itemList.Content.RectTransform), nil)
descriptionlayout.isHorizontal = true
descriptionlayout.Stretch = true
descriptionlayout.RelativeSpacing = 0.001
local descriptiontextblock = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), descriptionlayout.RectTransform), "Description", nil, nil, GUI.Alignment.CenterLeft)
descriptiontext = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 0.1), descriptionlayout.RectTransform), "")
if itemedit then
descriptiontext.Text = itemedit.Description
end
descriptiontext.OnTextChangedDelegate = function()
if itemedit then
itemedit.Description = descriptiontext.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "Description", itemedit.Description)
end
end
end
end
if EditGUI.Settings.noninteractable == true and targeting == "items" then
noninteractable = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), itemList.Content.RectTransform), "Non Interactable")
if itemedit then
noninteractable.Selected = itemedit.NonInteractable
end
noninteractable.OnSelected = function()
if itemedit then
itemedit.NonInteractable = noninteractable.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "NonInteractable", itemedit.NonInteractable)
end
end
end
end
if EditGUI.Settings.nonplayerteaminteractable == true and targeting == "items" then
nonplayerteaminteractable = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), itemList.Content.RectTransform), "Non-Player Team Interactable")
if itemedit then
nonplayerteaminteractable.Selected = itemedit.NonPlayerTeamInteractable
end
nonplayerteaminteractable.OnSelected = function()
if itemedit then
itemedit.NonPlayerTeamInteractable = nonplayerteaminteractable.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "NonPlayerTeamInteractable", itemedit.NonPlayerTeamInteractable)
end
end
end
end
if EditGUI.Settings.invulnerabletodamage == true and targeting == "items" then
invulnerabletodamage = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), itemList.Content.RectTransform), "Invulnerable to Damage")
if itemedit then
invulnerabletodamage.Selected = itemedit.InvulnerableToDamage
end
invulnerabletodamage.OnSelected = function()
if itemedit then
itemedit.InvulnerableToDamage = invulnerabletodamage.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "InvulnerableToDamage", itemedit.InvulnerableToDamage)
end
end
end
end
if EditGUI.Settings.displaysidebysidewhenlinked == true and targeting == "items" then
displaysidebysidewhenlinked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), itemList.Content.RectTransform), "Display Side By Side When Linked")
if itemedit then
displaysidebysidewhenlinked.Selected = itemedit.DisplaySideBySideWhenLinked
end
displaysidebysidewhenlinked.OnSelected = function()
if itemedit then
itemedit.DisplaySideBySideWhenLinked = displaysidebysidewhenlinked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "DisplaySideBySideWhenLinked", itemedit.DisplaySideBySideWhenLinked)
end
end
end
end
if EditGUI.Settings.hiddeningame == true and targeting == "items" then
hiddeningame = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), itemList.Content.RectTransform), "Hidden In Game")
if itemedit then
hiddeningame.Selected = itemedit.HiddenInGame
end
hiddeningame.OnSelected = function()
if itemedit then
itemedit.HiddenInGame = hiddeningame.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "HiddenInGame", itemedit.HiddenInGame)
end
end
end
end
if EditGUI.Settings.mirror == true then
local mirrorlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.04), itemList.Content.RectTransform), nil)
mirrorlayout.isHorizontal = true
mirrorlayout.RelativeSpacing = 0.002
local mirrorButtonx = GUI.Button(GUI.RectTransform(Vector2(0.499, 0.2), mirrorlayout.RectTransform), "Mirror X", nil, "GUIButtonSmall")
mirrorButtonx.OnClicked = function()
if itemedit then
if CLIENT and Game.IsMultiplayer then
mirrorx = Networking.Start("flipxnetwork")
mirrorx.WriteUInt16(UShort(itemedit.ID))
Networking.Send(mirrorx)
else
itemedit.FlipX(false)
end
end
end
local mirrorButtony = GUI.Button(GUI.RectTransform(Vector2(0.499, 0.2), mirrorlayout.RectTransform), "Mirror Y", nil, "GUIButtonSmall")
mirrorButtony.OnClicked = function()
if itemedit then
if CLIENT and Game.IsMultiplayer then
mirrory = Networking.Start("flipynetwork")
mirrory.WriteUInt16(UShort(itemedit.ID))
Networking.Send(mirrory)
else
itemedit.FlipY(false)
end
end
end
end
end
-- Main Component End --
-- LightComponent Component Start --
local LightComponentfunction = function(component, key)
if EditGUI.Settings.lightcomponent == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 1.2), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.07), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local rangelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.055), List.Content.RectTransform), nil)
rangelayout.isHorizontal = true
rangelayout.Stretch = true
rangelayout.RelativeSpacing = 0.001
local rangetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), rangelayout.RectTransform), "Range", nil, nil, GUI.Alignment.CenterLeft)
local range = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), rangelayout.RectTransform), NumberType.Float)
range.FloatValue = component.Range
range.MinValueFloat = 0
range.MaxValueFloat = 2048
range.valueStep = 10
range.OnValueChanged = function()
component.Range = range.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Range", component.Range)
end
end
local flickerlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.055), List.Content.RectTransform), nil)
flickerlayout.isHorizontal = true
flickerlayout.Stretch = true
flickerlayout.RelativeSpacing = 0.001
local flickertext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), flickerlayout.RectTransform), "Flicker", nil, nil, GUI.Alignment.CenterLeft)
local flicker = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), flickerlayout.RectTransform), NumberType.Float)
flicker.FloatValue = component.Flicker
flicker.OnValueChanged = function()
component.Flicker = flicker.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Flicker", component.Flicker)
end
end
local flickerspeedlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.055), List.Content.RectTransform), nil)
flickerspeedlayout.isHorizontal = true
flickerspeedlayout.Stretch = true
flickerspeedlayout.RelativeSpacing = 0.001
local flickerspeedtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), flickerspeedlayout.RectTransform), "Flicker Speed", nil, nil, GUI.Alignment.CenterLeft)
local flickerspeed = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), flickerspeedlayout.RectTransform), NumberType.Float)
flickerspeed.FloatValue = component.FlickerSpeed
flickerspeed.OnValueChanged = function()
component.FlickerSpeed = flickerspeed.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FlickerSpeed", component.FlickerSpeed)
end
end
local pulsefrequencylayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.055), List.Content.RectTransform), nil)
pulsefrequencylayout.isHorizontal = true
pulsefrequencylayout.Stretch = true
pulsefrequencylayout.RelativeSpacing = 0.001
local pulsefrequencytext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pulsefrequencylayout.RectTransform), "Pulse Frequency", nil, nil, GUI.Alignment.CenterLeft)
local pulsefrequency = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pulsefrequencylayout.RectTransform), NumberType.Float)
pulsefrequency.FloatValue = component.PulseFrequency
pulsefrequency.OnValueChanged = function()
component.PulseFrequency = pulsefrequency.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PulseFrequency", component.PulseFrequency)
end
end
local pulseamountlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.055), List.Content.RectTransform), nil)
pulseamountlayout.isHorizontal = true
pulseamountlayout.Stretch = true
pulseamountlayout.RelativeSpacing = 0.001
local pulseamounttext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pulseamountlayout.RectTransform), "Pulse Amount", nil, nil, GUI.Alignment.CenterLeft)
local pulseamount = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pulseamountlayout.RectTransform), NumberType.Float)
pulseamount.DecimalsToDisplay = 2
pulseamount.FloatValue = component.PulseAmount
pulseamount.MinValueFloat = 0
pulseamount.MaxValueFloat = 1
pulseamount.valueStep = 0.1
pulseamount.OnValueChanged = function()
component.PulseAmount = pulseamount.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PulseAmount", component.PulseAmount)
end
end
local blinkfrequencylayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.055), List.Content.RectTransform), nil)
blinkfrequencylayout.isHorizontal = true
blinkfrequencylayout.Stretch = true
blinkfrequencylayout.RelativeSpacing = 0.001
local blinkfrequencytext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), blinkfrequencylayout.RectTransform), "Blink Frequency", nil, nil, GUI.Alignment.CenterLeft)
local blinkfrequency = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), blinkfrequencylayout.RectTransform), NumberType.Float)
blinkfrequency.FloatValue = component.BlinkFrequency
blinkfrequency.OnValueChanged = function()
component.BlinkFrequency = blinkfrequency.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".BlinkFrequency", component.BlinkFrequency)
end
end
local colorlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.075), List.Content.RectTransform), nil)
colorlayout.isHorizontal = true
colorlayout.Stretch = true
colorlayout.RelativeSpacing = 0.01
local colortext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), colorlayout.RectTransform), "Color", nil, nil, GUI.Alignment.CenterLeft)
local redtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "R", nil, nil, GUI.Alignment.Center)
local red = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
red.IntValue = component.lightColor.R
red.MinValueInt = 0
red.MaxValueInt = 255
local greentext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "G", nil, nil, GUI.Alignment.Center)
local green = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
green.IntValue = component.lightColor.G
green.MinValueInt = 0
green.MaxValueInt = 255
local bluetext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "B", nil, nil, GUI.Alignment.Center)
local blue = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
blue.IntValue = component.lightColor.B
blue.MinValueInt = 0
blue.MaxValueInt = 255
local alphatext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "A", nil, nil, GUI.Alignment.Center)
local alpha = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
alpha.IntValue = component.lightColor.A
alpha.MinValueInt = 0
alpha.MaxValueInt = 255
red.OnValueChanged = function ()
if red.IntValue <= 255 then
component.lightColor = Color(red.IntValue, green.IntValue, blue.IntValue, alpha.IntValue)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".lightColor", component.lightColor, "Color")
end
end
end
green.OnValueChanged = function ()
if green.IntValue <= 255 then
component.lightColor = Color(red.IntValue, green.IntValue, blue.IntValue, alpha.IntValue)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".lightColor", component.lightColor, "Color")
end
end
end
blue.OnValueChanged = function ()
if blue.IntValue <= 255 then
component.lightColor = Color(red.IntValue, green.IntValue, blue.IntValue, alpha.IntValue)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".lightColor", component.lightColor, "Color")
end
end
end
alpha.OnValueChanged = function ()
if alpha.IntValue <= 255 then
component.lightColor = Color(red.IntValue, green.IntValue, blue.IntValue, alpha.IntValue)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".lightColor", component.lightColor, "Color")
end
end
end
local minvoltagelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.055), List.Content.RectTransform), nil)
minvoltagelayout.isHorizontal = true
minvoltagelayout.Stretch = true
minvoltagelayout.RelativeSpacing = 0.001
local minvoltagetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), minvoltagelayout.RectTransform), "Min Voltage", nil, nil, GUI.Alignment.CenterLeft)
local minvoltage = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), minvoltagelayout.RectTransform), NumberType.Float)
minvoltage.FloatValue = component.MinVoltage
minvoltage.OnValueChanged = function()
component.MinVoltage = minvoltage.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MinVoltage", component.MinVoltage)
end
end
local powerconsumptionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.055), List.Content.RectTransform), nil)
powerconsumptionlayout.isHorizontal = true
powerconsumptionlayout.Stretch = true
powerconsumptionlayout.RelativeSpacing = 0.001
local powerconsumptiontext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), powerconsumptionlayout.RectTransform), "Power Consumption", nil, nil, GUI.Alignment.CenterLeft)
local powerconsumption = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), powerconsumptionlayout.RectTransform), NumberType.Float)
powerconsumption.FloatValue = component.PowerConsumption
powerconsumption.OnValueChanged = function()
component.PowerConsumption = powerconsumption.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PowerConsumption", component.PowerConsumption)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.055), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local castshadows = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Cast Shadows")
castshadows.Selected = component.CastShadows
castshadows.OnSelected = function()
component.CastShadows = castshadows.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CastShadows", component.CastShadows)
end
end
local drawbehindsubs = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Draw Behind Subs")
drawbehindsubs.Selected = component.DrawBehindSubs
drawbehindsubs.OnSelected = function()
component.DrawBehindSubs = drawbehindsubs.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".DrawBehindSubs", component.DrawBehindSubs)
end
end
local ison = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Is On")
ison.Selected = component.IsOn
ison.OnSelected = function()
component.IsOn = ison.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".IsOn", component.IsOn)
end
end
local vulnerabletoemp = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Vulnerable To EMP")
vulnerabletoemp.Selected = component.VulnerableToEMP
vulnerabletoemp.OnSelected = function()
component.VulnerableToEMP = vulnerabletoemp.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".VulnerableToEMP", component.VulnerableToEMP)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.05), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- LightComponent Component End --
-- Holdable Component Start --
local Holdablefunction = function(component, key)
if EditGUI.Settings.holdable == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.46), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local spritedepthwhendroppedlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.18), List.Content.RectTransform), nil)
spritedepthwhendroppedlayout.isHorizontal = true
spritedepthwhendroppedlayout.Stretch = true
spritedepthwhendroppedlayout.RelativeSpacing = 0.001
local spritedepthwhendroppedtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), spritedepthwhendroppedlayout.RectTransform), "Sprite Depth", nil, nil, GUI.Alignment.CenterLeft)
local spritedepthwhendropped = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), spritedepthwhendroppedlayout.RectTransform), NumberType.Float)
spritedepthwhendropped.DecimalsToDisplay = 3
spritedepthwhendropped.FloatValue = component.SpriteDepthWhenDropped
spritedepthwhendropped.MinValueFloat = 0.001
spritedepthwhendropped.MaxValueFloat = 0.999
spritedepthwhendropped.valueStep = 0.1
spritedepthwhendropped.OnValueChanged = function ()
component.SpriteDepthWhenDropped = spritedepthwhendropped.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".SpriteDepthWhenDropped", component.SpriteDepthWhenDropped)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.18), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.145), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Holdable Component End --
-- Connection Panel Component Start --
local ConnectionPanelfunction = function(component, key)
if EditGUI.Settings.connectionpanel == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.48), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
DrawEquippedRequired(component, key, List, 0.12, false)
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.12), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local locked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Locked")
locked.Selected = component.Locked
locked.OnSelected = function()
component.Locked = locked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Locked", component.Locked)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.155), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Connection Panel Component End --
-- Fabricator Component Start --
local Fabricatorfunction = function(component, key)
if EditGUI.Settings.fabricator == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.58), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local minvoltagelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.12), List.Content.RectTransform), nil)
minvoltagelayout.isHorizontal = true
minvoltagelayout.Stretch = true
minvoltagelayout.RelativeSpacing = 0.001
local minvoltagetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), minvoltagelayout.RectTransform), "Min Voltage", nil, nil, GUI.Alignment.CenterLeft)
local minvoltage = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), minvoltagelayout.RectTransform), NumberType.Float)
minvoltage.FloatValue = component.MinVoltage
minvoltage.OnValueChanged = function()
component.MinVoltage = minvoltage.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MinVoltage", component.MinVoltage)
end
end
local powerconsumptionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.12), List.Content.RectTransform), nil)
powerconsumptionlayout.isHorizontal = true
powerconsumptionlayout.Stretch = true
powerconsumptionlayout.RelativeSpacing = 0.001
local powerconsumptiontext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), powerconsumptionlayout.RectTransform), "Power Consumption", nil, nil, GUI.Alignment.CenterLeft)
local powerconsumption = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), powerconsumptionlayout.RectTransform), NumberType.Float)
powerconsumption.FloatValue = component.PowerConsumption
powerconsumption.OnValueChanged = function()
component.PowerConsumption = powerconsumption.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PowerConsumption", component.PowerConsumption)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.12), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local vulnerabletoemp = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Vulnerable To EMP")
vulnerabletoemp.Selected = component.VulnerableToEMP
vulnerabletoemp.OnSelected = function()
component.VulnerableToEMP = vulnerabletoemp.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".VulnerableToEMP", component.VulnerableToEMP)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.105), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Fabricator Component End --
-- Deconstructor Component Start --
local Deconstructorfunction = function(component, key)
if EditGUI.Settings.deconstructor == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.66), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local deconstructionspeedlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
deconstructionspeedlayout.isHorizontal = true
deconstructionspeedlayout.Stretch = true
deconstructionspeedlayout.RelativeSpacing = 0.001
local deconstructionspeedtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), deconstructionspeedlayout.RectTransform), "Deconstruction Speed", nil, nil, GUI.Alignment.CenterLeft)
local deconstructionspeed = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), deconstructionspeedlayout.RectTransform), NumberType.Float)
deconstructionspeed.FloatValue = component.DeconstructionSpeed
deconstructionspeed.OnValueChanged = function()
component.DeconstructionSpeed = deconstructionspeed.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".DeconstructionSpeed", component.DeconstructionSpeed)
end
end
local minvoltagelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
minvoltagelayout.isHorizontal = true
minvoltagelayout.Stretch = true
minvoltagelayout.RelativeSpacing = 0.001
local minvoltagetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), minvoltagelayout.RectTransform), "Min Voltage", nil, nil, GUI.Alignment.CenterLeft)
local minvoltage = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), minvoltagelayout.RectTransform), NumberType.Float)
minvoltage.FloatValue = component.MinVoltage
minvoltage.OnValueChanged = function()
component.MinVoltage = minvoltage.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MinVoltage", component.MinVoltage)
end
end
local powerconsumptionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
powerconsumptionlayout.isHorizontal = true
powerconsumptionlayout.Stretch = true
powerconsumptionlayout.RelativeSpacing = 0.001
local powerconsumptiontext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), powerconsumptionlayout.RectTransform), "Power Consumption", nil, nil, GUI.Alignment.CenterLeft)
local powerconsumption = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), powerconsumptionlayout.RectTransform), NumberType.Float)
powerconsumption.FloatValue = component.PowerConsumption
powerconsumption.OnValueChanged = function()
component.PowerConsumption = powerconsumption.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PowerConsumption", component.PowerConsumption)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local vulnerabletoemp = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Vulnerable To EMP")
vulnerabletoemp.Selected = component.VulnerableToEMP
vulnerabletoemp.OnSelected = function()
component.VulnerableToEMP = vulnerabletoemp.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".VulnerableToEMP", component.VulnerableToEMP)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Deconstructor Component End --
-- Reactor Component Start --
local Reactorfunction = function(component, key)
if EditGUI.Settings.reactor == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.925), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local maxpoweroutputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.075), List.Content.RectTransform), nil)
maxpoweroutputlayout.isHorizontal = true
maxpoweroutputlayout.Stretch = true
maxpoweroutputlayout.RelativeSpacing = 0.001
local maxpoweroutputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxpoweroutputlayout.RectTransform), "Max Power Output", nil, nil, GUI.Alignment.CenterLeft)
local maxpoweroutput = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), maxpoweroutputlayout.RectTransform), NumberType.Float)
maxpoweroutput.FloatValue = component.MaxPowerOutput
maxpoweroutput.OnValueChanged = function()
component.MaxPowerOutput = maxpoweroutput.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MaxPowerOutput", component.MaxPowerOutput)
end
end
local meltdowndelaylayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.075), List.Content.RectTransform), nil)
meltdowndelaylayout.isHorizontal = true
meltdowndelaylayout.Stretch = true
meltdowndelaylayout.RelativeSpacing = 0.001
local meltdowndelaytext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), meltdowndelaylayout.RectTransform), "Meltdown Delay", nil, nil, GUI.Alignment.CenterLeft)
local meltdowndelay = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), meltdowndelaylayout.RectTransform), NumberType.Float)
meltdowndelay.FloatValue = component.MeltdownDelay
meltdowndelay.OnValueChanged = function()
component.MeltdownDelay = meltdowndelay.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MeltdownDelay", component.MeltdownDelay)
end
end
local firedelaylayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.075), List.Content.RectTransform), nil)
firedelaylayout.isHorizontal = true
firedelaylayout.Stretch = true
firedelaylayout.RelativeSpacing = 0.001
local firedelaytext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), firedelaylayout.RectTransform), "Fire Delay", nil, nil, GUI.Alignment.CenterLeft)
local firedelay = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), firedelaylayout.RectTransform), NumberType.Float)
firedelay.FloatValue = component.FireDelay
firedelay.OnValueChanged = function()
component.FireDelay = firedelay.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FireDelay", component.FireDelay)
end
end
local fuelconsumptionratelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.075), List.Content.RectTransform), nil)
fuelconsumptionratelayout.isHorizontal = true
fuelconsumptionratelayout.Stretch = true
fuelconsumptionratelayout.RelativeSpacing = 0.001
local fuelconsumptionratetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), fuelconsumptionratelayout.RectTransform), "Fuel Consumption Rate", nil, nil, GUI.Alignment.CenterLeft)
local fuelconsumptionrate = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), fuelconsumptionratelayout.RectTransform), NumberType.Float)
fuelconsumptionrate.FloatValue = component.FuelConsumptionRate
fuelconsumptionrate.OnValueChanged = function()
component.FuelConsumptionRate = fuelconsumptionrate.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FuelConsumptionRate", component.FuelConsumptionRate)
end
end
local minvoltagelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
minvoltagelayout.isHorizontal = true
minvoltagelayout.Stretch = true
minvoltagelayout.RelativeSpacing = 0.001
local minvoltagetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), minvoltagelayout.RectTransform), "Min Voltage", nil, nil, GUI.Alignment.CenterLeft)
local minvoltage = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), minvoltagelayout.RectTransform), NumberType.Float)
minvoltage.FloatValue = component.MinVoltage
minvoltage.OnValueChanged = function()
component.MinVoltage = minvoltage.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MinVoltage", component.MinVoltage)
end
end
local powerconsumptionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.075), List.Content.RectTransform), nil)
powerconsumptionlayout.isHorizontal = true
powerconsumptionlayout.Stretch = true
powerconsumptionlayout.RelativeSpacing = 0.001
local powerconsumptiontext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), powerconsumptionlayout.RectTransform), "Power Consumption", nil, nil, GUI.Alignment.CenterLeft)
local powerconsumption = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), powerconsumptionlayout.RectTransform), NumberType.Float)
powerconsumption.FloatValue = component.PowerConsumption
powerconsumption.OnValueChanged = function()
component.PowerConsumption = powerconsumption.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PowerConsumption", component.PowerConsumption)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.075), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local explosiondamagesothersubs = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Explosion Damages Other Subs")
explosiondamagesothersubs.Selected = component.ExplosionDamagesOtherSubs
explosiondamagesothersubs.OnSelected = function()
component.ExplosionDamagesOtherSubs = explosiondamagesothersubs.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".ExplosionDamagesOtherSubs", component.ExplosionDamagesOtherSubs)
end
end
local vulnerabletoemp = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Vulnerable To EMP")
vulnerabletoemp.Selected = component.VulnerableToEMP
vulnerabletoemp.OnSelected = function()
component.VulnerableToEMP = vulnerabletoemp.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".VulnerableToEMP", component.VulnerableToEMP)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.075), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Reactor Component End --
-- OxygenGenerator Component Start --
local OxygenGeneratorfunction = function(component, key)
if EditGUI.Settings.oxygengenerator == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.66), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local generatedamountlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
generatedamountlayout.isHorizontal = true
generatedamountlayout.Stretch = true
generatedamountlayout.RelativeSpacing = 0.001
local generatedamounttext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), generatedamountlayout.RectTransform), "Generated Amount", nil, nil, GUI.Alignment.CenterLeft)
local generatedamount = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), generatedamountlayout.RectTransform), NumberType.Float)
generatedamount.FloatValue = component.GeneratedAmount
generatedamount.OnValueChanged = function()
component.GeneratedAmount = generatedamount.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".GeneratedAmount", component.GeneratedAmount)
end
end
local minvoltagelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
minvoltagelayout.isHorizontal = true
minvoltagelayout.Stretch = true
minvoltagelayout.RelativeSpacing = 0.001
local minvoltagetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), minvoltagelayout.RectTransform), "Min Voltage", nil, nil, GUI.Alignment.CenterLeft)
local minvoltage = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), minvoltagelayout.RectTransform), NumberType.Float)
minvoltage.FloatValue = component.MinVoltage
minvoltage.OnValueChanged = function()
component.MinVoltage = minvoltage.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MinVoltage", component.MinVoltage)
end
end
local powerconsumptionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
powerconsumptionlayout.isHorizontal = true
powerconsumptionlayout.Stretch = true
powerconsumptionlayout.RelativeSpacing = 0.001
local powerconsumptiontext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), powerconsumptionlayout.RectTransform), "Power Consumption", nil, nil, GUI.Alignment.CenterLeft)
local powerconsumption = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), powerconsumptionlayout.RectTransform), NumberType.Float)
powerconsumption.FloatValue = component.PowerConsumption
powerconsumption.OnValueChanged = function()
component.PowerConsumption = powerconsumption.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PowerConsumption", component.PowerConsumption)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local vulnerabletoemp = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Vulnerable To EMP")
vulnerabletoemp.Selected = component.VulnerableToEMP
vulnerabletoemp.OnSelected = function()
component.VulnerableToEMP = vulnerabletoemp.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".VulnerableToEMP", component.VulnerableToEMP)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- OxygenGenerator Component End --
-- Sonar Component Start --
local Sonarfunction = function(component, key)
if EditGUI.Settings.sonar == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.78), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local usetransdusers = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.088), List.Content.RectTransform), "Use Transdusers")
usetransdusers.Selected = component.UseTransducers
usetransdusers.OnSelected = function()
component.UseTransducers = usetransdusers.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".UseTransducers", component.UseTransducers)
end
end
local centerontransducers = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.088), List.Content.RectTransform), "Center On Transdusers")
centerontransducers.Selected = component.CenterOnTransducers
centerontransducers.OnSelected = function()
component.CenterOnTransducers = centerontransducers.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CenterOnTransducers", component.CenterOnTransducers)
end
end
local hasmineralscanner = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.088), List.Content.RectTransform), "Has Mineral Scanner")
hasmineralscanner.Selected = component.HasMineralScanner
hasmineralscanner.OnSelected = function()
component.HasMineralScanner = hasmineralscanner.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".HasMineralScanner", component.HasMineralScanner)
end
end
local minvoltagelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.088), List.Content.RectTransform), nil)
minvoltagelayout.isHorizontal = true
minvoltagelayout.Stretch = true
minvoltagelayout.RelativeSpacing = 0.001
local minvoltagetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), minvoltagelayout.RectTransform), "Min Voltage", nil, nil, GUI.Alignment.CenterLeft)
local minvoltage = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), minvoltagelayout.RectTransform), NumberType.Float)
minvoltage.FloatValue = component.MinVoltage
minvoltage.OnValueChanged = function()
component.MinVoltage = minvoltage.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MinVoltage", component.MinVoltage)
end
end
local powerconsumptionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.088), List.Content.RectTransform), nil)
powerconsumptionlayout.isHorizontal = true
powerconsumptionlayout.Stretch = true
powerconsumptionlayout.RelativeSpacing = 0.001
local powerconsumptiontext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), powerconsumptionlayout.RectTransform), "Power Consumption", nil, nil, GUI.Alignment.CenterLeft)
local powerconsumption = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), powerconsumptionlayout.RectTransform), NumberType.Float)
powerconsumption.FloatValue = component.PowerConsumption
powerconsumption.OnValueChanged = function()
component.PowerConsumption = powerconsumption.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PowerConsumption", component.PowerConsumption)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.088), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local vulnerabletoemp = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.088), List.Content.RectTransform), "Vulnerable To EMP")
vulnerabletoemp.Selected = component.VulnerableToEMP
vulnerabletoemp.OnSelected = function()
component.VulnerableToEMP = vulnerabletoemp.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".VulnerableToEMP", component.VulnerableToEMP)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.088), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.088), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.088), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Sonar Component End --
-- Repairable Component Start --
local Repairablefunction = function(component, key)
if EditGUI.Settings.repairable == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.85), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.115), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
DrawEquippedRequired(component, key, List, 0.08, false)
local deteriorationspeedlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
deteriorationspeedlayout.isHorizontal = true
deteriorationspeedlayout.Stretch = true
deteriorationspeedlayout.RelativeSpacing = 0.001
local deteriorationspeedtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), deteriorationspeedlayout.RectTransform), "Deterioration Speed", nil, nil, GUI.Alignment.CenterLeft)
local deteriorationspeed = GUI.NumberInput(GUI.RectTransform(Vector2(1, 1), deteriorationspeedlayout.RectTransform), NumberType.Float)
deteriorationspeed.FloatValue = component.DeteriorationSpeed
deteriorationspeed.MinValueFloat = 0
deteriorationspeed.MaxValueFloat = 100
deteriorationspeed.valueStep = 1
deteriorationspeed.OnValueChanged = function ()
component.DeteriorationSpeed = deteriorationspeed.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".DeteriorationSpeed", component.DeteriorationSpeed)
end
end
local mindeteriorationdelaylayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
mindeteriorationdelaylayout.isHorizontal = true
mindeteriorationdelaylayout.Stretch = true
mindeteriorationdelaylayout.RelativeSpacing = 0.001
local mindeteriorationdelaytext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), mindeteriorationdelaylayout.RectTransform), "Min Deterioration Delay", nil, nil, GUI.Alignment.CenterLeft)
local mindeteriorationdelay = GUI.NumberInput(GUI.RectTransform(Vector2(1, 1), mindeteriorationdelaylayout.RectTransform), NumberType.Float)
mindeteriorationdelay.DecimalsToDisplay = 2
mindeteriorationdelay.FloatValue = component.MinDeteriorationDelay
mindeteriorationdelay.MinValueFloat = 0
mindeteriorationdelay.MaxValueFloat = 1000
mindeteriorationdelay.valueStep = 10
mindeteriorationdelay.OnValueChanged = function ()
component.MinDeteriorationDelay = mindeteriorationdelay.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MinDeteriorationDelay", component.MinDeteriorationDelay)
end
end
local maxdeteriorationdelaylayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
maxdeteriorationdelaylayout.isHorizontal = true
maxdeteriorationdelaylayout.Stretch = true
maxdeteriorationdelaylayout.RelativeSpacing = 0.001
local maxdeteriorationdelaytext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxdeteriorationdelaylayout.RectTransform), "Max Deterioration Delay", nil, nil, GUI.Alignment.CenterLeft)
local maxdeteriorationdelay = GUI.NumberInput(GUI.RectTransform(Vector2(1, 1), maxdeteriorationdelaylayout.RectTransform), NumberType.Float)
maxdeteriorationdelay.DecimalsToDisplay = 2
maxdeteriorationdelay.FloatValue = component.MaxDeteriorationDelay
maxdeteriorationdelay.MinValueFloat = 0
maxdeteriorationdelay.MaxValueFloat = 1000
maxdeteriorationdelay.valueStep = 10
maxdeteriorationdelay.OnValueChanged = function ()
component.MaxDeteriorationDelay = maxdeteriorationdelay.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MaxDeteriorationDelay", component.MaxDeteriorationDelay)
end
end
local mindeteriorationconditionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
mindeteriorationconditionlayout.isHorizontal = true
mindeteriorationconditionlayout.Stretch = true
mindeteriorationconditionlayout.RelativeSpacing = 0.001
local mindeteriorationconditiontext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), mindeteriorationconditionlayout.RectTransform), "Min Deterioration Condition", nil, nil, GUI.Alignment.CenterLeft)
local mindeteriorationcondition = GUI.NumberInput(GUI.RectTransform(Vector2(1, 1), mindeteriorationconditionlayout.RectTransform), NumberType.Float)
mindeteriorationcondition.FloatValue = component.MinDeteriorationCondition
mindeteriorationcondition.MinValueFloat = 0
mindeteriorationcondition.MaxValueFloat = 100
mindeteriorationcondition.valueStep = 1
mindeteriorationcondition.OnValueChanged = function ()
component.MinDeteriorationCondition = mindeteriorationcondition.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MinDeteriorationCondition", component.MinDeteriorationCondition)
end
end
local repairthresholdlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
repairthresholdlayout.isHorizontal = true
repairthresholdlayout.Stretch = true
repairthresholdlayout.RelativeSpacing = 0.001
local repairthresholdtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), repairthresholdlayout.RectTransform), "Repair Threshold", nil, nil, GUI.Alignment.CenterLeft)
local repairthreshold = GUI.NumberInput(GUI.RectTransform(Vector2(1, 1), repairthresholdlayout.RectTransform), NumberType.Float)
repairthreshold.FloatValue = component.RepairThreshold
repairthreshold.MinValueFloat = 0
repairthreshold.MaxValueFloat = 100
repairthreshold.valueStep = 1
repairthreshold.OnValueChanged = function ()
component.RepairThreshold = repairthreshold.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".RepairThreshold", component.RepairThreshold)
end
end
local fixdurationlowskilllayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
fixdurationlowskilllayout.isHorizontal = true
fixdurationlowskilllayout.Stretch = true
fixdurationlowskilllayout.RelativeSpacing = 0.001
local fixdurationlowskilltext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), fixdurationlowskilllayout.RectTransform), "Fix Duration Low Skill", nil, nil, GUI.Alignment.CenterLeft)
local fixdurationlowskill = GUI.NumberInput(GUI.RectTransform(Vector2(1, 1), fixdurationlowskilllayout.RectTransform), NumberType.Float)
fixdurationlowskill.FloatValue = component.FixDurationLowSkill
fixdurationlowskill.MinValueFloat = 0
fixdurationlowskill.MaxValueFloat = 100
fixdurationlowskill.valueStep = 1
fixdurationlowskill.OnValueChanged = function ()
component.FixDurationLowSkill = fixdurationlowskill.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FixDurationLowSkill", component.FixDurationLowSkill)
end
end
local fixdurationhighskilllayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
fixdurationhighskilllayout.isHorizontal = true
fixdurationhighskilllayout.Stretch = true
fixdurationhighskilllayout.RelativeSpacing = 0.001
local fixdurationhighskilltext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), fixdurationhighskilllayout.RectTransform), "Fix Duration High Skill", nil, nil, GUI.Alignment.CenterLeft)
local fixdurationhighskill = GUI.NumberInput(GUI.RectTransform(Vector2(1, 1), fixdurationhighskilllayout.RectTransform), NumberType.Float)
fixdurationhighskill.FloatValue = component.FixDurationHighSkill
fixdurationhighskill.MinValueFloat = 0
fixdurationhighskill.MaxValueFloat = 100
fixdurationhighskill.valueStep = 1
fixdurationhighskill.OnValueChanged = function ()
component.FixDurationHighSkill = fixdurationhighskill.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FixDurationHighSkill", component.FixDurationHighSkill)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Repairable Component End --
-- Power Transfer Component Start --
local PowerTransferfunction = function(component, key)
if EditGUI.Settings.powertransfer == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.66), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local overloadvoltagelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
overloadvoltagelayout.isHorizontal = true
overloadvoltagelayout.Stretch = true
overloadvoltagelayout.RelativeSpacing = 0.001
local overloadvoltagetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), overloadvoltagelayout.RectTransform), "Overload Voltage", nil, nil, GUI.Alignment.CenterLeft)
local overloadvoltage = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), overloadvoltagelayout.RectTransform), NumberType.Float)
overloadvoltage.FloatValue = component.OverloadVoltage
overloadvoltage.OnValueChanged = function()
component.OverloadVoltage = overloadvoltage.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".OverloadVoltage", component.OverloadVoltage)
end
end
local fireprobabilitylayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
fireprobabilitylayout.isHorizontal = true
fireprobabilitylayout.Stretch = true
fireprobabilitylayout.RelativeSpacing = 0.001
local fireprobabilitytext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), fireprobabilitylayout.RectTransform), "Fire Probability", nil, nil, GUI.Alignment.CenterLeft)
local fireprobability = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), fireprobabilitylayout.RectTransform), NumberType.Float)
fireprobability.MinValueFloat = 0
fireprobability.MaxValueFloat = 1
fireprobability.valueStep = 0.1
fireprobability.FloatValue = component.FireProbability
fireprobability.OnValueChanged = function()
component.FireProbability = fireprobability.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FireProbability", component.FireProbability)
end
end
local minvoltagelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
minvoltagelayout.isHorizontal = true
minvoltagelayout.Stretch = true
minvoltagelayout.RelativeSpacing = 0.001
local minvoltagetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), minvoltagelayout.RectTransform), "Min Voltage", nil, nil, GUI.Alignment.CenterLeft)
local minvoltage = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), minvoltagelayout.RectTransform), NumberType.Float)
minvoltage.FloatValue = component.MinVoltage
minvoltage.OnValueChanged = function()
component.MinVoltage = minvoltage.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MinVoltage", component.MinVoltage)
end
end
local powerconsumptionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
powerconsumptionlayout.isHorizontal = true
powerconsumptionlayout.Stretch = true
powerconsumptionlayout.RelativeSpacing = 0.001
local powerconsumptiontext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), powerconsumptionlayout.RectTransform), "Power Consumption", nil, nil, GUI.Alignment.CenterLeft)
local powerconsumption = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), powerconsumptionlayout.RectTransform), NumberType.Float)
powerconsumption.FloatValue = component.PowerConsumption
powerconsumption.OnValueChanged = function()
component.PowerConsumption = powerconsumption.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PowerConsumption", component.PowerConsumption)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbeoverloaded = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Overloaded")
canbeoverloaded.Selected = component.CanBeOverloaded
canbeoverloaded.OnSelected = function()
component.CanBeOverloaded = canbeoverloaded.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBeOverloaded", component.CanBeOverloaded)
end
end
local vulnerabletoemp = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Vulnerable To EMP")
vulnerabletoemp.Selected = component.VulnerableToEMP
vulnerabletoemp.OnSelected = function()
component.VulnerableToEMP = vulnerabletoemp.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".VulnerableToEMP", component.VulnerableToEMP)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Power Transfer Component End --
-- Item Container Component Start --
local ItemContainerfunction = function(component, key)
if EditGUI.Settings.itemcontainer == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.6), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
DrawPickedRequired(component, key, List, 0.18, false, "ItemMsgUnauthorizedAccess")
local containablerestrictionslayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.145), List.Content.RectTransform), nil)
containablerestrictionslayout.isHorizontal = true
containablerestrictionslayout.Stretch = true
containablerestrictionslayout.RelativeSpacing = 0.001
local containablerestrictionstext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), containablerestrictionslayout.RectTransform), "Containable Tags", nil, nil, GUI.Alignment.CenterLeft)
local containablerestrictions = GUI.TextBox(GUI.RectTransform(Vector2(0.8, 1), containablerestrictionslayout.RectTransform), "")
containablerestrictions.text = component.ContainableRestrictions
containablerestrictions.OnTextChangedDelegate = function()
component.ContainableRestrictions = containablerestrictions.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".ContainableRestrictions", component.ContainableRestrictions)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.18), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.6), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.145), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Item Container Component End --
-- Door Component Start --
local Doorfunction = function(component, key)
if EditGUI.Settings.door == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.5), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.172), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
DrawPickedRequired(component, key, List, 0.138, true, "ItemMsgUnauthorizedAccess")
DrawEquippedRequired(component, key, List, 0.138, true)
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.138), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.138), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.138), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.138), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Door Component End --
-- Label Component Start --
local ItemLabelfunction = function(component, key)
if EditGUI.Settings.itemlabel == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.65), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.15), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local textlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
textlayout.isHorizontal = true
textlayout.Stretch = true
textlayout.RelativeSpacing = 0.001
local texttext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), textlayout.RectTransform), "Text", nil, nil, GUI.Alignment.CenterLeft)
local text = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), textlayout.RectTransform), "")
text.Text = component.Text
text.OnTextChangedDelegate = function()
component.Text = text.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Text", component.Text)
end
end
local textscalelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
textscalelayout.isHorizontal = true
textscalelayout.Stretch = true
textscalelayout.RelativeSpacing = 0.001
local textscaletext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), textscalelayout.RectTransform), "Text Scale", nil, nil, GUI.Alignment.CenterLeft)
local textscale = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), textscalelayout.RectTransform), NumberType.Float)
textscale.FloatValue = component.TextScale
textscale.OnValueChanged = function()
component.TextScale = textscale.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TextScale", component.TextScale)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local colorlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.125), List.Content.RectTransform), nil)
colorlayout.isHorizontal = true
colorlayout.Stretch = true
colorlayout.RelativeSpacing = 0.01
local colortext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), colorlayout.RectTransform), "Color", nil, nil, GUI.Alignment.CenterLeft)
local redtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "R", nil, nil, GUI.Alignment.Center)
local red = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
red.IntValue = component.TextColor.R
red.MinValueInt = 0
red.MaxValueInt = 255
local greentext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "G", nil, nil, GUI.Alignment.Center)
local green = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
green.IntValue = component.TextColor.G
green.MinValueInt = 0
green.MaxValueInt = 255
local bluetext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "B", nil, nil, GUI.Alignment.Center)
local blue = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
blue.IntValue = component.TextColor.B
blue.MinValueInt = 0
blue.MaxValueInt = 255
local alphatext = GUI.TextBlock(GUI.RectTransform(Vector2(0.1, 1), colorlayout.RectTransform), "A", nil, nil, GUI.Alignment.Center)
local alpha = GUI.NumberInput(GUI.RectTransform(Vector2(0.4, 1), colorlayout.RectTransform), NumberType.Int)
alpha.IntValue = component.TextColor.A
alpha.MinValueInt = 0
alpha.MaxValueInt = 255
red.OnValueChanged = function ()
if red.IntValue <= 255 then
component.TextColor = Color(red.IntValue, green.IntValue, blue.IntValue, alpha.IntValue)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TextColor", component.TextColor, "Color")
end
end
end
green.OnValueChanged = function ()
if green.IntValue <= 255 then
component.TextColor = Color(red.IntValue, green.IntValue, blue.IntValue, alpha.IntValue)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TextColor", component.TextColor, "Color")
end
end
end
blue.OnValueChanged = function ()
if blue.IntValue <= 255 then
component.TextColor = Color(red.IntValue, green.IntValue, blue.IntValue, alpha.IntValue)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TextColor", component.TextColor, "Color")
end
end
end
alpha.OnValueChanged = function ()
if alpha.IntValue <= 255 then
component.TextColor = Color(red.IntValue, green.IntValue, blue.IntValue, alpha.IntValue)
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TextColor", component.TextColor, "Color")
end
end
end
local ignorelocalization = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Ignore Localization")
ignorelocalization.Selected = component.IgnoreLocalization
ignorelocalization.OnSelected = function()
component.IgnoreLocalization = ignorelocalization.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".IgnoreLocalization", component.IgnoreLocalization)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Label Component End --
-- Quality Component Start --
local Qualityfunction = function(component, key)
if EditGUI.Settings.quality == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.3), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.3), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local qualitylevellayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.4), List.Content.RectTransform), nil)
qualitylevellayout.isHorizontal = true
qualitylevellayout.Stretch = true
qualitylevellayout.RelativeSpacing = 0.001
local qualityleveltext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), qualitylevellayout.RectTransform), "Quality Level", nil, nil, GUI.Alignment.CenterLeft)
local qualitylevel = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), qualitylevellayout.RectTransform), NumberType.Int)
qualitylevel.IntValue = component.QualityLevel
qualitylevel.MinValueInt = 0
qualitylevel.MaxValueInt = 3
qualitylevel.valueStep = 1
qualitylevel.OnValueChanged = function ()
component.QualityLevel = qualitylevel.IntValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".QualityLevel", component.QualityLevel)
end
end
end
-- Quality Component End --
-- And Component Start --
local AndComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.7), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local timeframelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
timeframelayout.isHorizontal = true
timeframelayout.Stretch = true
timeframelayout.RelativeSpacing = 0.001
local timeframetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), timeframelayout.RectTransform), "Timeframe", nil, nil, GUI.Alignment.CenterLeft)
local timeframe = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), timeframelayout.RectTransform), NumberType.Float)
timeframe.DecimalsToDisplay = 2
timeframe.FloatValue = component.TimeFrame
timeframe.OnValueChanged = function()
component.TimeFrame = timeframe.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TimeFrame", component.TimeFrame)
end
end
local maxoutputlengthlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
maxoutputlengthlayout.isHorizontal = true
maxoutputlengthlayout.Stretch = true
maxoutputlengthlayout.RelativeSpacing = 0.001
local maxoutputlengthtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxoutputlengthlayout.RectTransform), "Max Output Length", nil, nil, GUI.Alignment.CenterLeft)
local maxoutputlength = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), maxoutputlengthlayout.RectTransform), NumberType.Int)
maxoutputlength.IntValue = component.MaxOutputLength
maxoutputlength.MinValueInt = -1000000000
maxoutputlength.MaxValueInt = 1000000000
maxoutputlength.valueStep = 1
maxoutputlength.OnValueChanged = function()
component.MaxOutputLength = maxoutputlength.IntValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MaxOutputLength", component.MaxOutputLength)
end
end
local outputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
outputlayout.isHorizontal = true
outputlayout.Stretch = true
outputlayout.RelativeSpacing = 0.001
local outputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), outputlayout.RectTransform), "Output", nil, nil, GUI.Alignment.CenterLeft)
local output = GUI.TextBox(GUI.RectTransform(Vector2(1.2 , 1), outputlayout.RectTransform), "")
output.text = component.Output
output.OnTextChangedDelegate = function()
component.Output = output.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Output", component.Output)
end
end
local falseoutputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
falseoutputlayout.isHorizontal = true
falseoutputlayout.Stretch = true
falseoutputlayout.RelativeSpacing = 0.001
local falseoutputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), falseoutputlayout.RectTransform), "False Output", nil, nil, GUI.Alignment.CenterLeft)
local falseoutput = GUI.TextBox(GUI.RectTransform(Vector2(1.2, 1), falseoutputlayout.RectTransform), "")
falseoutput.text = component.FalseOutput
falseoutput.OnTextChangedDelegate = function()
component.FalseOutput = falseoutput.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FalseOutput", component.FalseOutput)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- And Component End --
-- Greater Component Start --
local GreaterComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.7), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local timeframelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
timeframelayout.isHorizontal = true
timeframelayout.Stretch = true
timeframelayout.RelativeSpacing = 0.001
local timeframetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), timeframelayout.RectTransform), "Timeframe", nil, nil, GUI.Alignment.CenterLeft)
local timeframe = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), timeframelayout.RectTransform), NumberType.Float)
timeframe.DecimalsToDisplay = 2
timeframe.FloatValue = component.TimeFrame
timeframe.OnValueChanged = function()
component.TimeFrame = timeframe.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TimeFrame", component.TimeFrame)
end
end
local maxoutputlengthlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
maxoutputlengthlayout.isHorizontal = true
maxoutputlengthlayout.Stretch = true
maxoutputlengthlayout.RelativeSpacing = 0.001
local maxoutputlengthtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxoutputlengthlayout.RectTransform), "Max Output Length", nil, nil, GUI.Alignment.CenterLeft)
local maxoutputlength = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), maxoutputlengthlayout.RectTransform), NumberType.Int)
maxoutputlength.IntValue = component.MaxOutputLength
maxoutputlength.MinValueInt = -1000000000
maxoutputlength.MaxValueInt = 1000000000
maxoutputlength.valueStep = 1
maxoutputlength.OnValueChanged = function()
component.MaxOutputLength = maxoutputlength.IntValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MaxOutputLength", component.MaxOutputLength)
end
end
local outputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
outputlayout.isHorizontal = true
outputlayout.Stretch = true
outputlayout.RelativeSpacing = 0.001
local outputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), outputlayout.RectTransform), "Output", nil, nil, GUI.Alignment.CenterLeft)
local output = GUI.TextBox(GUI.RectTransform(Vector2(1.2 , 1), outputlayout.RectTransform), "")
output.text = component.Output
output.OnTextChangedDelegate = function()
component.Output = output.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Output", component.Output)
end
end
local falseoutputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
falseoutputlayout.isHorizontal = true
falseoutputlayout.Stretch = true
falseoutputlayout.RelativeSpacing = 0.001
local falseoutputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), falseoutputlayout.RectTransform), "False Output", nil, nil, GUI.Alignment.CenterLeft)
local falseoutput = GUI.TextBox(GUI.RectTransform(Vector2(1.2, 1), falseoutputlayout.RectTransform), "")
falseoutput.text = component.FalseOutput
falseoutput.OnTextChangedDelegate = function()
component.FalseOutput = falseoutput.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FalseOutput", component.FalseOutput)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Greater Component End --
-- Equals Component Start --
local EqualsComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.7), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local timeframelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
timeframelayout.isHorizontal = true
timeframelayout.Stretch = true
timeframelayout.RelativeSpacing = 0.001
local timeframetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), timeframelayout.RectTransform), "Timeframe", nil, nil, GUI.Alignment.CenterLeft)
local timeframe = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), timeframelayout.RectTransform), NumberType.Float)
timeframe.DecimalsToDisplay = 2
timeframe.FloatValue = component.TimeFrame
timeframe.OnValueChanged = function()
component.TimeFrame = timeframe.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TimeFrame", component.TimeFrame)
end
end
local maxoutputlengthlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
maxoutputlengthlayout.isHorizontal = true
maxoutputlengthlayout.Stretch = true
maxoutputlengthlayout.RelativeSpacing = 0.001
local maxoutputlengthtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxoutputlengthlayout.RectTransform), "Max Output Length", nil, nil, GUI.Alignment.CenterLeft)
local maxoutputlength = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), maxoutputlengthlayout.RectTransform), NumberType.Int)
maxoutputlength.IntValue = component.MaxOutputLength
maxoutputlength.MinValueInt = -1000000000
maxoutputlength.MaxValueInt = 1000000000
maxoutputlength.valueStep = 1
maxoutputlength.OnValueChanged = function()
component.MaxOutputLength = maxoutputlength.IntValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MaxOutputLength", component.MaxOutputLength)
end
end
local outputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
outputlayout.isHorizontal = true
outputlayout.Stretch = true
outputlayout.RelativeSpacing = 0.001
local outputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), outputlayout.RectTransform), "Output", nil, nil, GUI.Alignment.CenterLeft)
local output = GUI.TextBox(GUI.RectTransform(Vector2(1.2 , 1), outputlayout.RectTransform), "")
output.text = component.Output
output.OnTextChangedDelegate = function()
component.Output = output.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Output", component.Output)
end
end
local falseoutputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
falseoutputlayout.isHorizontal = true
falseoutputlayout.Stretch = true
falseoutputlayout.RelativeSpacing = 0.001
local falseoutputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), falseoutputlayout.RectTransform), "False Output", nil, nil, GUI.Alignment.CenterLeft)
local falseoutput = GUI.TextBox(GUI.RectTransform(Vector2(1.2, 1), falseoutputlayout.RectTransform), "")
falseoutput.text = component.FalseOutput
falseoutput.OnTextChangedDelegate = function()
component.FalseOutput = falseoutput.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FalseOutput", component.FalseOutput)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Equals Component End --
-- Xor Component Start --
local XorComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.7), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local timeframelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
timeframelayout.isHorizontal = true
timeframelayout.Stretch = true
timeframelayout.RelativeSpacing = 0.001
local timeframetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), timeframelayout.RectTransform), "Timeframe", nil, nil, GUI.Alignment.CenterLeft)
local timeframe = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), timeframelayout.RectTransform), NumberType.Float)
timeframe.DecimalsToDisplay = 2
timeframe.FloatValue = component.TimeFrame
timeframe.OnValueChanged = function()
component.TimeFrame = timeframe.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TimeFrame", component.TimeFrame)
end
end
local maxoutputlengthlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
maxoutputlengthlayout.isHorizontal = true
maxoutputlengthlayout.Stretch = true
maxoutputlengthlayout.RelativeSpacing = 0.001
local maxoutputlengthtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxoutputlengthlayout.RectTransform), "Max Output Length", nil, nil, GUI.Alignment.CenterLeft)
local maxoutputlength = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), maxoutputlengthlayout.RectTransform), NumberType.Int)
maxoutputlength.IntValue = component.MaxOutputLength
maxoutputlength.MinValueInt = -1000000000
maxoutputlength.MaxValueInt = 1000000000
maxoutputlength.valueStep = 1
maxoutputlength.OnValueChanged = function()
component.MaxOutputLength = maxoutputlength.IntValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MaxOutputLength", component.MaxOutputLength)
end
end
local outputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
outputlayout.isHorizontal = true
outputlayout.Stretch = true
outputlayout.RelativeSpacing = 0.001
local outputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), outputlayout.RectTransform), "Output", nil, nil, GUI.Alignment.CenterLeft)
local output = GUI.TextBox(GUI.RectTransform(Vector2(1.2 , 1), outputlayout.RectTransform), "")
output.text = component.Output
output.OnTextChangedDelegate = function()
component.Output = output.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Output", component.Output)
end
end
local falseoutputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
falseoutputlayout.isHorizontal = true
falseoutputlayout.Stretch = true
falseoutputlayout.RelativeSpacing = 0.001
local falseoutputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), falseoutputlayout.RectTransform), "False Output", nil, nil, GUI.Alignment.CenterLeft)
local falseoutput = GUI.TextBox(GUI.RectTransform(Vector2(1.2, 1), falseoutputlayout.RectTransform), "")
falseoutput.text = component.FalseOutput
falseoutput.OnTextChangedDelegate = function()
component.FalseOutput = falseoutput.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FalseOutput", component.FalseOutput)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Xor Component End --
-- Or Component Start --
local OrComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.7), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local timeframelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
timeframelayout.isHorizontal = true
timeframelayout.Stretch = true
timeframelayout.RelativeSpacing = 0.001
local timeframetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), timeframelayout.RectTransform), "Timeframe", nil, nil, GUI.Alignment.CenterLeft)
local timeframe = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), timeframelayout.RectTransform), NumberType.Float)
timeframe.DecimalsToDisplay = 2
timeframe.FloatValue = component.TimeFrame
timeframe.OnValueChanged = function()
component.TimeFrame = timeframe.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TimeFrame", component.TimeFrame)
end
end
local maxoutputlengthlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
maxoutputlengthlayout.isHorizontal = true
maxoutputlengthlayout.Stretch = true
maxoutputlengthlayout.RelativeSpacing = 0.001
local maxoutputlengthtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxoutputlengthlayout.RectTransform), "Max Output Length", nil, nil, GUI.Alignment.CenterLeft)
local maxoutputlength = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), maxoutputlengthlayout.RectTransform), NumberType.Int)
maxoutputlength.IntValue = component.MaxOutputLength
maxoutputlength.MinValueInt = -1000000000
maxoutputlength.MaxValueInt = 1000000000
maxoutputlength.valueStep = 1
maxoutputlength.OnValueChanged = function()
component.MaxOutputLength = maxoutputlength.IntValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MaxOutputLength", component.MaxOutputLength)
end
end
local outputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
outputlayout.isHorizontal = true
outputlayout.Stretch = true
outputlayout.RelativeSpacing = 0.001
local outputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), outputlayout.RectTransform), "Output", nil, nil, GUI.Alignment.CenterLeft)
local output = GUI.TextBox(GUI.RectTransform(Vector2(1.2 , 1), outputlayout.RectTransform), "")
output.text = component.Output
output.OnTextChangedDelegate = function()
component.Output = output.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Output", component.Output)
end
end
local falseoutputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
falseoutputlayout.isHorizontal = true
falseoutputlayout.Stretch = true
falseoutputlayout.RelativeSpacing = 0.001
local falseoutputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), falseoutputlayout.RectTransform), "False Output", nil, nil, GUI.Alignment.CenterLeft)
local falseoutput = GUI.TextBox(GUI.RectTransform(Vector2(1.2, 1), falseoutputlayout.RectTransform), "")
falseoutput.text = component.FalseOutput
falseoutput.OnTextChangedDelegate = function()
component.FalseOutput = falseoutput.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FalseOutput", component.FalseOutput)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Or Component End --
-- SignalCheck Component Start --
local SignalCheckComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.7), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local maxoutputlengthlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
maxoutputlengthlayout.isHorizontal = true
maxoutputlengthlayout.Stretch = true
maxoutputlengthlayout.RelativeSpacing = 0.001
local maxoutputlengthtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxoutputlengthlayout.RectTransform), "Max Output Length", nil, nil, GUI.Alignment.CenterLeft)
local maxoutputlength = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), maxoutputlengthlayout.RectTransform), NumberType.Int)
maxoutputlength.IntValue = component.MaxOutputLength
maxoutputlength.MinValueInt = -1000000000
maxoutputlength.MaxValueInt = 1000000000
maxoutputlength.valueStep = 1
maxoutputlength.OnValueChanged = function()
component.MaxOutputLength = maxoutputlength.IntValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MaxOutputLength", component.MaxOutputLength)
end
end
local outputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
outputlayout.isHorizontal = true
outputlayout.Stretch = true
outputlayout.RelativeSpacing = 0.001
local outputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), outputlayout.RectTransform), "Output", nil, nil, GUI.Alignment.CenterLeft)
local output = GUI.TextBox(GUI.RectTransform(Vector2(1.2 , 1), outputlayout.RectTransform), "")
output.text = component.Output
output.OnTextChangedDelegate = function()
component.Output = output.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Output", component.Output)
end
end
local falseoutputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
falseoutputlayout.isHorizontal = true
falseoutputlayout.Stretch = true
falseoutputlayout.RelativeSpacing = 0.001
local falseoutputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), falseoutputlayout.RectTransform), "False Output", nil, nil, GUI.Alignment.CenterLeft)
local falseoutput = GUI.TextBox(GUI.RectTransform(Vector2(1.2, 1), falseoutputlayout.RectTransform), "")
falseoutput.text = component.FalseOutput
falseoutput.OnTextChangedDelegate = function()
component.FalseOutput = falseoutput.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FalseOutput", component.FalseOutput)
end
end
local targetsignallayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
targetsignallayout.isHorizontal = true
targetsignallayout.Stretch = true
targetsignallayout.RelativeSpacing = 0.001
local targetsignaltext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), targetsignallayout.RectTransform), "Target Signal", nil, nil, GUI.Alignment.CenterLeft)
local targetsignal = GUI.TextBox(GUI.RectTransform(Vector2(1.2, 1), targetsignallayout.RectTransform), "")
targetsignal.text = component.TargetSignal
targetsignal.OnTextChangedDelegate = function()
component.TargetSignal = targetsignal.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TargetSignal", component.TargetSignal)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- SignalCheck Component End --
-- Concat Component Start --
local ConcatComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.7), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local maxoutputlengthlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
maxoutputlengthlayout.isHorizontal = true
maxoutputlengthlayout.Stretch = true
maxoutputlengthlayout.RelativeSpacing = 0.001
local maxoutputlengthtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxoutputlengthlayout.RectTransform), "Max Output Length", nil, nil, GUI.Alignment.CenterLeft)
local maxoutputlength = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), maxoutputlengthlayout.RectTransform), NumberType.Int)
maxoutputlength.IntValue = component.MaxOutputLength
maxoutputlength.MinValueInt = -1000000000
maxoutputlength.MaxValueInt = 1000000000
maxoutputlength.valueStep = 1
maxoutputlength.OnValueChanged = function()
component.MaxOutputLength = maxoutputlength.IntValue
end
local separatorlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
separatorlayout.isHorizontal = true
separatorlayout.Stretch = true
separatorlayout.RelativeSpacing = 0.001
local separatortext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), separatorlayout.RectTransform), "Separator", nil, nil, GUI.Alignment.CenterLeft)
local separator = GUI.TextBox(GUI.RectTransform(Vector2(1.2 , 1), separatorlayout.RectTransform), "")
separator.text = component.Separator
separator.OnTextChangedDelegate = function()
component.Separator = separator.text
end
local timeframelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
timeframelayout.isHorizontal = true
timeframelayout.Stretch = true
timeframelayout.RelativeSpacing = 0.001
local timeframetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), timeframelayout.RectTransform), "Timeframe", nil, nil, GUI.Alignment.CenterLeft)
local timeframe = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), timeframelayout.RectTransform), NumberType.Float)
timeframe.DecimalsToDisplay = 2
timeframe.FloatValue = component.TimeFrame
timeframe.OnValueChanged = function()
component.TimeFrame = timeframe.FloatValue
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
end
end
-- Concat Component End --
-- Memory Component Start --
local MemoryComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.7), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local maxvaluelengthlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
maxvaluelengthlayout.isHorizontal = true
maxvaluelengthlayout.Stretch = true
maxvaluelengthlayout.RelativeSpacing = 0.001
local maxvaluelengthtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxvaluelengthlayout.RectTransform), "Max Value Length", nil, nil, GUI.Alignment.CenterLeft)
local maxvaluelength = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), maxvaluelengthlayout.RectTransform), NumberType.Int)
maxvaluelength.IntValue = component.MaxValueLength
maxvaluelength.MinValueInt = -1000000000
maxvaluelength.MaxValueInt = 1000000000
maxvaluelength.valueStep = 1
maxvaluelength.OnValueChanged = function()
component.MaxValueLength = maxvaluelength.IntValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MaxValueLength", component.MaxValueLength)
end
end
local valuelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
valuelayout.isHorizontal = true
valuelayout.Stretch = true
valuelayout.RelativeSpacing = 0.001
local valuetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), valuelayout.RectTransform), "Value", nil, nil, GUI.Alignment.CenterLeft)
local value = GUI.TextBox(GUI.RectTransform(Vector2(1.2 , 1), valuelayout.RectTransform), "")
value.text = component.Value
value.OnTextChangedDelegate = function()
component.Value = value.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Value", component.Value)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local writeable = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Writeable")
writeable.Selected = component.Writeable
writeable.OnSelected = function()
component.Writeable = writeable.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Writeable", component.Writeable)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Memory Component End --
-- Subtract Component Start --
local SubtractComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.7), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local clampmaxlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
clampmaxlayout.isHorizontal = true
clampmaxlayout.Stretch = true
clampmaxlayout.RelativeSpacing = 0.001
local clampmaxtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), clampmaxlayout.RectTransform), "Clamp max", nil, nil, GUI.Alignment.CenterLeft)
local clampmax = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), clampmaxlayout.RectTransform), NumberType.Float)
clampmax.MinValueFloat = -999999
clampmax.MaxValueFloat = 999999
clampmax.valueStep = 0.1
clampmax.FloatValue = component.Clampmax
clampmax.OnValueChanged = function()
component.Clampmax = clampmax.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Clampmax", component.Clampmax)
end
end
local clampminlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
clampminlayout.isHorizontal = true
clampminlayout.Stretch = true
clampminlayout.RelativeSpacing = 0.001
local clampmintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), clampminlayout.RectTransform), "Clamp min", nil, nil, GUI.Alignment.CenterLeft)
local clampmin = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), clampminlayout.RectTransform), NumberType.Float)
clampmin.MinValueFloat = -999999
clampmin.MaxValueFloat = 999999
clampmin.valueStep = 0.1
clampmin.FloatValue = component.Clampmin
clampmin.OnValueChanged = function()
component.Clampmin = clampmin.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Clampmin", component.Clampmin)
end
end
local timeframelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
timeframelayout.isHorizontal = true
timeframelayout.Stretch = true
timeframelayout.RelativeSpacing = 0.001
local timeframetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), timeframelayout.RectTransform), "Timeframe", nil, nil, GUI.Alignment.CenterLeft)
local timeframe = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), timeframelayout.RectTransform), NumberType.Float)
timeframe.DecimalsToDisplay = 2
timeframe.FloatValue = component.TimeFrame
timeframe.OnValueChanged = function()
component.TimeFrame = timeframe.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TimeFrame", component.TimeFrame)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Subtract Component End --
-- Divide Component Start --
local DivideComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.7), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local clampmaxlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
clampmaxlayout.isHorizontal = true
clampmaxlayout.Stretch = true
clampmaxlayout.RelativeSpacing = 0.001
local clampmaxtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), clampmaxlayout.RectTransform), "Clamp max", nil, nil, GUI.Alignment.CenterLeft)
local clampmax = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), clampmaxlayout.RectTransform), NumberType.Float)
clampmax.MinValueFloat = -999999
clampmax.MaxValueFloat = 999999
clampmax.valueStep = 0.1
clampmax.FloatValue = component.Clampmax
clampmax.OnValueChanged = function()
component.Clampmax = clampmax.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Clampmax", component.Clampmax)
end
end
local clampminlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
clampminlayout.isHorizontal = true
clampminlayout.Stretch = true
clampminlayout.RelativeSpacing = 0.001
local clampmintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), clampminlayout.RectTransform), "Clamp min", nil, nil, GUI.Alignment.CenterLeft)
local clampmin = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), clampminlayout.RectTransform), NumberType.Float)
clampmin.MinValueFloat = -999999
clampmin.MaxValueFloat = 999999
clampmin.valueStep = 0.1
clampmin.FloatValue = component.Clampmin
clampmin.OnValueChanged = function()
component.Clampmin = clampmin.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Clampmin", component.Clampmin)
end
end
local timeframelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
timeframelayout.isHorizontal = true
timeframelayout.Stretch = true
timeframelayout.RelativeSpacing = 0.001
local timeframetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), timeframelayout.RectTransform), "Timeframe", nil, nil, GUI.Alignment.CenterLeft)
local timeframe = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), timeframelayout.RectTransform), NumberType.Float)
timeframe.DecimalsToDisplay = 2
timeframe.FloatValue = component.TimeFrame
timeframe.OnValueChanged = function()
component.TimeFrame = timeframe.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".TimeFrame", component.TimeFrame)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Divide Component End --
-- Oscillator Component Start --
local OscillatorComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.7), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.13), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local outputtypelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
outputtypelayout.isHorizontal = true
outputtypelayout.Stretch = true
outputtypelayout.RelativeSpacing = 0.001
local outputtypetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), outputtypelayout.RectTransform), "Output Type", nil, nil, GUI.Alignment.CenterLeft)
local outputtype = GUI.DropDown(GUI.RectTransform(Vector2(1.2, 1), outputtypelayout.RectTransform), "", 3, nil, false)
outputtype.AddItem("Pulse", component.WaveType.Pulse)
outputtype.AddItem("Sawtooth", component.WaveType.Sawtooth)
outputtype.AddItem("Sine", component.WaveType.Sine)
outputtype.AddItem("Square", component.WaveType.Square)
outputtype.AddItem("Triangle", component.WaveType.Triangle)
outputtype.OnSelected = function (guiComponent, object)
component.OutputType = object
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".OutputType", component.OutputType)
end
end
local frequencylayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
frequencylayout.isHorizontal = true
frequencylayout.Stretch = true
frequencylayout.RelativeSpacing = 0.001
local frequencytext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), frequencylayout.RectTransform), "Frequency", nil, nil, GUI.Alignment.CenterLeft)
local frequency = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), frequencylayout.RectTransform), NumberType.Float)
frequency.DecimalsToDisplay = 2
frequency.FloatValue = component.Frequency
frequency.OnValueChanged = function()
component.Frequency = frequency.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Frequency", component.Frequency)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Oscillator Component End --
-- Color Component Start --
local ColorComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.52), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.18), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local usehsv = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Use HSV")
usehsv.Selected = component.UseHSV
usehsv.OnSelected = function()
component.UseHSV = usehsv.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".UseHSV", component.UseHSV)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.145), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Color Component End --
-- Not Component Start --
local NotComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.52), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.18), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local continuousoutput = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Continuous Output")
continuousoutput.Selected = component.ContinuousOutput
continuousoutput.OnSelected = function()
component.ContinuousOutput = continuousoutput.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".ContinuousOutput", component.ContinuousOutput)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.145), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Not Component End --
-- TrigonometricFunction Component Start --
local TrigonometricComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.52), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.18), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local useradians = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Use Radians")
useradians.Selected = component.UseRadians
useradians.OnSelected = function()
component.UseRadians = useradians.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".UseRadians", component.UseRadians)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.145), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- TrigonometricFunction Component End --
-- Function Component Start --
local FunctionComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.52), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.18), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.145), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Function Component End --
-- Exponentiation Component Start --
local ExponentiationComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.52), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.18), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local exponent = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Exponent")
exponent.Selected = component.Exponent
exponent.OnSelected = function()
component.Exponent = exponent.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Exponent", component.Exponent)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.145), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Exponentiation Component End --
-- Modulo Component Start --
local ModuloComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.52), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.18), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local modulus = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Modulus")
modulus.Selected = component.Modulus
modulus.OnSelected = function()
component.Modulus = modulus.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Modulus", component.Modulus)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.145), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Modulo Component End --
-- Delay Component Start --
local DelayComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.6), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local delaylayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.09), List.Content.RectTransform), nil)
delaylayout.isHorizontal = true
delaylayout.Stretch = true
delaylayout.RelativeSpacing = 0.001
local delaytext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), delaylayout.RectTransform), "Delay", nil, nil, GUI.Alignment.CenterLeft)
local delay = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), delaylayout.RectTransform), NumberType.Float)
delay.DecimalsToDisplay = 2
delay.MinValueFloat = 0
delay.MaxValueFloat = 60
delay.valueStep = 0.1
delay.FloatValue = component.Delay
delay.OnValueChanged = function()
component.Delay = delay.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Delay", component.Delay)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.16), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local resetwhensignalreceived = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Reset When Signal Received")
resetwhensignalreceived.Selected = component.ResetWhenSignalReceived
resetwhensignalreceived.OnSelected = function()
component.ResetWhenSignalReceived = resetwhensignalreceived.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".ResetWhenSignalReceived", component.ResetWhenSignalReceived)
end
end
local resetwhendifferentsignalreceived = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Reset When Different Signal Received")
resetwhendifferentsignalreceived.Selected = component.ResetWhenDifferentSignalReceived
resetwhendifferentsignalreceived.OnSelected = function()
component.ResetWhenDifferentSignalReceived = resetwhendifferentsignalreceived.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".ResetWhenDifferentSignalReceived", component.ResetWhenDifferentSignalReceived)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.5), List.Content.RectTransform), "Allow In-game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.125), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Delay Component End --
-- Relay Component Start --
local RelayComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.95), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.125), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local maxpowerlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
maxpowerlayout.isHorizontal = true
maxpowerlayout.Stretch = true
maxpowerlayout.RelativeSpacing = 0.001
local maxpowertext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxpowerlayout.RectTransform), "Max Power", nil, nil, GUI.Alignment.CenterLeft)
local maxpower = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), maxpowerlayout.RectTransform), NumberType.Float)
maxpower.FloatValue = component.MaxPower
maxpower.OnValueChanged = function()
component.MaxPower = maxpower.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MaxPower", component.MaxPower)
end
end
local overloadvoltagelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
overloadvoltagelayout.isHorizontal = true
overloadvoltagelayout.Stretch = true
overloadvoltagelayout.RelativeSpacing = 0.001
local overloadvoltagetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), overloadvoltagelayout.RectTransform), "Overload Voltage", nil, nil, GUI.Alignment.CenterLeft)
local overloadvoltage = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), overloadvoltagelayout.RectTransform), NumberType.Float)
overloadvoltage.FloatValue = component.OverloadVoltage
overloadvoltage.OnValueChanged = function()
component.OverloadVoltage = overloadvoltage.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".OverloadVoltage", component.OverloadVoltage)
end
end
local fireprobabilitylayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
fireprobabilitylayout.isHorizontal = true
fireprobabilitylayout.Stretch = true
fireprobabilitylayout.RelativeSpacing = 0.001
local fireprobabilitytext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), fireprobabilitylayout.RectTransform), "Fire Probability", nil, nil, GUI.Alignment.CenterLeft)
local fireprobability = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), fireprobabilitylayout.RectTransform), NumberType.Float)
fireprobability.MinValueFloat = 0
fireprobability.MaxValueFloat = 1
fireprobability.valueStep = 0.1
fireprobability.FloatValue = component.FireProbability
fireprobability.OnValueChanged = function()
component.FireProbability = fireprobability.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FireProbability", component.FireProbability)
end
end
local minvoltagelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
minvoltagelayout.isHorizontal = true
minvoltagelayout.Stretch = true
minvoltagelayout.RelativeSpacing = 0.001
local minvoltagetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), minvoltagelayout.RectTransform), "Min Voltage", nil, nil, GUI.Alignment.CenterLeft)
local minvoltage = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), minvoltagelayout.RectTransform), NumberType.Float)
minvoltage.FloatValue = component.MinVoltage
minvoltage.OnValueChanged = function()
component.MinVoltage = minvoltage.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MinVoltage", component.MinVoltage)
end
end
local powerconsumptionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
powerconsumptionlayout.isHorizontal = true
powerconsumptionlayout.Stretch = true
powerconsumptionlayout.RelativeSpacing = 0.001
local powerconsumptiontext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), powerconsumptionlayout.RectTransform), "Power Consumption", nil, nil, GUI.Alignment.CenterLeft)
local powerconsumption = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), powerconsumptionlayout.RectTransform), NumberType.Float)
powerconsumption.FloatValue = component.PowerConsumption
powerconsumption.OnValueChanged = function()
component.PowerConsumption = powerconsumption.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PowerConsumption", component.PowerConsumption)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.08), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local ison = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Is On")
ison.Selected = component.IsOn
ison.OnSelected = function()
component.IsOn = ison.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".IsOn", component.IsOn)
end
end
local canbeoverloaded = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Overloaded")
canbeoverloaded.Selected = component.CanBeOverloaded
canbeoverloaded.OnSelected = function()
component.CanBeOverloaded = canbeoverloaded.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBeOverloaded", component.CanBeOverloaded)
end
end
local vulnerabletoemp = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Vulnerable To EMP")
vulnerabletoemp.Selected = component.VulnerableToEMP
vulnerabletoemp.OnSelected = function()
component.VulnerableToEMP = vulnerabletoemp.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".VulnerableToEMP", component.VulnerableToEMP)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Relay Component End --
-- Wifi Component Start --
local WifiComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.66), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local rangelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
rangelayout.isHorizontal = true
rangelayout.Stretch = true
rangelayout.RelativeSpacing = 0.001
local rangetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), rangelayout.RectTransform), "Range", nil, nil, GUI.Alignment.CenterLeft)
local range = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), rangelayout.RectTransform), NumberType.Float)
range.FloatValue = component.Range
range.OnValueChanged = function()
component.Range = range.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Range", component.Range)
end
end
local channellayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
channellayout.isHorizontal = true
channellayout.Stretch = true
channellayout.RelativeSpacing = 0.001
local channeltext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), channellayout.RectTransform), "Channel", nil, nil, GUI.Alignment.CenterLeft)
local channel = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), channellayout.RectTransform), NumberType.Float)
channel.MinValueFloat = -1000000000
channel.MaxValueFloat = 1000000000
channel.valueStep = 1
channel.FloatValue = component.Channel
channel.OnValueChanged = function()
component.Channel = channel.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Channel", component.Channel)
end
end
local minchatmessageintervallayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
minchatmessageintervallayout.isHorizontal = true
minchatmessageintervallayout.Stretch = true
minchatmessageintervallayout.RelativeSpacing = 0.001
local minchatmessageintervaltext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), minchatmessageintervallayout.RectTransform), "Min Chat Message Interval", nil, nil, GUI.Alignment.CenterLeft)
local minchatmessageinterval = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), minchatmessageintervallayout.RectTransform), NumberType.Float)
minchatmessageinterval.FloatValue = component.MinChatMessageInterval
minchatmessageinterval.OnValueChanged = function()
component.MinChatMessageInterval = minchatmessageinterval.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MinChatMessageInterval", component.MinChatMessageInterval)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local allowcrossteamcommunication = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow Cross-Team Communication")
allowcrossteamcommunication.Selected = component.AllowCrossTeamCommunication
allowcrossteamcommunication.OnSelected = function()
component.AllowCrossTeamCommunication = allowcrossteamcommunication.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowCrossTeamCommunication", component.AllowCrossTeamCommunication)
end
end
local linktochat = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Link to Chat")
linktochat.Selected = component.LinkToChat
linktochat.OnSelected = function()
component.LinkToChat = linktochat.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".LinkToChat", component.LinkToChat)
end
end
local discardduplicatechatmessages = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Discard Duplicate Chat Messages")
discardduplicatechatmessages.Selected = component.DiscardDuplicateChatMessages
discardduplicatechatmessages.OnSelected = function()
component.DiscardDuplicateChatMessages = discardduplicatechatmessages.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".DiscardDuplicateChatMessages", component.DiscardDuplicateChatMessages)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Wifi Component End --
-- Regex Find Component Start --
local RegExFindComponentfunction = function(component, key)
if EditGUI.Settings.components == false then
return
end
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), menuList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local List = GUI.ListBox(GUI.RectTransform(Vector2(1, 0.66), menuList.Content.RectTransform, GUI.Anchor.TopCenter))
local guiElement = {
listBox = List,
lineFrame = LineFrame,
}
table.insert(componentGUIElements, guiElement)
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), component.Name, nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.3
maintext.TextColor = Color(255,255,255)
local maxoutputlengthlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
maxoutputlengthlayout.isHorizontal = true
maxoutputlengthlayout.Stretch = true
maxoutputlengthlayout.RelativeSpacing = 0.001
local maxoutputlengthtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), maxoutputlengthlayout.RectTransform), "Max Output Length", nil, nil, GUI.Alignment.CenterLeft)
local maxoutputlength = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), maxoutputlengthlayout.RectTransform), NumberType.Int)
maxoutputlength.IntValue = component.MaxOutputLength
maxoutputlength.MinValueInt = -1000000000
maxoutputlength.MaxValueInt = 1000000000
maxoutputlength.valueStep = 1
maxoutputlength.OnValueChanged = function()
component.MaxOutputLength = maxoutputlength.IntValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".MaxOutputLength", component.MaxOutputLength)
end
end
local outputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
outputlayout.isHorizontal = true
outputlayout.Stretch = true
outputlayout.RelativeSpacing = 0.001
local outputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), outputlayout.RectTransform), "Output", nil, nil, GUI.Alignment.CenterLeft)
local output = GUI.TextBox(GUI.RectTransform(Vector2(1.2 , 1), outputlayout.RectTransform), "")
output.text = component.Output
output.OnTextChangedDelegate = function()
component.Output = output.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Output", component.Output)
end
end
local falseoutputlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
falseoutputlayout.isHorizontal = true
falseoutputlayout.Stretch = true
falseoutputlayout.RelativeSpacing = 0.001
local falseoutputtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), falseoutputlayout.RectTransform), "False Output", nil, nil, GUI.Alignment.CenterLeft)
local falseoutput = GUI.TextBox(GUI.RectTransform(Vector2(1.2, 1), falseoutputlayout.RectTransform), "")
falseoutput.text = component.FalseOutput
falseoutput.OnTextChangedDelegate = function()
component.FalseOutput = falseoutput.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".FalseOutput", component.FalseOutput)
end
end
local expressionlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.11), List.Content.RectTransform), nil)
expressionlayout.isHorizontal = true
expressionlayout.Stretch = true
expressionlayout.RelativeSpacing = 0.001
local expressiontext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), expressionlayout.RectTransform), "Expression", nil, nil, GUI.Alignment.CenterLeft)
local expression = GUI.TextBox(GUI.RectTransform(Vector2(1.2, 1), expressionlayout.RectTransform), "")
expression.text = component.Expression
expression.OnTextChangedDelegate = function()
component.Expression = expression.text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Expression", component.Expression)
end
end
local pickingtimelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
pickingtimelayout.isHorizontal = true
pickingtimelayout.Stretch = true
pickingtimelayout.RelativeSpacing = 0.001
local pickingtimetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), pickingtimelayout.RectTransform), "Picking Time", nil, nil, GUI.Alignment.CenterLeft)
local pickingtime = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), pickingtimelayout.RectTransform), NumberType.Float)
pickingtime.FloatValue = component.PickingTime
pickingtime.OnValueChanged = function()
component.PickingTime = pickingtime.FloatValue
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".PickingTime", component.PickingTime)
end
end
local usecapturegroup = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Use Capture Group")
usecapturegroup.Selected = component.UseCaptureGroup
usecapturegroup.OnSelected = function()
component.UseCaptureGroup = usecapturegroup.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".UseCaptureGroup", component.UseCaptureGroup)
end
end
local continuousoutput = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Continuous Output")
continuousoutput.Selected = component.ContinuousOutput
continuousoutput.OnSelected = function()
component.ContinuousOutput = continuousoutput.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".ContinuousOutput", component.ContinuousOutput)
end
end
local canbepicked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Can Be Picked")
canbepicked.Selected = component.CanBePicked
canbepicked.OnSelected = function()
component.CanBePicked = canbepicked.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".CanBePicked", component.CanBePicked)
end
end
local allowingameediting = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), List.Content.RectTransform), "Allow In-Game Editing")
allowingameediting.Selected = component.AllowInGameEditing
allowingameediting.OnSelected = function()
component.AllowInGameEditing = allowingameediting.Selected == true
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".AllowInGameEditing", component.AllowInGameEditing)
end
end
local msglayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.1), List.Content.RectTransform), nil)
msglayout.isHorizontal = true
msglayout.Stretch = true
msglayout.RelativeSpacing = 0.001
local msgtext = GUI.TextBlock(GUI.RectTransform(Vector2(0.5, 1), msglayout.RectTransform), "Msg", nil, nil, GUI.Alignment.CenterLeft)
local msg = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), msglayout.RectTransform), "")
msg.Text = component.Msg
msg.OnTextChangedDelegate = function()
component.Msg = msg.Text
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, key .. ".Msg", component.Msg)
end
end
end
-- Regex Find Component End --
-- Settings Start --
local Settingsfunction = function()
if settings == false then
menu.RemoveChild(settingsmenu)
return
end
settingsmenu = GUI.ListBox(GUI.RectTransform(Vector2(0.93, 0.7), menuContent.RectTransform, GUI.Anchor.Center))
settingsmenu.RectTransform.AbsoluteOffset = Point(0, -17)
local settingsList = GUI.ListBox(GUI.RectTransform(Vector2(1, 1), settingsmenu.Content.RectTransform, GUI.Anchor.TopCenter))
local maintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.1), settingsList.Content.RectTransform), "Main Settings", nil, nil, GUI.Alignment.Center)
maintext.TextScale = 1.4
maintext.TextColor = Color(255,255,255)
local clientsidetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.08), settingsList.Content.RectTransform), "Clientside Settings", nil, nil, GUI.Alignment.Center)
clientsidetext.TextColor = Color(255,255,255)
local targetnoninteractablelayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), settingsList.Content.RectTransform), nil)
targetnoninteractablelayout.isHorizontal = true
targetnoninteractablelayout.Stretch = true
targetnoninteractablelayout.RelativeSpacing = 0.001
local targetnoninteractabletext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), targetnoninteractablelayout.RectTransform), "Target Non Interactable", nil, nil, GUI.Alignment.CenterLeft)
local targetnoninteractabledropdown = GUI.DropDown(GUI.RectTransform(Vector2(1.2, 1), targetnoninteractablelayout.RectTransform), "", 3, nil, false)
if EditGUI.ClientsideSettings.targetnoninteractable == nil then
targetnoninteractabledropdown.text = "False"
else
targetnoninteractable = EditGUI.ClientsideSettings.targetnoninteractable
targetnoninteractabledropdown.text = EditGUI.ClientsideSettings.targetnoninteractable
end
targetnoninteractabledropdown.AddItem("False", "False")
targetnoninteractabledropdown.AddItem("Target Both", "Target Both")
targetnoninteractabledropdown.AddItem("Target Only Non Interactable", "Target Only Non Interactable")
targetnoninteractabledropdown.OnSelected = function (guiComponent, object)
targetnoninteractable = object
EditGUI.ClientsideSettings.targetnoninteractable = object
end
local targetlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), settingsList.Content.RectTransform), nil)
targetlayout.isHorizontal = true
targetlayout.Stretch = true
targetlayout.RelativeSpacing = 0.001
local targettext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), targetlayout.RectTransform), "Targeting", nil, nil, GUI.Alignment.CenterLeft)
local targetdropdown = GUI.DropDown(GUI.RectTransform(Vector2(1.2, 1), targetlayout.RectTransform), "", 3, nil, false)
if EditGUI.ClientsideSettings.targetingsetting == nil then
targetdropdown.text = "Items"
else
targetdropdown.text = EditGUI.ClientsideSettings.targetingsetting
end
targetdropdown.AddItem("Items", "Items")
targetdropdown.AddItem("Walls", "Walls")
targetdropdown.AddItem("Hulls", "Hulls")
targetdropdown.AddItem("Gaps", "Gaps")
targetdropdown.OnSelected = function (guiComponent, object)
EditGUI.ClientsideSettings.targetingsetting = object
end
local tagstotargetlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), settingsList.Content.RectTransform), nil)
tagstotargetlayout.isHorizontal = true
tagstotargetlayout.Stretch = true
tagstotargetlayout.RelativeSpacing = 0.001
local tagstotargettext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), tagstotargetlayout.RectTransform), "Tags To Target", nil, nil, GUI.Alignment.CenterLeft)
local tagstotarget = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), tagstotargetlayout.RectTransform), "")
if EditGUI.ClientsideSettings.tagstotarget then
tagstotarget.Text = EditGUI.ClientsideSettings.tagstotarget
else
tagstotarget.Text = ""
end
tagstotarget.OnTextChangedDelegate = function()
EditGUI.ClientsideSettings.tagstotarget = tagstotarget.Text
end
local movementamountlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), settingsList.Content.RectTransform), nil)
movementamountlayout.isHorizontal = true
movementamountlayout.Stretch = true
movementamountlayout.RelativeSpacing = 0.001
local movementamounttext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), movementamountlayout.RectTransform), "Movement Amount", nil, nil, GUI.Alignment.CenterLeft)
movementamount = GUI.NumberInput(GUI.RectTransform(Vector2(1.2, 1), movementamountlayout.RectTransform), NumberType.Float)
movementamount.MinValueFloat = 1
movementamount.MaxValueFloat = 100
movementamount.valueStep = 1
if EditGUI.ClientsideSettings.movementamount == nil then
movementamount.FloatValue = 1
else
movementamount.FloatValue = EditGUI.ClientsideSettings.movementamount
end
movementamount.OnValueChanged = function ()
EditGUI.ClientsideSettings.movementamount = movementamount.FloatValue
end
local targetitems = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Target Items")
if EditGUI.ClientsideSettings.targetitems then
targetitems.Selected = EditGUI.ClientsideSettings.targetitems
else
targetitems.Selected = false
end
targetitems.OnSelected = function ()
EditGUI.ClientsideSettings.targetitems = targetitems.Selected == true
end
local targetparentinventory = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Target Parent Inventory")
if EditGUI.ClientsideSettings.targetparentinventory then
targetparentinventory.Selected = EditGUI.ClientsideSettings.targetparentinventory
else
targetparentinventory.Selected = false
end
targetparentinventory.OnSelected = function ()
EditGUI.ClientsideSettings.targetparentinventory = targetparentinventory.Selected == true
end
local serversidetext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.08), settingsList.Content.RectTransform), "Serverside Settings", nil, nil, GUI.Alignment.Center)
serversidetext.TextColor = Color(255,255,255)
local permissiondropdownlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), settingsList.Content.RectTransform), nil)
permissiondropdownlayout.isHorizontal = true
permissiondropdownlayout.Stretch = true
permissiondropdownlayout.RelativeSpacing = 0.001
local permissiondropdowntext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), permissiondropdownlayout.RectTransform), "Required Permissions", nil, nil, GUI.Alignment.CenterLeft)
local permissiondropdown = GUI.DropDown(GUI.RectTransform(Vector2(1.2, 1), permissiondropdownlayout.RectTransform), "", 3, nil, false)
if EditGUI.Settings.permissionsetting == nil then
permissiondropdown.text = "Above None"
EditGUI.Settings.permissionsetting = 0
else
if EditGUI.Settings.permissionsetting == 0 then
permissiondropdown.text = "Above None"
else
permissiondropdown.text = EditGUI.Settings.permissionsetting
end
end
permissiondropdown.AddItem("All", "All")
permissiondropdown.AddItem("ConsoleCommands", "ConsoleCommands")
permissiondropdown.AddItem("ManagePermissions", "ManagePermissions")
permissiondropdown.AddItem("ManageSettings", "ManageSettings")
permissiondropdown.AddItem("Above None", "0")
permissiondropdown.AddItem("None", "None")
permissiondropdown.OnSelected = function (guiComponent, object)
EditGUI.Settings.permissionsetting = object
end
local tagstonottargetlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.07), settingsList.Content.RectTransform), nil)
tagstonottargetlayout.isHorizontal = true
tagstonottargetlayout.Stretch = true
tagstonottargetlayout.RelativeSpacing = 0.001
local tagstonottargettext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), tagstonottargetlayout.RectTransform), "Tags To Not Target", nil, nil, GUI.Alignment.CenterLeft)
local tagstonottarget = GUI.TextBox(GUI.RectTransform(Vector2(1.5, 1), tagstonottargetlayout.RectTransform), "")
if EditGUI.Settings.tagstonottarget then
tagstonottarget.Text = EditGUI.Settings.tagstonottarget
else
tagstonottarget.Text = ""
end
tagstonottarget.OnTextChangedDelegate = function()
EditGUI.Settings.tagstonottarget = tagstonottarget.Text
end
local allowtargetingnoninteractable = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Allow Targeting Non Interactable")
if EditGUI.Settings.allowtargetingnoninteractable then
allowtargetingnoninteractable.Selected = EditGUI.Settings.allowtargetingnoninteractable
else
allowtargetingnoninteractable.Selected = false
end
allowtargetingnoninteractable.OnSelected = function ()
EditGUI.Settings.allowtargetingnoninteractable = allowtargetingnoninteractable.Selected == true
end
local allowtargetingstructures = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Allow Targeting Structures")
if EditGUI.Settings.allowtargetingstructures then
allowtargetingstructures.Selected = EditGUI.Settings.allowtargetingstructures
else
allowtargetingstructures.Selected = false
end
allowtargetingstructures.OnSelected = function ()
EditGUI.Settings.allowtargetingstructures = allowtargetingstructures.Selected == true
end
local allowtargetingitems = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Allow Targeting Items")
if EditGUI.Settings.allowtargetingitems then
allowtargetingitems.Selected = EditGUI.Settings.allowtargetingitems
else
allowtargetingitems.Selected = false
end
allowtargetingitems.OnSelected = function ()
EditGUI.Settings.allowtargetingitems = allowtargetingitems.Selected == true
end
-- Value Settings --
ValueSettings = function()
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), settingsList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local subtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.08), settingsList.Content.RectTransform), "Value Settings", nil, nil, GUI.Alignment.Center)
subtext.TextScale = 1.3
subtext.TextColor = Color(255,255,255)
local spritedepth = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Sprite Depth Enabled")
spritedepth.Selected = EditGUI.Settings.spritedepth
spritedepth.OnSelected = function ()
EditGUI.Settings.spritedepth = spritedepth.Selected == true
end
local rotation = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Rotation Enabled")
rotation.Selected = EditGUI.Settings.rotation
rotation.OnSelected = function ()
EditGUI.Settings.rotation = rotation.Selected == true
end
local scale = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Scale Enabled")
scale.Selected = EditGUI.Settings.scale
scale.OnSelected = function ()
EditGUI.Settings.scale = scale.Selected == true
end
local scaleeditlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.105), settingsList.Content.RectTransform), nil)
scaleeditlayout.isHorizontal = true
scaleeditlayout.Stretch = true
scaleeditlayout.RelativeSpacing = 0.001
local scalemintext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), scaleeditlayout.RectTransform), "Scale Min", nil, nil, GUI.Alignment.CenterLeft)
local scalemininput = GUI.NumberInput(GUI.RectTransform(Vector2(1, 1), scaleeditlayout.RectTransform), NumberType.Float)
scalemininput.DecimalsToDisplay = 3
scalemininput.FloatValue = EditGUI.Settings.scalemin
scalemininput.MinValueFloat = 0.001
scalemininput.MaxValueFloat = 0.999
scalemininput.valueStep = 0.1
scalemininput.OnValueChanged = function ()
EditGUI.Settings.scalemin = scalemininput.FloatValue
end
local scalemaxtext = GUI.TextBlock(GUI.RectTransform(Vector2(1, 1), scaleeditlayout.RectTransform), "Scale Max", nil, nil, GUI.Alignment.CenterLeft)
local scalemaxinput = GUI.NumberInput(GUI.RectTransform(Vector2(1, 1), scaleeditlayout.RectTransform), NumberType.Float)
scalemaxinput.DecimalsToDisplay = 3
scalemaxinput.FloatValue = EditGUI.Settings.scalemax
scalemaxinput.MinValueFloat = 0.001
scalemaxinput.MaxValueFloat = 0.999
scalemaxinput.valueStep = 0.1
scalemaxinput.OnValueChanged = function ()
EditGUI.Settings.scalemax = scalemaxinput.FloatValue
end
local condition = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Condition Enabled")
condition.Selected = EditGUI.Settings.condition
condition.OnSelected = function ()
EditGUI.Settings.condition = condition.Selected == true
end
local spritecolor = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Sprite Color Enabled")
spritecolor.Selected = EditGUI.Settings.spritecolor
spritecolor.OnSelected = function ()
EditGUI.Settings.spritecolor = spritecolor.Selected == true
end
local alpha = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Alpha Enabled")
alpha.Selected = EditGUI.Settings.alpha
alpha.OnSelected = function ()
EditGUI.Settings.alpha = alpha.Selected == true
end
local tags = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Tags Enabled")
tags.Selected = EditGUI.Settings.tags
tags.OnSelected = function ()
EditGUI.Settings.tags = tags.Selected == true
end
local description = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Description Enabled")
description.Selected = EditGUI.Settings.description
description.OnSelected = function ()
EditGUI.Settings.description = description.Selected == true
end
local noninteractable = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Non Interactable Enabled")
noninteractable.Selected = EditGUI.Settings.noninteractable
noninteractable.OnSelected = function ()
EditGUI.Settings.noninteractable = noninteractable.Selected == true
end
local nonplayerteaminteractable = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Non-Player Team Interactable Enabled")
nonplayerteaminteractable.Selected = EditGUI.Settings.nonplayerteaminteractable
nonplayerteaminteractable.OnSelected = function ()
EditGUI.Settings.nonplayerteaminteractable = nonplayerteaminteractable.Selected == true
end
local invulnerabletodamage = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Invulnerable to Damage Enabled")
invulnerabletodamage.Selected = EditGUI.Settings.invulnerabletodamage
invulnerabletodamage.OnSelected = function ()
EditGUI.Settings.invulnerabletodamage = invulnerabletodamage.Selected == true
end
local displaysidebysidewhenlinked = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Display Side By Side When Linked Enabled")
displaysidebysidewhenlinked.Selected = EditGUI.Settings.displaysidebysidewhenlinked
displaysidebysidewhenlinked.OnSelected = function ()
EditGUI.Settings.displaysidebysidewhenlinked = displaysidebysidewhenlinked.Selected == true
end
local hiddeningame = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Hidden In Game Enabled")
hiddeningame.Selected = EditGUI.Settings.hiddeningame
hiddeningame.OnSelected = function ()
EditGUI.Settings.hiddeningame = hiddeningame.Selected == true
end
local mirror = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Mirror Enabled")
mirror.Selected = EditGUI.Settings.mirror
mirror.OnSelected = function ()
EditGUI.Settings.mirror = mirror.Selected == true
end
-- Components --
local LineFrame = GUI.Frame(GUI.RectTransform(Vector2(1, 0.1), settingsList.Content.RectTransform), nil)
local Line = GUI.Frame(GUI.RectTransform(Vector2(1, 1), LineFrame.RectTransform, GUI.Anchor.Center), "HorizontalLine")
local subtext2 = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.08), settingsList.Content.RectTransform), "Enabled Components", nil, nil, GUI.Alignment.Center)
subtext2.TextScale = 1.3
subtext2.TextColor = Color(255,255,255)
local lightcomponent = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Light Component Enabled")
lightcomponent.Selected = EditGUI.Settings.lightcomponent
lightcomponent.OnSelected = function ()
EditGUI.Settings.lightcomponent = lightcomponent.Selected == true
end
local holdable = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Holdable Component Enabled")
holdable.Selected = EditGUI.Settings.holdable
holdable.OnSelected = function ()
EditGUI.Settings.holdable = holdable.Selected == true
end
local connectionpanel = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "ConnectionPanel Component Enabled")
connectionpanel.Selected = EditGUI.Settings.connectionpanel
connectionpanel.OnSelected = function ()
EditGUI.Settings.connectionpanel = connectionpanel.Selected == true
end
local fabricator = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Fabricator Component Enabled")
fabricator.Selected = EditGUI.Settings.fabricator
fabricator.OnSelected = function ()
EditGUI.Settings.fabricator = fabricator.Selected == true
end
local deconstructor = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Deconstructor Component Enabled")
deconstructor.Selected = EditGUI.Settings.deconstructor
deconstructor.OnSelected = function ()
EditGUI.Settings.deconstructor = deconstructor.Selected == true
end
local reactor = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Reactor Component Enabled")
reactor.Selected = EditGUI.Settings.reactor
reactor.OnSelected = function ()
EditGUI.Settings.reactor = reactor.Selected == true
end
local oxygengenerator = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "OxygenGenerator Component Enabled")
oxygengenerator.Selected = EditGUI.Settings.oxygengenerator
oxygengenerator.OnSelected = function ()
EditGUI.Settings.oxygengenerator = oxygengenerator.Selected == true
end
local sonar = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Sonar Component Enabled")
sonar.Selected = EditGUI.Settings.sonar
sonar.OnSelected = function ()
EditGUI.Settings.sonar = sonar.Selected == true
end
local repairable = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Repairable Component Enabled")
repairable.Selected = EditGUI.Settings.repairable
repairable.OnSelected = function ()
EditGUI.Settings.repairable = repairable.Selected == true
end
local powertransfer = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "PowerTransfer Component Enabled")
powertransfer.Selected = EditGUI.Settings.powertransfer
powertransfer.OnSelected = function ()
EditGUI.Settings.powertransfer = powertransfer.Selected == true
end
local itemcontainer = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "ItemContainer Component Enabled")
itemcontainer.Selected = EditGUI.Settings.itemcontainer
itemcontainer.OnSelected = function ()
EditGUI.Settings.itemcontainer = itemcontainer.Selected == true
end
local door = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Door Component Enabled")
door.Selected = EditGUI.Settings.door
door.OnSelected = function ()
EditGUI.Settings.door = door.Selected == true
end
local itemlabel = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "ItemLabel Component Enabled")
itemlabel.Selected = EditGUI.Settings.itemlabel
itemlabel.OnSelected = function ()
EditGUI.Settings.itemlabel = itemlabel.Selected == true
end
local quality = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Quality Component Enabled")
quality.Selected = EditGUI.Settings.quality
quality.OnSelected = function ()
EditGUI.Settings.quality = quality.Selected == true
end
local components = GUI.TickBox(GUI.RectTransform(Vector2(1, 0.2), settingsList.Content.RectTransform), "Components Enabled")
components.Selected = EditGUI.Settings.components
components.OnSelected = function ()
EditGUI.Settings.components = components.Selected == true
end
end
if EditGUI.Settings.allowtargetingnoninteractable == true then
targetnoninteractablelayout.visible = true
else
targetnoninteractablelayout.visible = false
end
if EditGUI.Settings.allowtargetingstructures == true then
targetlayout.visible = true
else
targetlayout.visible = false
end
if EditGUI.Settings.allowtargetingitems == true then
targetitems.visible = true
else
targetitems.visible = false
end
if Game.IsMultiplayer then
if EditGUI.owner.HasPermission(ClientPermissions.All) then
permissiondropdownlayout.visible = true
allowtargetingitems.visible = true
allowtargetingnoninteractable.visible = true
tagstonottargetlayout.visible = true
ValueSettings()
else
permissiondropdownlayout.visible = false
allowtargetingitems.visible = false
allowtargetingnoninteractable.visible = false
tagstonottargetlayout.visible = false
end
else
ValueSettings()
end
end
-- Settings End --
Links = function()
if itemedit1 and itemedit2 ~= nil then
local isLinked = false
for key, value in pairs(itemedit1.linkedTo) do
if value == itemedit2 then
isLinked = true
break
end
end
if isLinked then
Unlink = true
linktargets.Text = "Unlink"
else
Unlink = false
linktargets.Text = "Link"
end
end
end
local functionTable = {
LightComponent = LightComponentfunction,
Holdable = Holdablefunction,
ConnectionPanel = ConnectionPanelfunction,
Fabricator = Fabricatorfunction,
Deconstructor = Deconstructorfunction,
Reactor = Reactorfunction,
OxygenGenerator = OxygenGeneratorfunction,
Sonar = Sonarfunction,
Repairable = Repairablefunction,
ItemContainer = ItemContainerfunction,
Door = Doorfunction,
ItemLabel = ItemLabelfunction,
Quality = Qualityfunction,
AndComponent = AndComponentfunction,
GreaterComponent = GreaterComponentfunction,
EqualsComponent = EqualsComponentfunction,
XorComponent = XorComponentfunction,
OrComponent = OrComponentfunction,
SignalCheckComponent = SignalCheckComponentfunction,
ConcatComponent = ConcatComponentfunction,
MemoryComponent = MemoryComponentfunction,
SubtractComponent = SubtractComponentfunction,
DivideComponent = DivideComponentfunction,
OscillatorComponent = OscillatorComponentfunction,
ColorComponent = ColorComponentfunction,
NotComponent = NotComponentfunction,
TrigonometricFunctionComponent = TrigonometricComponentfunction,
FunctionComponent = FunctionComponentfunction,
ExponentiationComponent = ExponentiationComponentfunction,
ModuloComponent = ModuloComponentfunction,
DelayComponent = DelayComponentfunction,
RelayComponent = RelayComponentfunction,
WifiComponent = WifiComponentfunction,
RegExFindComponent = RegExFindComponentfunction,
}
local reloadvalues = function()
menuContent.RemoveChild(menuList)
MainComponentfunction()
componentGUIElements = {}
if targeting == "items" then
for key, value in ipairs(itemedit.Components) do
if value.Name ~= "CustomInterface" then
local functionToCall = functionTable[value.Name]
if functionToCall and type(functionToCall) == "function" then
componentGUIElements[value.Name] = value
local component = itemedit.Components[key]
functionToCall(component, key)
end
end
end
end
Links()
end
local miscbuttons = function()
local misc = GUI.ListBox(GUI.RectTransform(Vector2(0.93, 0.124), menuContent.RectTransform, GUI.Anchor.BottomCenter))
misc.RectTransform.AbsoluteOffset = Point(0, 23)
local misclayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.5), misc.Content.RectTransform), nil)
misclayout.isHorizontal = true
misclayout.Stretch = true
misclayout.RelativeSpacing = 0.004
local apply = GUI.Button(GUI.RectTransform(Vector2(0.482, 0.2), misclayout.RectTransform), "Apply")
apply.OnClicked = function()
EditGUI.networkstart()
if Game.IsMultiplayer and itemedit then
local itemeditnetwork = Networking.Start("servermsgstart")
itemeditnetwork.WriteUInt16(UShort(itemedit.ID))
itemeditnetwork.WriteSingle(itemedit.SpriteDepth)
itemeditnetwork.WriteSingle(itemedit.Rotation)
itemeditnetwork.WriteSingle(itemedit.Scale)
itemeditnetwork.WriteSingle(itemedit.Condition)
itemeditnetwork.WriteString(itemedit.Tags)
itemeditnetwork.WriteBoolean(itemedit.NonInteractable)
itemeditnetwork.WriteBoolean(itemedit.NonPlayerTeamInteractable)
itemeditnetwork.WriteBoolean(itemedit.InvulnerableToDamage)
itemeditnetwork.WriteBoolean(itemedit.DisplaySideBySideWhenLinked)
itemeditnetwork.WriteBoolean(itemedit.HiddenInGame)
Networking.Send(itemeditnetwork)
end
end
linktargets = GUI.Button(GUI.RectTransform(Vector2(0.482, 0.2), misclayout.RectTransform), "None")
linktargets.OnClicked = function()
if itemedit1 == nil or itemedit2 == nil then
return
end
if not itemedit1.Linkable then
EditGUI.AddMessage(itemedit1.Name .. " is not Linkable", EditGUI.owner)
return
end
if not itemedit2.Linkable then
EditGUI.AddMessage(itemedit2.Name .. " is not Linkable", EditGUI.owner)
return
end
if Unlink == true then
if CLIENT and Game.IsMultiplayer then
local msg = Networking.Start("linkremove")
msg.WriteUInt16(UShort(itemedit1.ID))
msg.WriteUInt16(UShort(itemedit2.ID))
Networking.Send(msg)
links = true
else
itemedit1.RemoveLinked(itemedit2)
itemedit2.RemoveLinked(itemedit1)
Links()
end
else
if CLIENT and Game.IsMultiplayer then
local msg = Networking.Start("linkadd")
msg.WriteUInt16(UShort(itemedit1.ID))
msg.WriteUInt16(UShort(itemedit2.ID))
Networking.Send(msg)
links = true
else
itemedit1.AddLinked(itemedit2)
itemedit2.AddLinked(itemedit1)
Links()
end
end
end
local settingsbutton = GUI.Button(GUI.RectTransform(Vector2(0.482, 0.2), misclayout.RectTransform), "Settings")
settingsbutton.OnClicked = function()
if settings == true then
settings = false
Settingsfunction()
else
settings = true
Settingsfunction()
end
end
closeButton = GUI.Button(GUI.RectTransform(Vector2(1, 1), misc.Content.RectTransform), "Close", GUI.Alignment.Center)
closeButton.OnClicked = function ()
frame.ClearChildren()
menu = nil
itemedit = nil
itemedit1 = nil
itemedit2 = nil
settings = false
itemmovekey = false
Hook.Remove("keyUpdate", "itemmovekey")
end
end
local itemeditbuttons = function()
local targets = GUI.ListBox(GUI.RectTransform(Vector2(0.93, 0.1), menuContent.RectTransform, GUI.Anchor.TopCenter))
targets.RectTransform.AbsoluteOffset = Point(0, 17)
local chooseitem = GUI.TextBlock(GUI.RectTransform(Vector2(1, 0.3), targets.Content.RectTransform), "Choose What Item To Edit", nil, nil, GUI.Alignment.Center)
local itemeditlayout = GUI.LayoutGroup(GUI.RectTransform(Vector2(1, 0.5), targets.Content.RectTransform), nil)
itemeditlayout.isHorizontal = true
itemeditlayout.Stretch = true
itemeditlayout.RelativeSpacing = 0.008
itemeditbutton1 = GUI.Button(GUI.RectTransform(Vector2(0.482, 0.2), itemeditlayout.RectTransform), "None")
itemeditbutton1.OnClicked = function()
check = true
itemeditbutton1.TextColor = Color((10), (10), (100))
itemeditbutton2.TextColor = Color((16), (34), (33))
if itemedit1 ~= nil then
itemname.Text = itemedit1.Name
itemedit = itemedit1
reloadvalues()
itemname.Text = itemedit1.Name
settings = false
Settingsfunction()
end
end
itemeditbutton2 = GUI.Button(GUI.RectTransform(Vector2(0.482, 0.2), itemeditlayout.RectTransform), "None")
itemeditbutton2.OnClicked = function()
check = false
itemeditbutton1.TextColor = Color((16), (34), (33))
itemeditbutton2.TextColor = Color((10), (10), (100))
if itemedit2 ~= nil then
itemname.Text = itemedit2.Name
itemedit = itemedit2
reloadvalues()
itemname.Text = itemedit2.Name
settings = false
Settingsfunction()
end
end
end
Hook.Add("Lua_Editor", "luaeditor", function(statusEffect, deltaTime, item)
EditGUI.owner = FindClientCharacter(item.ParentInventory.Owner)
local target = findtarget.findtarget(item)
-- Start Of Checks
if item.ParentInventory.Owner ~= Character.Controlled then
return
end
if Game.IsMultiplayer then
if EditGUI.Settings.permissionsetting ~= 0 then
if not EditGUI.owner.HasPermission(ClientPermissions[EditGUI.Settings.permissionsetting]) then
EditGUI.AddMessage("Insuffient Permissions", EditGUI.owner)
return
end
else
if EditGUI.owner.Permissions == 0 then
EditGUI.AddMessage("Insuffient Permissions", EditGUI.owner)
return
end
end
end
if target == nil then
if menu == nil then
MainComponentfunction()
itemeditbuttons()
miscbuttons()
end
EditGUI.AddMessage("No item found", EditGUI.owner)
return
end
if target == itemedit1 or target == itemedit2 then
EditGUI.AddMessage("Targeted items cannot be the same", EditGUI.owner)
return
end
if EditGUI.ClientsideSettings.targetingsetting == "Walls" and EditGUI.Settings.allowtargetingstructures == true then
targeting = "walls"
elseif EditGUI.ClientsideSettings.targetingsetting == "Hulls" and EditGUI.Settings.allowtargetingstructures == true then
targeting = "hulls"
elseif EditGUI.ClientsideSettings.targetingsetting == "Gaps" and EditGUI.Settings.allowtargetingstructures == true then
targeting = "gaps"
else
targeting = "items"
end
if check == true then
itemedit1 = target
itemedit = itemedit1
else
itemedit2 = target
itemedit = itemedit2
end
if menu == nil then
MainComponentfunction()
itemeditbuttons()
miscbuttons()
end
reloadvalues()
if itemedit == nil then
return
end
if itemedit2 ~= nil then
Links()
end
if check == true then
itemedit1 = target
itemedit = itemedit1
itemeditbutton1.Text = itemedit1.Name
itemname.Text = itemedit1.Name
itemeditbutton1.TextColor = Color((10), (10), (100))
itemeditbutton2.TextColor = Color((16), (34), (33))
else
itemedit2 = target
itemedit = itemedit2
itemeditbutton2.Text = itemedit2.Name
itemname.Text = itemedit2.Name
itemeditbutton1.TextColor = Color((16), (34), (33))
itemeditbutton2.TextColor = Color((10), (10), (100))
end
if itemmovekey ~= true then
itemmovekey = true
local timer = 0
local interval = 0.15
Hook.Add("keyUpdate", "itemmovekey", function (keyargs)
timer = timer + keyargs
if timer >= interval then
if PlayerInput.KeyDown(Keys.Up) then
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "Move", 0, EditGUI.ClientsideSettings.movementamount)
else
itemedit.Move(Vector2(0, EditGUI.ClientsideSettings.movementamount), false)
end
end
if PlayerInput.KeyDown(Keys.Down) then
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "Move", 0, -EditGUI.ClientsideSettings.movementamount)
else
itemedit.Move(Vector2(0, -EditGUI.ClientsideSettings.movementamount), false)
end
end
if PlayerInput.KeyDown(Keys.Left) then
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "Move", -EditGUI.ClientsideSettings.movementamount, 0)
else
itemedit.Move(Vector2(-EditGUI.ClientsideSettings.movementamount, 0), false)
end
end
if PlayerInput.KeyDown(Keys.Right) then
if Game.IsMultiplayer then
Update.itemupdatevalue.fn(itemedit.ID, "Move", EditGUI.ClientsideSettings.movementamount, 0)
else
itemedit.Move(Vector2(EditGUI.ClientsideSettings.movementamount, 0), false)
end
end
timer = 0
end
end)
end
end)
Hook.Patch("Barotrauma.GameScreen", "AddToGUIUpdateList", function()
frame.AddToGUIUpdateList()
end)
Hook.Patch("Barotrauma.SubEditorScreen", "AddToGUIUpdateList", function()
frame.AddToGUIUpdateList()
end)