I’m pondering altering the grammer for Fill to make it easier for authors to do “FILL BUCKET WITH WATER” or “FILL BUCKET WITH SAND”. The actual mechanisms for this would be in a Liquid or Powder class that’s not part of the Library. What I’m unclear on is what to do in grammar.h. Consider this:
* noun -> Fill
* noun 'from' noun -> Fill
* noun 'with' multi -> Insert reverse;
This works well for filling a bucket with individual things and all the things from an indistinguishable pile (ie “FILL BUCKET WITH ROCKS”). My question is this: is “* noun ‘with’ multi” the correct thing to do?
I’d have “fill X from Y” and “fill X with Y” be synonyms. (In fact in Hadean Lands I have done exactly this. Both map to Insert-reversed.)
The common case is “FILL BUCKET FROM STREAM”, “FILL BUCKET WITH WATER” where there’s a single scenery object named stream/water. In theory you might want to distinguish filling something from the container versus filling it with the contents – but this will be less common.
I’m not using the multi token. Reasonable thing to try, although I’m not absolutely sure it works in that position. Test, obviously.
In Tea and Toast I had filling it from and filling it with as different actions, so that when the kettle was filled with hot water the player could type “FILL TEAPOT FROM KETTLE” or “FILL TEAPOT WITH HOT WATER.” Here’s the I7 code for that. But I think zarf is right that these should both just go to insert-reversed as defaults; if the programmer is going to be doing fancy stuff with liquids that requires FILL TEAPOT WITH HOT WATER to be implemented differently from PUT HOT WATER INTO TEAPOT, they should probably be breaking away from the defaults.
And I wouldn’t want “FILL TEAPOT FROM HOT WATER” or “FILL TEAPOT WITH KETTLE” to be rejected. The former is a little awkward but so what.
Given all this, I think it would be best to leave it up to the author to implement FILL like this.
In French, but maybe in English, the question for Fill is the same for Tie (‘to’/‘with’):
– Tie the rope
– Tie the rope to the picket
– Tie the goat with the rope
– Tie the goat
– Tie the goat to the picket
The possibilities are endless!