CCG/Kind: Interior Steam Cab

From TrainzOnline
< CCG
Jump to: navigation, search

STEAM CAB INTERIORS

TRS steam cab interiors have been set-up in generally the same way as diesel and electric cabs with a few additional steam specific features.

Many of the levers and fireplates have several moving objects and required mouse controlled animations. This differed from the usual lever types with only one object, set to rotate around an attachment point.

Not only did the levers need reviewing, but the cab firebox itself had to produce fire and glow variations and the coal shoveller needed to be controlled and linked to the coal requirements also.

Download PB15 Interior source and in-games files here: http://www.auran.com/TRS2004/downloads/contentcreation/TRS2004_PB15_interior.zip


PB15 Steam Interior Config.txt

kuid                  <KUID:-3:10191>
kind                  "interior"
script                "pb15cabin"
class                 "PB15Cabin"
camera                -0.769, 0.566, 0.617
cameralist
{
 camera0 0.817, 0.026, 0.654, 0.026, -0.146
 camera1 -0.808, 0.474, 0.694, 0.214, -0.773
 camera2 -1.429, 0.461, 0.617, 0.162, -0.075
 camera3 -0.769, 0.566, 0.617,0.157, -0.125
 camera4 0.703, 0.831, 0.694, -0.715, -0.561
 camera5 1.344, 0.305, 0.617, -0.015, -0.049
}
cameradefault 3
obsolete-table
{
 0 <KUID:44179:55003>
}
  
soundscript
{
 coal_on
 {
   trigger coal_on
   attachment a.coalman
   ambient 1
   nostartdelay 1
   repeat-delay 0,0.001
   distance 5,200
   sound
   {
     sound/coal_shovel2.wav
   }
 }
 shovel_againstmetal
 {
   trigger shovel_againstmetal
   attachment a.coalman
   ambient 1
   nostartdelay 1
   repeat-delay 0,0.001
   distance 5,200
   sound
   {
     sound/shovel_hit.wav
   }
 }
 step_metal
 {
   trigger step_metal
   attachment a.coalman
   ambient 1
   nostartdelay 1
   repeat-delay 0,0.001
   distance 5,200
   sound
   {
     sound/metal_footstep_left.wav
   }
 }
 coal_off
 {
   trigger coal_off
   attachment a.coalman
   nostartdelay 1
   repeat-delay 0,0.001
   distance 5,200
   sound
    {
      sound/coal_into_firebox1.wav
    }
  }
}
mesh-table
{
  default
  {
   mesh PB_interior_main.im
   auto-create 1
  }
  trainbrake_lever
  {
   mesh brake_lever/brake_lever.im
   auto-create 1
   att a.brake
   limits 0, 4
   angles -0.75, 0.35
   notches 0, 0.5,1.0
   notchheight 1, 1, 1
   radius 0.16
   att-parent default
   kind lever
 }
 left_window
 {
   mesh window_sides.im
   auto-create 1
   limits 0, 1.0
   angles 0, -1
   notches 0, 1.0
   notchheight 1,1
   att a.window_l
   att-parent default
   kind lever
 }
 right_window
 {
   mesh window_sides.im
   auto-create 1
   att a.window_r
   att-parent default
   limits 0, 1.0
   angles 0, -1
   notches 0, 1.0
   notchheight 1,1
   kind lever
 }
 left_sliding_window
 {
   mesh window_sliding.im
   auto-create 1
   att a.windowsliding_l
   att-parent default
   limits 0, 1.0
   angles 0, -0.009
   notches 0, 1.0
   notchheight 1,1
   kind lever
 }
  
 right_sliding_window
 {
   mesh window_sliding.im
   auto-create 1
   att a.windowsliding_r
   att-parent default
   limits 0, 1
   angles 0, -0.009
   notches 0, 1.0
   notchheight 1,1
   kind lever
 }
   
 cylinder_drain
 {
   limits 0,4
   angles 0,-0.3
   mesh cylinder_clean/cylinder_clean.im
   auto-create 1
   limits 0, 1.0
   notches 0, 1.0
   notchheight 1, 1
   att a.cylinderclean
   att-parent default
   kind lever
 }
   
 regulator
 {
   mesh regulator/regulator.im
   anim regulator/regulator.kin
   auto-create 1
   att a.regulator
   limits 0, 1.0
   x-notches 0, 0.25, 0.5, 0.75, 1.0
   x-notchheight 1, 1, 1, 1, 1
   att-parent default
   kind animated-lever
   test-collisions 0
   mousespeed -1.0
 }
   
 regulator-collision-box
 {
   mesh regulator/selection_box/selection_box.im
   att-parent regulator
   att a.selection_box
   auto-create 1
   kind collision-proxy
   opacity 0
   collision-parent regulator
 }
   
 seat0
 {
   mesh seat/seat.im
   anim seat/seat.kin
   auto-create 1
   limits 0, 1.0
   notches 0, 1.0
   notchheight 1, 1
   att a.seat0
   att-parent default
   kind animated-lever
   test-collisions 0
 }
  
 seat0-collision-box
 {
   mesh seat/selection_box/selection_box.im
   att-parent seat0
   att a.selection_box
   auto-create 1
   kind collision-proxy
   opacity 0
   collision-parent seat0
 }
  
 seat1
 {
   mesh seat/seat.im
   anim seat/seat.kin
   auto-create 1
   limits 0, 1.0
   notches 0, 1.0
   notchheight 1, 1
   att a.seat1
   att-parent default
   kind animated-lever
   test-collisions 0
 }
  
 seat1-collision-box
 {
   mesh seat/selection_box/selection_box.im
   att-parent seat1
   att a.selection_box
   auto-create 1
   kind collision-proxy
   opacity 0
   collision-parent seat1
 }
  
 water_injector_0
 {
   mesh injector/injector.im
   anim injector/injector.kin
   auto-create 1
   limits 0, 1.0
   notches 0, 1.0
   notchheight 1, 1
   att a.injector0
   att-parent default
   kind animated-lever
   test-collisions 0
   mousespeed -1.0
 } 
 
 water_injector_0-collision-box
 {
   mesh injector/selection_box/selection_box.im
   att-parent water_injector_0
   att a.selection_box
   auto-create 1
   kind collision-proxy
   opacity 0
   collision-parent water_injector_0
 }
  
 water_injector_1
 {
   mesh injector/injector.im
   anim injector/injector.kin
   auto-create 1
   limits 0, 1.0
   notches 0, 1.0
   notchheight 1, 1
   att a.injector1
   att-parent default
   kind animated-lever
   test-collisions 0
   mousespeed -1.0
 }
 
 water_injector_1-collision-box
 {
   mesh injector/selection_box/selection_box.im 
   att-parent water_injector_1
   att a.selection_box
   auto-create 1
   kind collision-proxy
   opacity 0
   collision-parent water_injector_1
 }
  
 fire_plates
 {
   mesh fireplates/fireplates.im
   anim fireplates/fireplates.kin
   auto-create 1
   kind animated-lever
   test-collisions 0
   notches 0, 1.0
   notchheight 1,1
   limits 0, 1.0
 }
  
 fire_plates-collision-box
 {
   mesh fireplates/selection_box/selection_box.im
   att-parent fire_plates
   att a.selection_box
   auto-create 1
   kind collision-proxy
   opacity 0
   collision-parent fire_plates
 }
  
 water_valve0
 {
   mesh water_valve/water_valve.im
   auto-create 1
   att a.water_valve0
   att-parent default
   kind lever
 }
  
 water_valve1
 {
   mesh water_valve/water_valve.im
   auto-create 1
   att a.water_valve1
   att-parent default
   kind lever
 }
  
 water_valve2
 {
   mesh water_valve/water_valve.im
   auto-create 1
   att a.water_valve2
   att-parent default
   kind lever
 }
  
 water_valve3
 {
   mesh water_valve/water_valve.im
   auto-create 1
   att a.water_valve3
   att-parent default
   kind lever
 }
  
 water_valve4
 {
   mesh water_valve/water_valve.im
   auto-create 1
   att a.water_valve4
   att-parent default
   kind lever
 }
  
 water_valve5
 {
   mesh water_valve/water_valve.im
   auto-create 1
   att a.water_valve5
   att-parent default
   kind lever
 }
  
 blowdown
 {
   kind lever
   mesh blowdown/blowdown.im
   auto-create 1
   limits 0, 1.0
   notches 0, 1.0
   notchheight 1, 1
   angles 0, 0.01
   att a.blowdown
   att-parent default
   mousespeed -1.0
 }
  
 sanding_lever
 {
   kind lever
   mesh sanding_lever/sanding_lever.im
   auto-create 1
   limits 0, 1.0
   notches 0, 1.0
   notchheight 1, 1
   angles 0, 0.2
   att a.sanding_lever
   att-parent default
   mousespeed -1.0
 }
  
 whistle_lever
 {
   kind lever
   mesh whistle_lever/whistle_lever.im
   auto-create 1
   limits 0, 1.0
   notches 0, 1.0
   notchheight 1, 1
   angles 0, 0.3
   att a.whistle
   att-parent default
 }
  
 bplocomain_needle
 {
   kind needle
   mesh main_res_needle/main_res_needle.im
   auto-create 1
   att a.reservoir_press_red
   att-parent default
   limits 0, 3600
 }
 bptrainbrakepipe_needle
 {
   kind needle
   mesh trainline_needle_black/trainline_needle_black.im
   auto-create 1
   att a.brake_press_black
   att-parent default
   limits 0, 3600
 }
   
 boiler_needle
 {
   kind needle
   mesh boiler_needle/boiler_needle.im
   att a.boiler_pressure
   limits 0, 1570
   auto-create 1
 }
  
 reverser
 {
   mesh reverser/reverser.pm
   anim reverser/reverser.kin
   auto-create 1
   kind animated-lever
   test-collisions 0
   limits -1.0, 1.0
 }
  
 reverser-collision-box
 {
   mesh reverser/selection_box/selection_box.im
   att-parent reverser
   att a.selection_box
   auto-create 1
   kind collision-proxy
   opacity 0
   collision-parent reverser
 }
 waterglass_right
 {
   mesh waterglass_right.im
   anim waterglass_right.kin
   auto-create 1
   limits 0, 100
   kind animated-dial
 }
 waterglass_left
 {
   mesh waterglass_left.im
   anim waterglass_left.kin
   auto-create 1
   limits 0, 100
   kind animated-dial
 }
 firebox
 {
   mesh firebox.im
   auto-create 1
   kind firebox
   test-collisions 0
 }
 fire
 {
   mesh fire.im
   auto-create 1
   light 0
   test-collisions 0
 }
 coal
 {
   mesh coal.im
   auto-create 1
   light 0
   test-collisions 0
 }
 fireglow
 {
   mesh fireglow.im
   auto-create 1
   light 0
   test-collisions 0
 }
 coalman
 {
   mesh coalman/coalman.im
   auto-create 1
   att-parent default
   att a.coalman
   effects
   {
      shovel
        {
          kind animation
          anim coalman/Coalman_shovel.kin
        }
      wave
        {
          kind animation
          anim coalman/Coalman_wave.kin
        }
      idle1
        {
          kind animation
          anim coalman/Coalman_loop1.kin
        }
      idle2
        {
          kind animation
          anim coalman/Coalman_loop2.kin
        }
      loop2shovel
        {
          kind animation
          anim coalman/Coalman_loop2shovel.kin
        }
      shovel2loop
        {
          kind animation
          anim coalman/Coalman_shovel2loop.kin
        }
      wipebrow
        {
          kind animation
          anim coalman/Coalman_wipebrow.kin
        }
      }
   }
}


Return to CCG Index

Content Creator's Guide

Personal tools