2023-02-04

Learning about the different kind of ink game controllers

credits from psiberx:

inkGameController has a ref to library

inkLogicController has a ref to game controller (kind of)

what controller can spawn is defined by the library:

  • library items defined in the library itself
  • library items from external libs that are listed in the special section

and later on added:

inkGameController connects widget library item to ink layer / window, it provides access to game instance, library animations, sounds (can be attached to a library item)

inkLogicController is a lightweight controller that doesn't > have access to game or resources functions (can be attached > to any widget)

those are fundamental, others derive from them

What I discovered way later is that for example texts in biomonitor's chemicals report (the one which displays for Sandra Dorset: hydroxyzine, tramadol, bupropion, etc) are animated with an inkLogicController which manages an inkAnimTextValueProgress (a.k.a inkanimTextValueProgressInterpolator in the natives) to animate the text's value over time.

Informations about inkMask

Some inks cannot be created and run in scripts, as for example inkMask. So there's no point in e.g. rebuilding Sandra's Rescue .inkwidget from scratch in code since it uses a lot of them.

One can reuse the .inkwidget as-is, and just redefine the animations.

Or rebuild the .inkwidget partially in code, by still leveraging inkMask from the source, to some extend as stated by psiberx (which I have no idea up to which extend).

🆕 2023/03/31: Codeware might now allow it.