local vec3 = require "vec3" local transf = require "transf" function data() return { lods = { { animations = { }, children = { { id = "vehicle/tram/be4_6mirage_lod_0_back.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.8193001747131, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be4_6mirage_lod_0_mid.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.22079999744892, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be4_6mirage_lod_0_front.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.377799987793, 0, 0, 1, }, type = "GROUP", }, }, events = { open_all_doors = { [1] = { forward = true, name = "open_all_doors", }, [2] = { forward = true, name = "open_all_doors", }, [3] = { forward = true, name = "open_all_doors", }, }, close_all_doors = { [1] = { forward = false, name = "open_all_doors", }, [2] = { forward = false, name = "open_all_doors", }, [3] = { forward = false, name = "open_all_doors", }, }, }, matConfigs = { { 0, 0, 0, }, }, static = false, visibleFrom = 0, visibleTo = 100, }, { children = { { id = "vehicle/tram/be4_6mirage_lod_0_back.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.8193001747131, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be4_6mirage_lod_0_mid.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.22079999744892, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be4_6mirage_lod_0_front.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.377799987793, 0, 0, 1, }, type = "GROUP", }, }, events = { open_all_doors = { [1] = { forward = true, name = "open_all_doors", }, [2] = { forward = true, name = "open_all_doors", }, [3] = { forward = true, name = "open_all_doors", }, }, close_all_doors = { [1] = { forward = false, name = "open_all_doors", }, [2] = { forward = false, name = "open_all_doors", }, [3] = { forward = false, name = "open_all_doors", }, }, }, matConfigs = { { 0, 0, 0, }, }, static = false, visibleFrom = 100, visibleTo = 1760, }, }, metadata = { description = { name = _("Be 4/6 Mirage"), description = _("The big cost-overrun during the acquisition of this tram led to its nickname \"Mirage\", a fighter plane which also cost much more than foreseen.") }, railVehicle = { configs = { { axles = { "vehicle/tram/be4_6mirage/lod_0_w1.msh", }, fakeBogies = { { group = 1, position = -0.2387, offset = -2.0459 }, --{ group = 26, position = -0.22, offset = 0 }, { group = 31, position = -0.2387, offset = 2.0459 } }, }, { axles = { "vehicle/tram/be4_6mirage/lod_0_w1.msh", }, fakeBogies = { { group = 1, position = -0.2387, offset = -2.0459 }, --{ group = 26, position = -0.22, offset = 0 }, { group = 31, position = -0.2387, offset = 2.0459 } }, } }, topSpeed = 60, weight = 26, engines = { { type = "ELECTRIC", power = 300, tractiveEffort = 50 } }, soundSet = "tram_modern" }, transportVehicle = { carrier = "TRAM", capacities = { { type = "PASSENGERS", capacity = 90, } }, loadSpeed = 7, seats = { { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.7, -0.1, .75)), crew = true, standing = false}, -- front { group =51, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(1.0, 0.65, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.5, 0.65, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(-95.0, 0.0, 0.0), vec3.new(1.0, -0.45, 0.75)), standing = true }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.15, 0.05, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.15, 0.55, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.15, -0.65, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.85, 0.05, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.85, 0.55, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.85, -0.65, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.6, 0.05, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.6, 0.55, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.6, -0.65, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.3, 0.05, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.3, 0.55, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.3, -0.65, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.0, 0.05, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.0, 0.55, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.7, 0.55, 0.75)) }, { group =51, transf = transf.rotZYXTransl(transf.degToRad(-85.0, 0.0, 0.0), vec3.new(-3.3, -0.4, 0.75)), standing = true }, -- mid { group = 29, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.15, 0.05, 0.75)) }, { group = 29, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.15, 0.55, 0.75)) }, { group = 29, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.15, -0.65, 0.75)) }, { group = 29, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.35, 0.05, 0.75)) }, { group = 29, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.35, 0.55, 0.75)) }, { group = 29, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.35, -0.65, 0.75)) }, { group = 29, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.35, 0.05, 0.75)) }, { group = 29, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.35, 0.55, 0.75)) }, { group = 29, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.05, 0.05, 0.75)) }, { group = 29, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.05, 0.55, 0.75)) }, { group = 29, transf = transf.rotZYXTransl(transf.degToRad(-85.0, 0.0, 0.0), vec3.new(-1.1, -0.4, 0.75)), standing = true }, { group = 29, transf = transf.rotZYXTransl(transf.degToRad(-105.0, 0.0, 0.0), vec3.new(-0.4, -0.4, 0.75)), standing = true }, -- back { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.45, 0.05, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.45, 0.55, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.45, -0.65, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.75, 0.05, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.75, 0.55, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.75, -0.65, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.05, 0.05, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.05, 0.55, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.05, -0.65, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.35, 0.05, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.35, 0.55, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.35, -0.65, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.65, 0.05, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.65, 0.55, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.65, -0.65, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.05, 0.05, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.05, 0.55, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.05, -0.65, 0.75)) }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(-85.0, 0.0, 0.0), vec3.new(-1.4, 0.65, 0.75)), standing = true }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(-105.0, 0.0, 0.0), vec3.new(-0.7, 0.65, 0.75)), standing = true }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(-45.0, 0.0, 0.0), vec3.new(-1.9, 0.45, 0.75)), standing = true }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.05, -0.35, 0.75)), standing = true }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(-85.0, 0.0, 0.0), vec3.new(-1.4, -0.4, 0.75)), standing = true }, { group = 15, transf = transf.rotZYXTransl(transf.degToRad(-15.0, 0.0, 0.0), vec3.new(-0.5, -0.4, 0.75)), standing = true }, } }, availability = { yearFrom = 3000, yearTo = 3000 }, cost = { price = -1 }, maintenance = { runningCosts = -1, lifespan = 40 } }, } end