Actually the pushing action is defined as what you want. (Moving objects around is a different action, called “pushing it to.”) So you can do this:
[code]Lab is a room. Foyer is a room.
The blue door is a door. It is north of Lab and south of Foyer. It is closed and unopenable.
The blue button is in Lab. It is fixed in place.
Instead of pushing the blue button when the blue door is closed:
say “The blue door slides open.”;
now the blue door is open.[/code]
If you want to know which actions are built-in and how to refer to them, the Index is very helpful, particularly the “Actions” tab. This lists actions various ways–grouped by various characteristics, alphabetic by the name of the action, and alphabetic by the commands used to invoke the action (also two other ways you don’t want to worry about now).
The difference between the name of the action and the name of the command is particularly important here. If you go to the “Commands” listing and look at “push,” you will see this:
This indicates that there are two different actions that can be invoked by a command starting PUSH. If you type PUSH BUTTON that invokes the pushing action, which we just used. If you type PUSH CART WEST or PUSH CART TO WEST that invokes the pushing it to action, which gets referred to in the source code as “pushing the car to the west.”
And if you click on the magnifying glass next to the action, you get a more detailed description, which can be helpful. In particular, it will give you the commands you can use to invoke the action. For pushing you get:
Which means that PRESS BUTTON will also work. (As well as weird things like SHIFT BUTTON and CLEAR BUTTON. I think this is because all those words are defined as global synonyms for “push,” in case the player wants to say something like SHIFT CART WEST. It should be harmless to leave them in for the pushing action.)