local vec3 = require "vec3" local transf = require "transf" function data() return { boundingInfo = { bbMax = { 12.39673614502, 1.5505640506744, 4.4065480232239, }, bbMin = { -12.780932426453, -1.5505640506744, -0.055481970310211, }, }, collider = { params = { }, type = "MESH", }, lods = { { animations = { }, children = { { id = "vehicle/train/rabde_12_12_lod_2_front.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/train/rabde_12_12_lod_2_bogie.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.1577997207642, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/train/rabde_12_12_lod_2_bogie.grp", transf = { -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -9.1577997207642, 0, 0, 1, }, type = "GROUP", }, }, events = { open_all_doors = { { name = "open_doors", forward = true }, }, close_all_doors = { { name = "open_doors", forward = false }, }, open_doors_left = { { name = "open_doors_left", forward = true }, }, close_doors_left = { { name = "open_doors_left", forward = false }, }, open_doors_right = { { name = "open_doors_right", forward = true }, }, close_doors_right = { { name = "open_doors_right", forward = false }, }, }, matConfigs = { { 0, 0, 0, 0, }, }, static = false, visibleFrom = 350, visibleTo = 2000, }, { animations = { }, children = { { id = "vehicle/train/rabde_12_12_lod_1_front.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/train/rabde_12_12_lod_1_bogie.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.1577997207642, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/train/rabde_12_12_lod_1_bogie.grp", transf = { -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -9.1577997207642, 0, 0, 1, }, type = "GROUP", }, }, events = { open_all_doors = { { name = "open_doors", forward = true }, }, close_all_doors = { { name = "open_doors", forward = false }, }, open_doors_left = { { name = "open_doors_left", forward = true }, }, close_doors_left = { { name = "open_doors_left", forward = false }, }, open_doors_right = { { name = "open_doors_right", forward = true }, }, close_doors_right = { { name = "open_doors_right", forward = false }, }, }, matConfigs = { { 0, 0, 0, 0, }, }, static = false, visibleFrom = 120, visibleTo = 350, }, { animations = { }, children = { { id = "vehicle/train/rabde_12_12_lod_0_front.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/train/rabde_12_12_lod_0_bogie.grp", transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.1577997207642, 0, 0, 1, }, type = "GROUP", }, { id = "vehicle/train/rabde_12_12_lod_0_bogie.grp", transf = { -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -9.1577997207642, 0, 0, 1, }, type = "GROUP", }, }, events = { open_all_doors = { { name = "open_doors", forward = true }, }, close_all_doors = { { name = "open_doors", forward = false }, }, open_doors_left = { { name = "open_doors_left", forward = true }, }, close_doors_left = { { name = "open_doors_left", forward = false }, }, open_doors_right = { { name = "open_doors_right", forward = true }, }, close_doors_right = { { name = "open_doors_right", forward = false }, }, }, matConfigs = { { 0, 0, 0, 0, }, }, static = false, visibleFrom = 0, visibleTo = 120, }, }, metadata = { availability = { yearFrom = 3000, yearTo = 3000, }, cost = { price = -1, }, maintenance = { lifespan = 50, runningCosts = -1, }, railVehicle = { configs = { { axles = { "vehicle/train/rabde_12_12_front/lod_2_w1.msh", }, fakeBogies = { }, }, { axles = { "vehicle/train/rabde_12_12_front/lod_1_w1.msh", }, fakeBogies = { }, }, { axles = { "vehicle/train/rabde_12_12_front/lod_0_w1.msh", }, fakeBogies = { }, }, }, engines = { { power = 815, tractiveEffort = 80, type = "ELECTRIC", }, }, soundSet = { horn = "", name = "waggon_modern", }, topSpeed = 125, weight = 55, }, transportVehicle = { seats = { -- driver { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(10.8, .7, 1)), crew = true, standing = false}, -- passengers { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.2, -0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(0.2, -1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.2, 0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(0.2, 1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, 0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(1.3, 1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, -0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(1.3, -1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, -0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(1.9, -1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, 0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(1.9, 1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, 0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(2.9, 1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, -0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(2.9, -1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.8, -0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(3.8, -1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.8, 0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(3.8, 1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.8, 0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(4.8, 1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.8, -0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(4.8, -1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.4, -0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(5.4, -1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.4, 0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(5.4, 1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.4, 0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(6.4, 1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.4, -0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(6.4, -1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(7.1, -0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(7.1, -1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(7.1, 0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(7.1, 1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(8.2, 0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(8.2, 1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(8.2, -0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(8.2, -1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.7, -0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-3.7, -1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.7, 0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-3.7, 1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.3, -0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-5.3, -1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.3, 0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-5.3, 1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.4, 0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-4.4, 1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.4, -0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-4.4, -1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.1, -0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-7.1, -1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.1, 0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-7.1, 1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.1, 0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-6.1, 1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.1, -0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-6.1, -1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-8.9, -0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-8.9, -1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-8.9, 0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-8.9,1, 1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-7.8, 0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-7.8, 1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-7.8, -0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-7.8, -1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-10.6, -0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-10.6, -1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-10.6, 0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-10.6,1, 1, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-9.6, 0.8, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-9.6, 1.2, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-9.6, -0.55, 0.96)), }, { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-9.6, -1, 0.96)), }, }, capacities = { { capacity = 56, type = "PASSENGERS", }, }, carrier = "RAIL", loadSpeed = 4, multipleUnitOnly = true }, }, } end