local vec3 = require "vec3" local transf = require "transf" function data() return { lods = { { animations = { }, children = { { id = "vehicle/tram/schst_lod_0_front.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/schst_lod_0_back.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.8755, 0, 0, 1, }, type = "GROUP", }, }, events = { close_all_doors = { [1] = { forward = true, name = "close_doors", }, [2] = { forward = true, name = "close_doors", }, }, open_all_doors = { [1] = { forward = true, name = "open_doors", }, [2] = { forward = true, name = "open_doors", }, }, }, matConfigs = { { 0, 0, }, }, static = false, visibleFrom = 0, visibleTo = 1700, }, }, metadata = { description = { name = _("Ce 2/2 SchSt"), description = _("Twin axle electrical tram from the game's home town, Schaffhausen, Switzerland.") }, railVehicle = { configs = { { axles = { "vehicle/tram/schst/lod_0_w1.msh" }, } }, topSpeed = 40, weight = 20, engines = { { type = "ELECTRIC", power = 100, tractiveEffort = 40 } }, soundSet = "tram_old" }, transportVehicle = { carrier = "TRAM", capacities = { { type = "PASSENGERS", capacity = 45 } }, loadSpeed = 4, seats = { --driver { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.4, 0.0, 0.6)), crew = true, standing = true }, -- front { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.0, 0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.5, 0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(1.5, 0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(1, 0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-0.5, 0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-1.5, 0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-1, 0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-2, 0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.0, -0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.5, -0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(1.5, -0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(1, -0.7, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(2, -0.7, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-0.5, -0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1.5, -0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1, -0.6, 0.6)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1, -0.68, 0.45)) }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-60.0, 0.0, 0.0), vec3.new(-3, -0.3, 0.6)),standing = true }, { group =1 , transf = transf.rotZYXTransl(transf.degToRad(80.0, 0.0, 0.0), vec3.new(-3.5, 0.3, 0.6)),standing = true }, --back {group =20 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.0, 0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.5, 0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(1.5, 0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(1, 0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-0.5, 0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-1.5, 0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-1, 0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-2, 0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.0, -0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.5, -0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(1.5, -0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(1, -0.7, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(2, -0.7, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-0.5, -0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1.5, -0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1, -0.6, 0.6)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1, -0.68, 0.45)) }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(-60.0, 0.0, 0.0), vec3.new(-3, -0.3, 0.6)),standing = true }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(80.0, 0.0, 0.0), vec3.new(-2.8, 0.3, 0.6)),standing = true }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(-60.0, 0.0, 0.0), vec3.new(-3, -0.3, 0.6)),standing = true }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(120.0, 0.0, 0.0), vec3.new(2.3, 0.5, 0.6)),standing = true }, {group =20 , transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.4, 0, 0.6)),standing = true }, } }, availability = { yearFrom = 1901, yearTo = 1959 }, cost = { price = -1 }, maintenance = { runningCosts = -1, lifespan = 30 } }, } end