# Creating an incinerator

Portal Level Creation

## Introduction

In this tutorial you will learn how to create an Aperture Science Emergency Intelligence Incinerator.

## Instructions

### The Incinerator

Create a prop_dynamic entity Set the world model to `models/props_bts/glados_aperturedoor.mdl`

Change its name to ` model_incinerator_door ` Choose `Collisions` and choose `Not Solid`

### The Floor

Make a floor, Two brushes are `192w*64l*16h` and the other 2 are `40w*128l*16h`

The floor of the incinerator

### The Little Room

The Small Room of the incinerator

Make a little room, the walls for each side contain 2 brushes.

2 walls are `152w*16*128h` brushes.

The top part of the walls have the texture `metalwall_bts_006a` and the bottom part has the texture `metalwall_bts_006b_gradient`.

Rotate the faces by 180 degrees. Align the textures with the texture tool with Texture Shift.

The floor of the little room is `128w*128l*16h` and the top face texture is `light_orange001`

### Fire Particles

The Position of the Fire Particle

Create a info_particle_system entity

Set its name to `fire_particles`

Set the angles to `0 270 0`

Set `Particle System Name` to `fire_incinerator_door`

Put this particle in the hole of the incinerator doors

### Manual Collision

Manual Collision

Create a `208*208l*16h` arch with the `invisible` texture and set wall width to "40", Number of sides = 16, Arc = 360, Start Angle = 0

Select the brushes and hold 'ctrl + m' choose the X value and type "25"

Tie the entire shape to a func_detail

Position the brushes just like this.

#### Second Part of Manual Collision

Manual Collision
Manual Collision
Manual Collision

Create a `144*144l*192h` arch with the `invisible` texture

Set Number of sides to 16

Set wall width to 16

Set Arc to 360

Set Start Angle to 0

Select the clipping tool, from the top right of the shape, make a `30 degree cut` from right to left. Then cut off the top side of the shape.

Tie the shape to a func_detail

Now do your best to fit the shape into the incinerator.

Note:  These brushes are for collision so do your best to fit them out.

### Fire Damage to Player

Create a `152w*128*l*224h` brush with the trigger texture.

Tie it to a trigger_hurt entity.

Set `Damage` and `Damage Cap` to `100`

Change `Damage Type` to `BURN`

Set `Zero Damage Force` to `Yes`

### Nudging The Box

Nudging the box

Create a `128s*128l*8h` brush with the trigger texture. Tie it to a trigger_multiple.

Set its name to `nudge_boxes`

Set its `filter_name` to `filter_boxes`

Go to flags and check `Physics Objects` and uncheck `clients`.

Go to outputs and enter the following:

My Output Target Entity Target Input Parameter Delay Only Once
OnTrigger !activator Wake 0.00 No

Copy and paste the trigger_multiple and make it a trigger_push Remove the Output from the "Outputs" tab

Set its move direction to 24 90 0 and leave everything else as it is.

Put the two triggers in the same spot and press ctrl + m. Choose the X value and type "25".

Position them just like this.

### Door Collision

Door Collision

Make `128s*128l*8h` brush with the invisible texture. Tie it to a func_brush entity.

Name it `incinerator_collision_door`

Hold Ctrl + M and change the x value to 25 Position it just like this.

## Sounds

Make an ambient_generic entity and name it to `sound_incinerator`.

Set its `Sound Name` to `Portalgun.pedestal_rotate`

Set its `SourceEntityName` to `model_incinerator_door`

Note:  The sounds are only used in the GLaDOS boss fight, so adding/changing the sound is completely up to you.

### Making the Incinerator Functional

Create 3 logic_relay entities

Name them `relay_incinerator_open`, `relay_incinerator_close`, and `relay_euthanization`

On `relay_incinerator_open` add the following outputs:

My Output Target Entity Target Input Parameter Delay Only Once
OnTrigger fire_particles Start 0.00 No
OnTrigger incinerator_collision_door Disable 0.00 No
OnTrigger model_incinerator_door setanimation open 0.00 No
OnTrigger sound_incinerator playsound 0.00 No

On `relay_incinerator_close` add the following outputs:

My Output Target Entity Target Input Parameter Delay Only Once
OnTrigger fire_particles stop 0.00 No
OnTrigger incinerator_collision_door Enable 0.00 No
OnTrigger model_incinerator_door setanimation close 0.00 No
OnTrigger sound_incinerator playsound 0.00 No

### Killing the Box

Make `128s*128l*48h` brush with the trigger texture. Tie it to a trigger_once entity.

Name it to `trigger_killbox`

Set its `Filter Name` to `filter_boxes`

Go to flags and check `physics objects` and uncheck `Clients`

Enter the following in outputs:

My Output Target Entity Target Input Parameter Delay Only Once
OnStartTouch !activator kill 0.00 No
OnStartTouch relay_euthanization Trigger 0.00 No

## Implementation

Have a certain object trigger `relay_incinerator_open` to open the incinerator

When that certain object deactivates, trigger `relay_incinerator_close`.

If that certain object can't deactivate, make `relay_euthanization` trigger the `relay_incinerator_close`.