|
RE: Send in world food to the cattery & Trade food.
I thought of that. In-world food and milk would need to be 'disabled' out-of-the-box. (Note that the issues are easily worked around in the Cattery, in-world is where it takes special consideration.)
This would change how food works:
1) one would be required to remember to 'enable' the food/milk when setting it out. This will lead to far more 'why are my cats not eating' questions.
2) automatic feeders would need to 'enable' food/milk when rezzing it from object inventory. This would either render all after-market feeders inoperable, or force their users to 'enable' each bowl, individually, by hand, prior to placing it in object inventory.
My approach to the problem would be to allow partial-bowl transfers to the Cattery. I would display a message clearly stating the amount to be transferred, so the user knows it's not 'a bowl'. I would pay close attention to race conditions and rounding errors since I would not want someone discovering a way to feed a kibble in-world while sending the bowl to the Cattery with that kibble still in it .. then pulling the bowl back in-world to rinse and repeat.
What is a race condition? This is the term we use when the outcome critically depends upon time. Consider the simple construct 'if (count > 0) then do_something'. Seems simple enough. But what if something comes along between the 'if' and the 'do' changing the count to zero? We're now doing something with a count of 0 even though we (mistakenly) believe we just checked it was non-zero. Yes, this can be countered, but it's something you need to consider BEFORE you blythely write the simple way. Finding races afterwards is extremely difficult and often they're only found after something goes wrong.
|