In the video it may have been hard to see but there is a big FIXME comment that I mention about how I need to standardize object creation.
No system “listens” for the component but it’s how the object action stuff finds the object type so it knows what actions there are. It’s what associated an entity with those createType(“Foo”) things defined in scripts.
I did not define it yet. I think I mentioned that in passing. I’m giving it a type but the type doesn’t exist yet. Not mentioned is that it will pick up the default object type which does have some basic actions.
I’ll keep in mind to maybe do one someday. Mostly I’m trying to keep it semi-interesting for Mythruna players while still getting a little technical because that’s what I’m working on right now. Not sure I’m being successful at either.
typeVars contains runtime variables associated with the type itself. Types are defined at runtime and are not stored as entities. (They are not game objects.) So you can think of it like class variables… the things that exist for every Axe or every Sword and not just a particular instance of Axe or Sword. It would be wasteful to store that information on every instance.
The object action system is part of MOSS and so will be open sourced. Mythruna defines a relatively thing groovy API on top of that which gives the createType() closure and some others. Basically it creates and registers an ObjectType (Java class) which can have a list of actions and super types.
I will definitely be providing more information on that as I get closer to releasing MOSS publicly next year.