Skip to content

Instantly share code, notes, and snippets.

@spotco
Last active August 7, 2022 23:17
Show Gist options
  • Save spotco/bce2265881fbb8f2a1e1179f5f3d5c90 to your computer and use it in GitHub Desktop.
Save spotco/bce2265881fbb8f2a1e1179f5f3d5c90 to your computer and use it in GitHub Desktop.
MenuTemplate.lua
local SPUtil = require(game.ReplicatedStorage.Shared.SPUtil)
local SPDict = require(game.ReplicatedStorage.Shared.SPDict)
local SPList = require(game.ReplicatedStorage.Shared.SPList)
local SPUISystem = require(game.ReplicatedStorage.Shared.SPUISystem)
local MenuBase = require(game.ReplicatedStorage.Menu.MenuBase)
local SPUIChild = require(game.ReplicatedStorage.Shared.SPUIChild)
local SPUIChildButton = require(game.ReplicatedStorage.Menu.SPUIChildButton)
local DebugOut = require(game.ReplicatedStorage.Shared.DebugOut)
local SFXManager = require(game.ReplicatedStorage.Local.SFXManager)
local SPRemoteEvent = require(game.ReplicatedStorage.Shared.SPRemoteEvent)
local EnvironmentSetup = require(game.ReplicatedStorage.LocalShared.EnvironmentSetup)
local GuildInfoUI = {}
function GuildInfoUI:new(_lobby,_spui,_menus)
local self = MenuBase:new(_spui,_menus)
local _obj
local function cons()
_obj = game.ReplicatedStorage.LobbyElementProtos.WorldUIProto.Guild.GuildInfoUI:Clone()
_obj.Name = SPUtil:gen_name(_obj.Name)
self:set_showing(true)
self._native_size = _obj.PrimaryPart.Size
self._size = self._native_size
self:add_cycle_element(_lobby, 1, SPUIChildButton:new(
SPUIChild:new(self, _obj.PrimaryPart, _obj.BackButtonSurface),
_spui,
function()
_lobby._sfx_manager:play_sfx(SFXManager.SFX_MENU_CLOSE)
_menus:remove_menu(self)
end
))
self:transition_update_visual(0)
self:layout()
end
--[[Override--]] function self:do_remove(local_services)
_obj:Destroy()
end
local _alpha = 1
local _scale = 1
--[[Override--]] function self:layout()
self:opt_rescale_to_max_nxy(_spui, 0.8, 0.8, _scale)
local should_update_cframe, cframe = self:opt_update_cframe_params(_spui,{
PositionNXY = Vector2.new(0.5,0.5);
OffsetXYZ = self:anchored_offset(0.5,0.5);
LocalRotationOffset = Vector3.new(0,0,0);
})
if should_update_cframe == true then
_obj:SetPrimaryPartCFrame(cframe)
end
end
--[[Override--]] function self:set_alpha(val)
if _alpha ~= val then
_alpha = val
SPUtil:r_set_alpha(_obj,_alpha)
end
end
--[[Override--]] function self:get_alpha() return _alpha end
--[[Override--]] function self:set_scale(val) _scale = val end
--[[Override--]] function self:get_scale() return _scale end
--[[Override--]] function self:get_native_size()
return self._native_size
end
--[[Override--]] function self:get_size()
return self._size
end
--[[Override--]] function self:set_size(size)
self._size = size
_obj.PrimaryPart.Size = Vector3.new(size.X,size.Y,0)
end
--[[Override--]] function self:get_pos()
return _obj.PrimaryPart.Position
end
--[[Override--]] function self:get_sgui()
return _obj.PrimaryPart.SurfaceGui
end
--[[Override--]] function self:set_showing(val)
if val then
_obj.Parent = EnvironmentSetup:get_world_ui_folder()
else
_obj.Parent = nil
end
end
cons()
return self
end
return GuildInfoUI
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment