From 10c22d35678f96e722f25a12badca98febb2921e Mon Sep 17 00:00:00 2001 From: Indrajith K L Date: Wed, 5 Nov 2025 01:50:32 +0530 Subject: Adds Game Jam Ready Templates & ReiLua API Updates (Most of the code is Copilot Generated LOL) --- template/lib/classic.lua | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 template/lib/classic.lua (limited to 'template/lib/classic.lua') diff --git a/template/lib/classic.lua b/template/lib/classic.lua new file mode 100644 index 0000000..379b6da --- /dev/null +++ b/template/lib/classic.lua @@ -0,0 +1,67 @@ +-- +-- classic +-- +-- Copyright (c) 2014, rxi +-- +-- This module is free software; you can redistribute it and/or modify it under +-- the terms of the MIT license. See LICENSE for details. +-- + +local Object = {} +Object.__index = Object + + +function Object:new() +end + + +function Object:extend() + local cls = {} + for k, v in pairs(self) do + if k:find("__") == 1 then + cls[k] = v + end + end + cls.__index = cls + cls.super = self + setmetatable(cls, self) + return cls +end + + +function Object:implement(...) + for _, cls in pairs({...}) do + for k, v in pairs(cls) do + if self[k] == nil and type(v) == "function" then + self[k] = v + end + end + end +end + + +function Object:is(T) + local mt = getmetatable(self) + while mt do + if mt == T then + return true + end + mt = getmetatable(mt) + end + return false +end + + +function Object:__tostring() + return "Object" +end + + +function Object:__call(...) + local obj = setmetatable({}, self) + obj:new(...) + return obj +end + + +return Object -- cgit v1.2.3