#1
23rd Jul 2021 at 10:16 AM
Posts: 143
Thanks: 1416 in 17 Posts
10 Achievements
Creating CallTree-Based Plug-Ins For Objects
Thought I might share an idea that's been at the back of my head, hoping to solicit some advice on the practicality of the endeavour.
I was thinking to add Call-Tree-based plug-in implementation to some objects, for example the mailbox. The cleanest way I can think of would be to have a single added TTAB function that seeks out appropriate universal-object-flagged modder-created controllers and executes via Call Tree whatever TEST/Interaction functions are desired. Creating a mailbox mod would then be an issue of having the main override installed and cloning a provided controller template. A framework like this would allow for many mods to be created for items while lowering conflicts (so long as there is sufficient interest for people to create mods/make their mods compatible for the system). There is a Maxis precedent for this - it's analogous to how the fridge builds its menu. I'm fairly confident in my ability to put this together.
Concerns: Is having every mod have its own global controller just to add at minimum one custom interaction to an object a valid idea? Slightly mitigated if creators make several mods of their own inside their controller, but this won't always be the case. Is there a demonstrable performance impact for having many formless, out of world global controllers that Idle all day long, or is it a non-issue? I've considered also creating the controllers on-demand, similar to how social interactions seem to work, but that would make it necessary to pollute the 'core' file with readable controller GUIDs which would impede the flexibility this system is meant to provide in the first place.
Also, does this sound like anything other modders would be interested in? (I know I want it for a set of my own mods, at least.) If so, what other features would you like to see in something like this? I'm not sure if anything like this has been looked into before (if it has, I haven't found it!
)