#Metatable Problems

1 messages · Page 1 of 1 (latest)

solid stream
#

I've been trying to upgrade my module handler by adding in either mixins or multi-inheritance (classes inherited by more than 1 class), but now I'm stuck because the inheritance isn't working. Here's all the features I'm trying to add:

Multi-inheritance/Mixins
Getters - Like in C#
Setters - Like in C#
Making a new class with () or __call - Like in Python

What is wrong with my code, and could someone explain to me what i need to do to fix it?

ornate knot
# solid stream I've been trying to upgrade my module handler by adding in either mixins or mult...

if you wanna do multiple inhertance you could just have subclasses in a class

so like

usually its:

basevehicle -> car
basevehicle -> boat

but if you want like

basevehicle + entity -> car

it might be wierd, so just do it like components

under car, just construct basevehicle and entity

local car = {}
car.__index = car

local Enitity = require(...)
local BaseVehicle = require(...)

function car.new()
  local self = setmetatable({},car)

  self.Base = BaseVehicle.new()
  self.Entity = Enitity.new()

  return self
end

return car 

for the player it could be like

Player -> Manager + Character + Network or something so it could be this:

local Player= {}
Player.__index = Player

local Manager = require(...)
local Character = require(...)
local Network = require(...)

function Player.new()
  local self = setmetatable({},car)

  self.Manager = Manager.new()
  self.Character = Character.new()
  self.Network = Network.new()

  return self
end

return Player