From Valve Developer Community
The primary entities of a HL1 scanner are listed below. A complete tutorial (which is the source of the listed information) can be found here
- The player triggers (via a trigger_once) the whole sequence
- The barney walks over to the scanner performs his "retina" animation (scripted_sequence)
- The scanner model (a func_button) is activated so it flashes
- Some sounds (ambient_generic) are played to show that the scanner is operating
- The door (func_door) is triggered to open
- Dr. Kleiner walks over to the picture frame (a prop_dynamic parented to a func_rot_button) using a scripted sequence. As Kleiner plays his picture frame animation, the picture rotates into place.
- The button triggers a func_door to open up and reveal the scanner (a prop_dynamic)
- The scanner gets pushed out by an invisible func_door_rotating beneath it.
- Kleiner walks over to the scanner using another scripted sequence and starts his eyescanner animation.
- The prop_dynamic scanner model changes its appearance using a material_modify_control entity.
- Several ambient_generic entities play eyescanner sounds.
- After a period of time, a func_door is triggered to open, allowing the player to walk through.