local vec3 = require "vec3" local transf = require "transf" function data() return { boundingInfo = { bbMax = { 17.189210891724, 1.1466519832611, 4.7869329452515, }, bbMin = { -17.189210891724, -1.396271944046, -0.05799201130867, }, }, collider = { params = { }, type = "MESH", }, lods = { { animations = { }, children = { { id = "vehicle/tram/be5_6_lod_0_connector.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 8.6990995407104, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be5_6_lod_0_connector.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.979199886322, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be5_6_lod_0_connector.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.9839000701904, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be5_6_lod_0_connector.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.7013998031616, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be5_6_lod_0_mid_back.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.8449997901917, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be5_6_lod_0_mid_front.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.8449997901917, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be5_6_lod_0_back.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -11.701299667358, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be5_6_lod_0_mid.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/tram/be5_6_lod_0_front.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 11.701299667358, 0, 0, 1, }, type = "GROUP", }, }, events = { open_all_doors = { [5] = { forward = true, name = "open_all_doors", }, [6] = { forward = true, name = "open_all_doors", }, [7] = { forward = true, name = "open_all_doors", }, [8] = { forward = true, name = "open_all_doors", }, [9] = { forward = true, name = "open_all_doors", }, }, close_all_doors = { [5] = { forward = false, name = "open_all_doors", }, [6] = { forward = false, name = "open_all_doors", }, [7] = { forward = false, name = "open_all_doors", }, [8] = { forward = false, name = "open_all_doors", }, [9] = { forward = false, name = "open_all_doors", }, }, }, matConfigs = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, }, }, static = false, visibleFrom = 0, visibleTo = 2510, }, }, metadata = { description = { name = _("Be 5/6 Cobra"), description = _("As the first complete low floor tram, it runs through the city like a snake, thanks to its four joints. This gave it the nickname \"Cobra\".") }, availability = { yearFrom = 3000, yearTo = 3000, }, cost = { price = -1, }, maintenance = { lifespan = 40, runningCosts = -1, }, railVehicle = { configs = { { axles = { "vehicle/tram/be5_6/lod_0_w1.msh", }, fakeBogies = { { group = 1, offset = -2.0452001094818, position = 11.701299667358, }, { group = 1, offset = 1.8502999544144, position = 5.8449997901917, }, { group = 3, offset = -1.8006000518799, position = 5.8449997901917, }, { group = 3, offset = 2.0186998844147, position = 0, }, { group = 5, offset = -2.0269000530243, position = 0, }, { group = 5, offset = 1.8006000518799, position = -5.8449997901917, }, { group = 7, offset = -1.8502999544144, position = -5.8449997901917, }, { group = 7, offset = 2.039400100708, position = -11.701299667358, }, { group = 9, offset = 0, position = -5.8449997901917, }, { group = 19, offset = 0, position = 5.8449997901917, }, }, }, }, engines = { { power = 625, tractiveEffort = 80, type = "ELECTRIC", }, }, soundSet = { horn = "", name = "tram_modern", }, topSpeed = 70, weight = 39, }, transportVehicle = { capacities = { { capacity = 120, type = "PASSENGERS", }, }, carrier = "TRAM", loadSpeed = 14, seats = { { group = 49, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.1, -0.1, .4)), crew = true, standing = false}, -- front { group = 49, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(1.8, 0.75, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.8, 0.3, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(1.8, -0.9, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.8, -0.5, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(0.3, 0.75, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, 0.3, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(0.3, -0.9, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, -0.5, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(1.3, -0.75, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, -0.3, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(1.3, 0.9, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, 0.5, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.1, 0.75, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.1, 0.3, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.1, -0.9, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.1, -0.5, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-0.2, -0.75, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.2, -0.3, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-0.2, 0.9, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.2, 0.5, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-1.7, -0.75, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.7, -0.3, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-1.7, 0.9, 0.24)) }, { group = 49, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.7, 0.5, 0.24)) }, --mid_front { group = 20, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(1.7, 0.75, 0.24)) }, { group = 20, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.7, 0.3, 0.24)) }, { group = 20, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(0.4, -0.9, 0.24)) }, { group = 20, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-0.4, -0.9, 0.24)) }, { group = 20, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.9, 0.75, 0.24)) }, { group = 20, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.9, 0.3, 0.24)) }, { group = 20, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.1, 0.75, 0.24)),standing = true }, { group = 20, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-0.99, 0.7, 0.24)),standing = true }, --mid { group = 40, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(1.8, 0.75, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.8, 0.3, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(1.8, -0.9, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.8, -0.5, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(0.3, 0.75, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, 0.3, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(1.3, -0.75, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, -0.3, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(1.3, 0.9, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, 0.5, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.1, 0.75, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.1, 0.3, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.1, -0.9, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.1, -0.5, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-0.2, 0.9, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.2, 0.5, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-1.7, -0.75, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.7, -0.3, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-1.7, 0.9, 0.24)) }, { group = 40, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.7, 0.5, 0.24)) }, --mid_back { group = 10, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(2, 0.75, 0.24)) }, { group = 10, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2, 0.3, 0.24)) }, { group = 10, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(1.1, 0.75, 0.24)) }, { group = 10, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(0.4, -0.9, 0.24)) }, { group = 10, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-0.4, -0.9, 0.24)) }, { group = 10, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.4, -0.4, 0.24)) }, { group = 10, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.4, -0.4, 0.24)) }, { group = 10, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-2, 0.75, 0.24)) }, { group = 10, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2, 0.3, 0.24)) }, { group = 10, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.3, 0.75, 0.24)) }, { group = 10, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-0.4, 0.75, 0.24)) }, { group = 10, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(.3, 0.75, 0.24)) }, --back { group = 30, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(1.8, 0.75, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.8, 0.3, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(1.8, -0.9, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.8, -0.5, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(0.3, 0.75, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, 0.3, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(0.3, -0.9, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, -0.5, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(1.3, -0.75, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, -0.3, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(1.3, 0.9, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, 0.5, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.1, 0.75, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.1, 0.3, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.1, -0.9, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.1, -0.5, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-0.2, -0.75, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.2, -0.3, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-0.2, 0.9, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.2, 0.5, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-1.7, -0.75, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.7, -0.3, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-1.7, 0.9, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.7, 0.5, 0.24)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-4.4, -0.6, 0.54)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-4.4, 0.7, 0.54)) }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-2.7, 0.8, 0.24)),standing = true }, { group = 30, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-3.5, 0.8, 0.24)),standing = true }, } }, }, } end