Page 1 of 1

[Solved] Turn event.name into actual event name?

Posted: Wed Sep 30, 2020 8:28 pm
by Kingdud
I'm trying to figure out an inter-mod conflict. Part of that is trying to figure out exactly which event is being sent between mods and that it's handled correctly. When I print out event.name, I get '78'. I was hoping for, ya know, an actual name (like script_raised_destroy -- what I expect to find). How can I get the text-version of the event name?

Re: Turn event.name into actual event name?

Posted: Wed Sep 30, 2020 9:02 pm
by Choumiko

Code: Select all

local function reverse_event(id)
  for name, event_id in pairs(defines.events) do
    if id == event_id then
      return name
    end
  end
end
game.print(reverse_event(78))
That should do it

Re: Turn event.name into actual event name?

Posted: Wed Sep 30, 2020 9:11 pm
by Kingdud
Oy vey. Thanks.

Re: [Solved] Turn event.name into actual event name?

Posted: Wed Sep 30, 2020 11:08 pm
by eradicator
For future readers: It's much more efficient to do this as a table lookup:

Code: Select all

local reverse = (function(r) for k,v in pairs(defines.events) do r[v]=k end return r end){}

Code: Select all

game.print(reverse[78])