I have this code:
function ToggleInventory() if InventoryOpen == false then if CraftingOpen then ToggleCrafting() elseif TribeOpen then ToggleTribe() end UpdateInventory() UI.Topbar.InventoryButton.Image = "rbxgameasset://Images/backpackactive" Blur.Enabled = true UI.Inventory.Visible = true InventoryOpen = true else UI.Topbar.InventoryButton.Image = "rbxgameasset://Images/backpack (5)" Blur.Enabled = false UI.Inventory.Visible = false InventoryOpen = false end end function ToggleCrafting() if CraftingOpen == false then if InventoryOpen then ToggleInventory() elseif TribeOpen then ToggleTribe() end UpdateCrafting() UI.Topbar.CraftingButton.Image = "rbxgameasset://Images/craftactive" Blur.Enabled = true UI.Crafting.Visible = true CraftingOpen = true else UI.Topbar.CraftingButton.Image = "rbxgameasset://Images/craft" Blur.Enabled = false UI.Crafting.Visible = false CraftingOpen = false end end function ToggleTribe() if TribeOpen == false then if InventoryOpen then ToggleInventory() elseif CraftingOpen then ToggleCrafting() end UI.Topbar.TribeButton.Image = "rbxgameasset://Images/tribeactive" Blur.Enabled = true TribeOpen = true else UI.Topbar.TribeButton.Image = "rbxgameasset://Images/tribe" Blur.Enabled = false TribeOpen = false end end
There is a lot of repeating and I was wondering if there is a more code efficient way of writing this, avoiding repeat lines (if possible)
I think string manipulation such as (for example); UI.Topbar:FindFirstChild(CurrentUI.."Button")...
may be useful