void SetupItems(func_door door) { if ((spawnflags & DOOR_SILVER_KEY) != 0) { door.items = door_items.IT_KEY1; } if ((spawnflags & DOOR_GOLD_KEY) != 0) { door.items = door_items.IT_KEY2; } }
void SetupTrigger(func_door door) { var collider = door.GetComponent <BoxCollider>(); var colliderSize = this.size; colliderSize.x += 0.4f; colliderSize.z += 0.4f; collider.size = colliderSize; }
void SetupMovement(func_door door) { Vector3 movedir; float amount; if (angle == -1) // moving up { movedir = Vector3.up; amount = this.size.y; } else if (angle == -2) // moving down { movedir = Vector2.down; amount = this.size.y; } else if (angle == 0 || angle == 90 || angle == 180 || angle == 270) { movedir = Quaternion.AngleAxis(-angle, Vector3.up) * Vector3.right; amount = angle == 0 || angle == 180 ? this.size.x : this.size.z; } else { movedir = Vector3.zero; amount = 0.0f; Debug.LogError("Unexpected angle: " + angle); } door.pos1 = door.transform.position; door.pos2 = door.pos1 + movedir * (amount - BSPFile.Scale(lip)); if ((this.spawnflags & DOOR_START_OPEN) != 0) { door.transform.position = door.pos2; // swap positions var temp = door.pos1; door.pos1 = door.pos2; door.pos2 = temp; } }