[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Colon notation in object-oriented programming
- From: Petri Häkkinen <petrih3@...>
- Date: Sun, 5 Mar 2017 19:09:35 +0200
On Mar 5, 2017, at 6:57 PM, "Soni L." <fakedme@gmail.com> wrote:
> Write a modding API where you use
>
> get_inventory_item(something, slot) -- aka a "static non-replaceable function"
>
> And "get_inventory_item" cannot be replaced and you don't call a function from "something" through it. So e.g. no
>
> function get_inventory_item(something, slot)
> return something.get_inventory_item(something, slot) -- aka an "object function"
> end
>
> And no having a lookup table to map objects to functions.
function get_inventory_item(obj, slot)
if obj.inv then
return obj.inv[slot]
end
end
Sorry couldn't resist :)
You probably want opaque objects (don't want the inventory table to be directly accessible on user side):
local inventories = {}
function get_inventory_item(obj, slot)
local inv = inventories[obj]
if inv then
return inv[slot]
end
end
:-)
Petri