-- this script is responsible for keeping the gui proportions under control

local screen = script.Parent

local BottomLeftControl
local BottomRightControl
local TopLeftControl
local BuildTools

local controlFrame = script.Parent:FindFirstChild("ControlFrame")
local loadoutPadding = 43
local currentLoadout

BottomLeftControl = controlFrame:FindFirstChild("BottomLeftControl")
BottomRightControl = controlFrame:FindFirstChild("BottomRightControl")
TopLeftControl = controlFrame:FindFirstChild("TopLeftControl")
currentLoadout = script.Parent:FindFirstChild("CurrentLoadout")
BuildTools = controlFrame:FindFirstChild("BuildTools")

function makeYRelative()

	BottomLeftControl.SizeConstraint = 2
	BottomRightControl.SizeConstraint = 2
	if TopLeftControl then TopLeftControl.SizeConstraint = 2 end
	if currentLoadout then currentLoadout.SizeConstraint = 2 end
	if BuildTools then BuildTools.Frame.SizeConstraint = 2 end
	
	BottomLeftControl.Position = UDim2.new(0,0,1,-BottomLeftControl.AbsoluteSize.Y)
	BottomRightControl.Position = UDim2.new(1,-BottomRightControl.AbsoluteSize.X,1,-BottomRightControl.AbsoluteSize.Y)
	
end



function makeXRelative()

	BottomLeftControl.SizeConstraint = 1
	BottomRightControl.SizeConstraint = 1
	if TopLeftControl then TopLeftControl.SizeConstraint = 1 end
	if currentLoadout then currentLoadout.SizeConstraint = 1 end
	if BuildTools then BuildTools.Frame.SizeConstraint = 1 end

	BottomLeftControl.Position = UDim2.new(0,0,1,-BottomLeftControl.AbsoluteSize.Y)
	BottomRightControl.Position = UDim2.new(1,-BottomRightControl.AbsoluteSize.X,1,-BottomRightControl.AbsoluteSize.Y)

end

local function resize()
	if screen.AbsoluteSize.x > screen.AbsoluteSize.y then
		makeYRelative()
	else
		makeXRelative()
	end
	if currentLoadout then
		currentLoadout.Position =
			UDim2.new(0,screen.AbsoluteSize.X/2 -currentLoadout.AbsoluteSize.X/2,currentLoadout.Position.Y.Scale,-currentLoadout.AbsoluteSize.Y - loadoutPadding)
	end
end
screen.Changed:connect(function(property)

	if property == "AbsoluteSize" then
		wait()
		resize()
	end

end)

wait()
resize()

