|
On 3/20/2010 7:10 PM, Jonathan Castello wrote:
On Sat, Mar 20, 2010 at 7:04 PM, Christopher Eykamp<chris@eykamp.com> wrote:If this works: newpt = bot:getLoc():__mul(2) Shouldn't this: newpt = bot:getLoc() * 2Without knowing anything else about your situation, it looks like you set __mul on the table itself, rather than on its metatable. ~Jonathan
I'm not sure that's correct: for k,v in pairs(getmetatable(bot:getLoc())) do print(k,v) end Results in: lenSquared function: 01875200 __mul function: 01877168 distanceTo function: 01875330 __add function: 01877198 distSquared function: 01875298 len function: 01875258 getxy function: 018751C0 angleTo function: 018752D8 new function: 018771C8I know I probably haven't provided enough information, but I'm not really sure what would be helpful without just dumping an overwhelming amount of data into this message.
bot:getLoc returns a C++ class called a Point, which is translated to a Lua class by the same name by Lunar. I can add methods to the Point metatable by altering a table called Point (created by Lunar). So I added a method called __mul(), which works when called as shown in my original post, but not when used with the * operator.