Currently, the workaround that's used is that the printer is "consumed" when the process starts and "created" again when the process is completed. This is clunky, though.
Alternatively, in addition to requiresItems, we should add a locksItems property. Inclusion of an item in the locksItems property (still expressed in terms of id and count) creates a lock in gameState for that item, effectively removing it from being usable elsewhere.
Currently, the workaround that's used is that the printer is "consumed" when the process starts and "created" again when the process is completed. This is clunky, though.
Alternatively, in addition to requiresItems, we should add a locksItems property. Inclusion of an item in the locksItems property (still expressed in terms of id and count) creates a lock in gameState for that item, effectively removing it from being usable elsewhere.