Quantcast
-- SageGearLevel.lua

--sage = sage or {}
--sage.class = sage.class or {}
--
------------------------------------------------------------------------------------------------------
--local rgbHash do
--	local MAX_VALUE = 65536		-- arbitrary
--	local function hash(s)
--		local v = 0
--		for i=1,s:len() do
--			v = 17 * v + s:byte(i)
--			v = (v < MAX_VALUE)
--				and v
--				or math.floor(math.fmod(v, MAX_VALUE))
--		end
--		return v / MAX_VALUE
--	end
--
--	function rgbHash(s)
--		return
--				0.4 + 0.6 * hash("red" .. s),
--				0.4 + 0.6 * hash("green" .. s),
--				0.4 + 0.6 * hash("blue" .. s)
--	end
--end
--
--local Class
--local function newClass(arg)
----	ChatFrame1:AddMessage(arg.name .. " name=" .. tostring(arg.name) .. ", super=" .. tostring(arg.super))
--  local name = (arg and arg.name) or tostring(arg)
--  local super = (arg and arg.super) or Class
--  local class = setmetatable({super=super, name=name}, super)
--	class.__index = class
--	class.class = class
--	class.r, class.g, class.b = rgbHash(name)
--	function class:Debug(...)
--		ChatFrame1:AddMessage(table.concat({name, ": ", ...}, " "), class.r, class.g, class.b)
--	end
--	function class:Print(...)
--		ChatFrame1:AddMessage(string.format(...), class.r, class.g, class.b)
--	end
--	-- make sure there is an _Instantiate at each class so no super gets called twice
--	function class:_Initialize(instance, ...)
--		self.super:_Initialize(instance, ...)
--	end
--
--	return class
--end
--
--do
--	local class = newClass{name="Class"}
--
--	-- default. Many classes will override
--	function class:New(...)		-- self is class
--		local class = self
--		local instance = setmetatable({}, self)
--		class:_Initialize(instance, ...)	-- calls the subbiest class method first
--		return instance
--	end
--
--	function class:NewClass(arg)
--		return newClass(arg)
--	end
--
--	function class:_Initialize(instance)
--	end
--
--	Class = class
--end
--
--sage.class.Class = Class