commit bc041b0c5e9ac2cc3659d3571913abf74ff2723f Author: Rinaldus Date: Wed Feb 1 18:39:24 2017 +0300 initial build diff --git a/mod.lua b/mod.lua new file mode 100755 index 0000000..44879c8 --- /dev/null +++ b/mod.lua @@ -0,0 +1,28 @@ +function data() +return { + + info = { + tags = { "Europe", "USA", "Script Mod" }, + + minorVersion = 0, + severityAdd = "NONE", + severityRemove = "NONE", + name = _("Отключить весь транспорт для 1520DLC"), + description = _("Адаптированная версия мода Disable all vanilla transport для серии модов 1520 DLC"), + authors = { + { + name = "Rinaldus", + role = "CREATOR", + + } + }, + visible = true + }, + options = { + }, + + runFn = function (settings) + + end +} +end \ No newline at end of file diff --git a/res/models/model/vehicle/bus/aboag.mdl b/res/models/model/vehicle/bus/aboag.mdl new file mode 100755 index 0000000..22a7379 --- /dev/null +++ b/res/models/model/vehicle/bus/aboag.mdl @@ -0,0 +1,170 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 4.3211002349854, 1.1229000091553, 3.838700056076, + }, + bbMin = { + -4.3413000106812, -1.1229000091553, -0.49939998984337, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/bus/aboag/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/aboag/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.2495, -0.7922, 0.4817, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/aboag/lod_0_w1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 3.2495, 0.7922, 0.4817, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/aboag/lod_0_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.2054, 0, 0.4915, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/aboag/lod_0_window.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/aboag/lod_0_windows_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(.8,.8,.8),transf.degToRad( 0, 0, 0), vec3.new( 3.8095, -0.7212, 0.9598)), + type = "MESH", + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(.8,.8,.8),transf.degToRad( 0, 0, 0), vec3.new( 3.8095, 0.7252, 0.9598)), + type = "MESH", + },{ + id = "vehicle/bus/aboag/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1100, + + }, + }, + metadata = { + description = { + name = _("Daimler top-seater"), + description = _("An early top-seater bus, used by ABOAG, a public transportation company in Berlin, Germany.") + }, + roadVehicle = { + topSpeed = 35, + weight = 5, + power = 45, + tractiveEffort = 8, + configs = { + + { + axles = { "vehicle/bus/aboag/lod_0_w2.msh" }, + wheels = { "vehicle/bus/aboag/lod_0_w1.msh" }, + fakeBogies = { { group = 0, position = 0, offset = 0 } } + } + }, + soundSet = "bus_old" + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "PASSENGERS", capacity = 42 } + }, + loadSpeed = 1.5, + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.6, -0.3, 0.9)), crew = true}, + --passangers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.1, -0.4, 0.9))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.1, 0.5, 0.9))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.1, 0.6, 0.9))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.1, -0.4, 0.9))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.8, 0.6, 0.9))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.8, -0.4, 0.9))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.3, 0.6, 0.9))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.3, -0.4, 0.9))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.4, 0.6, 0.9))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.4, -0.4, 0.9))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-2.0, -0.7, 3))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1.2, -0.7, 3))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-0.6, -0.7, 3))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.2, -0.7, 3))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(1.2, -0.7, 3))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(1.2, 0.7, 3))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.1, 0.7, 3))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-.8, 0.7, 3))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-1.8, 0.7, 3))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-2.8, 0.7, 3))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-3.4, 0.7, 3))}, + } + }, + availability = { + yearFrom = 1922, + yearTo = 1972 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + }, + +} +end diff --git a/res/models/model/vehicle/bus/benz_o6600.mdl b/res/models/model/vehicle/bus/benz_o6600.mdl new file mode 100755 index 0000000..cb3cfd0 --- /dev/null +++ b/res/models/model/vehicle/bus/benz_o6600.mdl @@ -0,0 +1,212 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 5.0855407714844, 1.1831549406052, 2.697762966156, + }, + bbMin = { + -4.6582179069519, -1.1831549406052, 4.1007995605469e-005, + }, + }, + lods = { + + { + animations = { + + }, + children = { + { + id = "vehicle/bus/benz_o6600/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/benz_o6600/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.1327, -1.0479, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/benz_o6600/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.9605, -1.0734, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/benz_o6600/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.692, -0.9614, 0.5156, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/benz_o6600/lod_0_w1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 3.692, 0.9614, 0.5156, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/benz_o6600/lod_0_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6567, 0, 0.5156, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/benz_o6600/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.15,1.15),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 4.5, 0.82, 1.044)), + type = "MESH", + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.15,1.15),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 4.5, -0.82, 1.044)), + type = "MESH", + }, { + id = "vehicle/bus/benz_o6600/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + + close_all_doors = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend2", + }, + }, + open_all_doors = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend2", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 950, + + }, + }, + metadata = { + description = { + name = _("Mercedes-Benz O 6600"), + description = _("This city-omnibus, built by Mercedes-Benz, cost 52'785 D-mark at that time.") + }, + roadVehicle = { + topSpeed = 65, + weight = 9, + power = 107, + tractiveEffort = 12, + configs = { + --[[{ + axles = { "vehicle/bus/benz_o6600/benz_o6600_lod_2_w2.msh" }, + wheels = { "vehicle/bus/benz_o6600/benz_o6600_lod_2_w1.msh" }, + fakeBogies = { { group = 0, position = 0, offset = 0 } } + }, + { + axles = { "vehicle/bus/benz_o6600/benz_o6600_lod_1_w2.msh" }, + wheels = { "vehicle/bus/benz_o6600/benz_o6600_lod_1_w1.msh" }, + fakeBogies = { { group = 0, position = 0, offset = 0 } } + },]]-- + { + axles = { "vehicle/bus/benz_o6600/lod_0_w2.msh" }, + wheels = { "vehicle/bus/benz_o6600/lod_0_w1.msh" }, + fakeBogies = { { group = 0, position = 0, offset = 0 } } + } + }, + soundSet = "bus_old" + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "PASSENGERS", capacity = 60 } + }, + loadSpeed = 2, + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.3, 0.3, 0.6)),crew = true}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, 0.3, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, 0.67, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.5, 0.3, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.5, 0.67, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.3, 0.3, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.3, 0.67, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.1, 0.3, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.1, 0.67, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.9, 0.3, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.9, 0.67, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.7, 0.3, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.7, 0.67, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.38, 0.3, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.38, 0.67, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.18, 0.3, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.18, 0.67, 0.7))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, -0.4, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, -0.8, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.5, -0.4, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.5, -0.8, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.3, -0.4, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.3, -0.8, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.1, -0.4, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.1, -0.8, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.9, -0.4, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.9, -0.8, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.7, -0.4, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.7, -0.8, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.38, -0.4, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.38, -0.8, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.18, -0.4, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.18, -0.8, 0.7))}, + + } + }, + availability = { + yearFrom = 1954, + yearTo = 1976 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + + }, + +} +end diff --git a/res/models/model/vehicle/bus/berkhof_duvedec.mdl b/res/models/model/vehicle/bus/berkhof_duvedec.mdl new file mode 100755 index 0000000..a948e52 --- /dev/null +++ b/res/models/model/vehicle/bus/berkhof_duvedec.mdl @@ -0,0 +1,227 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 8.9517908096313, 1.4530000686646, 2.7877559661865, + }, + bbMin = { + -7.8876490592957, -1.4271960258484, -0.0089289844036102, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/bus/berkhof_duvedec_lod_0_back.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.6209001541138, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/bus/berkhof_duvedec_lod_0_front.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.1243999004364, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + close_all_doors = { + { + forward = false, + name = "open_all_doors", + + }, { + forward = false, + name = "open_all_doors", + + }, + }, + open_all_doors = { + { + forward = true, + name = "open_all_doors", + + }, { + forward = true, + name = "open_all_doors", + + }, + }, + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1330, + + }, + }, + metadata = { + availability = { + yearFrom = 3000, + yearTo = 3000, + + }, + cost = { + price = -1, + + }, + description = { + name = _("Berkhof Duvedec"), + description = _("Berkhof Duvedec received many good reviews of car owners for their consumer qualities."), + }, + maintenance = { + lifespan = 35, + runningCosts = -1, + + }, + roadVehicle = { + configs = { + { + axles = { + "vehicle/bus/berkhof_duvedec/lod_0_w2.msh", + "vehicle/bus/berkhof_duvedec/lod_0_w3.msh", + }, + fakeBogies = { + { + group = 1, + offset = 0, + position = -1.25, + }, + { + group = 11, + offset = 0, + position = 3.88, + }, + { + group = 11, + offset = 0, + position = -1.25, + }, + }, + wheels = { + "vehicle/bus/berkhof_duvedec/lod_0_w1.msh", + }, + + }, + }, + power = 180, + soundSet = { + horn = "vehicle/truck_modern/horn.wav", + name = "bus_modern", + + }, + topSpeed = 90, + tractiveEffort = 30, + weight = 15, + + }, + transportVehicle = { + capacities = { + { + capacity = 100, + type = "PASSENGERS", + }, + }, + carrier = "ROAD", + loadSpeed = 5, + multipleUnitOnly = false, + seats = { + + -- front + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.9 -3.1, 0.6, 0.6)), crew = true }, + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.8 -3.1, -0.8, 0.6)) }, + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.8 - 3.1, 0.7, 0.6)) }, + + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5.15 - 3.1, -0.7, 0.6)) }, + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5.15 - 3.1, -0.15, 0.6)) }, + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5.15 - 3.1, 0.8, 0.6)) }, + + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.9 - 3.1, -0.8, 0.6)) }, + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.9 - 3.1, -0.3, 0.6)) }, + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.9 - 3.1, 0.7, 0.6)) }, + + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.1 - 3.1, -0.8, 0.6)) }, + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.1 - 3.1, -0.3, 0.6)) }, + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.1 - 3.1, 0.7, 0.6)) }, + + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.3 - 3.1, 0.7, 0.6)) }, + + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.0 - 3.1, -0.8, 0.6)) }, + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.0 - 3.1, -0.3, 0.6)) }, + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.0 - 3.1, 0.7, 0.6)) }, + + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.35 - 3.1, -0.7, 0.6)) }, + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.35 - 3.1, -0.15, 0.6)) }, + + { group = 11, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.35 - 3.1, 0.8, 0.6)) }, + + + -- back + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, -0.8, 0.6)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, -0.3, 0.6)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, 0.7, 0.6)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.2, 0.7, 0.6)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.9, -0.8, 0.6)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.9, -0.3, 0.6)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.9, 0.7, 0.6)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, -0.8, 0.9)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, -0.3, 0.9)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, 0.7, 0.9)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.7, -0.8, 0.9)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.7, -0.3, 0.9)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.7, 0.2, 0.9)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.7, 0.7, 0.9)) }, + }, + }, + + }, + +} +end diff --git a/res/models/model/vehicle/bus/et13.mdl b/res/models/model/vehicle/bus/et13.mdl new file mode 100755 index 0000000..ef42a24 --- /dev/null +++ b/res/models/model/vehicle/bus/et13.mdl @@ -0,0 +1,339 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 2.3890039920807, 0.93712097406387, 2.6325719356537, + }, + bbMin = { + -3.0820770263672, -0.93712097406387, -0.43434798717499, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/bus/et13/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_2_body_window.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_2_door.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.4272, -0.747, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.61, 0, 0.4418, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_2_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.8108, -0.6154, 0.4418, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_2_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.8108, 0.6154, 0.4418, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + }, + close_all_doors = { + }, + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 200, + visibleTo = 750, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/bus/et13/lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_1_body_window.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_1_door.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.4272, -0.747, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.61, 0, 0.4418, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_1_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.8108, -0.6154, 0.4418, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_1_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.8108, 0.6154, 0.4418, 1, + }, + type = "MESH", + + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(.99,.99,.99),transf.degToRad( 0, 0, 0), vec3.new( 2.2286, -0.428, 0.8525)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(.99,.99,.99),transf.degToRad( 0, 0, 0), vec3.new( 2.2286, 0.428, 0.8525)), + type = "MESH", + }, + }, + events = { + open_all_doors = { + [3] = { + forward = true, + name = "opend", + }, + }, + close_all_doors = { + [3] = { + forward = false, + name = "opend", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 50, + visibleTo = 200, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/bus/et13/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_0_body_window.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_0_door.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.4272, -0.747, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.61, 0, 0.4418, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_0_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.8108, -0.6154, 0.4418, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/et13/lod_0_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.8108, 0.6154, 0.4418, 1, + }, + type = "MESH", + + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(.99,.99,.99),transf.degToRad( 0, 0, 0), vec3.new( 2.2286, -0.428, 0.8525)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(.99,.99,.99),transf.degToRad( 0, 0, 0), vec3.new( 2.2286, 0.428, 0.8525)), + type = "MESH", + },{ + id = "vehicle/bus/et13/lod_0_logo_body_window.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [3] = { + forward = true, + name = "opend", + }, + }, + close_all_doors = { + [3] = { + forward = false, + name = "opend", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 50, + + }, + }, + metadata = { + description = { + name = _("Postbus ET 13"), + description = _("The ET 13 was a commonly used motor-driven bus, built in Austria.") + }, + roadVehicle = { + topSpeed = 25, + weight = 4, + power = 20, + tractiveEffort = 6, + configs = { + { + wheels = { + "vehicle/bus/et13/lod_2_w2.msh", + }, + axles = { + "vehicle/bus/et13/lod_2_w1.msh" + }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + },{ + wheels = { + "vehicle/bus/et13/lod_1_w2.msh", + }, + axles = { + "vehicle/bus/et13/lod_1_w1.msh" + }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + },{ + wheels = { + "vehicle/bus/et13/lod_0_w2.msh", + }, + axles = { + "vehicle/bus/et13/lod_0_w1.msh" + }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + } + }, + soundSet = "bus_old" + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "PASSENGERS", capacity = 32 } + }, + loadSpeed = 1.5, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.24, 0.28, 0.7)), crew = true}, + --passangers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.6, 0.34, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.6, -0.2, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.25, 0.34, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.25, -0.2, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.94, 0.34, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.94, -0.2, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.68, 0.34, 0.7))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.68, -0.2, 0.7))}, + + } + }, + availability = { + yearFrom = 1905, + yearTo = 1956 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + + }, + +} +end diff --git a/res/models/model/vehicle/bus/landauer.mdl b/res/models/model/vehicle/bus/landauer.mdl new file mode 100755 index 0000000..0ae8aed --- /dev/null +++ b/res/models/model/vehicle/bus/landauer.mdl @@ -0,0 +1,459 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/bus/landauer/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_2_d1.msh", + transf = transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0)), + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_2_window_d1.msh", + transf = transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0)), + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_2_d1.msh", + transf = transf.flipY(transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0))), + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_2_window_d1.msh", + transf = transf.flipY(transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0))), + type = "MESH", + + }, + { + id = "vehicle/bus/landauer/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.2801, -0.6554, 0.4874, 1, + }, + type = "MESH", + + },{ + id = "vehicle/bus/landauer/lod_2_w1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.2801, 0.6554, 0.4874, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_2_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.8978, 0, 0.6165, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_2_window.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + close_all_doors = { + }, + open_all_doors = { + }, + }, + matConfigs = { + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, + }, + }, + static = false, + visibleFrom = 200, + visibleTo = 700, + + },{ + animations = { + + }, + children = { + { + id = "vehicle/bus/landauer/lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_1_d1.msh", + transf = transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0)), + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_1_window_d1.msh", + transf = transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0)), + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_1_d1.msh", + transf = transf.flipY(transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0))), + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_1_window_d1.msh", + transf = transf.flipY(transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0))), + type = "MESH", + + }, + { + id = "vehicle/bus/landauer/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.2801, -0.6554, 0.4874, 1, + }, + type = "MESH", + + },{ + id = "vehicle/bus/landauer/lod_1_w1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.2801, 0.6554, 0.4874, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_1_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.8978, 0, 0.6165, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_1_window.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1,.7,.7),transf.degToRad( 0, 0, 0), vec3.new( 1.935, 0, 1.162)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1,.7,.7),transf.degToRad( 0, 0, 0), vec3.new( 0.855, 0.7321, 2.095)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1,.7,.7),transf.degToRad( 0, 0, 0), vec3.new( 0.855, -0.7321, 2.095)), + type = "MESH", + }, { + id = "vehicle/bus/landauer/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + close_all_doors = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend1", + }, [4] = { + forward = false, + name = "opend1", + }, + [5] = { + forward = false, + name = "opend1", + }, + }, + open_all_doors = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend1", + }, [4] = { + forward = true, + name = "opend1", + }, + [5] = { + forward = true, + name = "opend1", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, + }, + }, + static = false, + visibleFrom = 40, + visibleTo = 200, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/bus/landauer/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_0_d1.msh", + transf = transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0)), + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_0_window_d1.msh", + transf = transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0)), + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_0_window_interior_d1.msh", + transf = transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0)), + type = "MESH", + + },{ + id = "vehicle/bus/landauer/lod_0_d1.msh", + transf = transf.flipY(transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0))), + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_0_window_d1.msh", + transf = transf.flipY(transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0))), + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_0_window_interior_d1.msh", + transf = transf.flipY(transf.scaleRotZYXTransl(vec3.new(1,1,1),transf.degToRad( 0, 0, 0), vec3.new( -0.2906, -0.6931, 0))), + type = "MESH", + + }, + { + id = "vehicle/bus/landauer/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.2801, -0.6554, 0.4874, 1, + }, + type = "MESH", + + },{ + id = "vehicle/bus/landauer/lod_0_w1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.2801, 0.6554, 0.4874, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_0_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.8978, 0, 0.6165, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_0_window.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/landauer/lod_0_window_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1,.7,.7),transf.degToRad( 0, 0, 0), vec3.new( 1.935, 0, 1.162)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1,.7,.7),transf.degToRad( 0, 0, 0), vec3.new( 0.855, 0.7321, 2.095)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1,.7,.7),transf.degToRad( 0, 0, 0), vec3.new( 0.855, -0.7321, 2.095)), + type = "MESH", + }, { + id = "vehicle/bus/landauer/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + close_all_doors = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend1", + }, [4] = { + forward = false, + name = "opend1", + }, + [5] = { + forward = false, + name = "opend1", + }, [6] = { + forward = false, + name = "opend1", + }, + [7] = { + forward = false, + name = "opend1", + }, + }, + open_all_doors = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend1", + }, [4] = { + forward = true, + name = "opend1", + }, + [5] = { + forward = true, + name = "opend1", + }, [6] = { + forward = true, + name = "opend1", + }, + [7] = { + forward = true, + name = "opend1", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 40, + + }, + }, + metadata = { + description = { + name = _("Landauer"), + description = _("The Landauer was basically a motor-driven carriage, built by the Benz company. As the first bus of the world, it was in use on the line Siegen-Nephten-Deuz.") + }, + roadVehicle = { + topSpeed = 20, + weight = 2, + power = 10, + tractiveEffort = 8, + configs = { + { + axles = { "vehicle/bus/landauer/lod_2_w2.msh",}, + wheels = {"vehicle/bus/landauer/lod_2_w1.msh" }, + fakeBogies = { + { group = 0, position = 0.0, offset = 0.0 }, + } + },{ + axles = { "vehicle/bus/landauer/lod_1_w2.msh",}, + wheels = {"vehicle/bus/landauer/lod_1_w1.msh" }, + fakeBogies = { + { group = 0, position = 0.0, offset = 0.0 }, + } + },{ + axles = { "vehicle/bus/landauer/lod_0_w2.msh",}, + wheels = {"vehicle/bus/landauer/lod_0_w1.msh" }, + fakeBogies = { + { group = 0, position = 0.0, offset = 0.0 }, + } + } + }, + soundSet = "bus_old" + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "PASSENGERS", capacity = 24 } + }, + loadSpeed = 1, + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.84, 0.21, 0.93)), crew = true}, + --passangers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.59, -0.30, 0.83))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.59, 0.30, 0.83))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.6, 0.30, 0.83))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.6, -0.30, 0.83))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.84, -0.35, 0.93))}, + } + }, + availability = { + yearFrom = 1891, + yearTo = 1942 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + }, + +} +end diff --git a/res/models/model/vehicle/bus/man_sl_192.mdl b/res/models/model/vehicle/bus/man_sl_192.mdl new file mode 100755 index 0000000..5af89e3 --- /dev/null +++ b/res/models/model/vehicle/bus/man_sl_192.mdl @@ -0,0 +1,519 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 5.2589540481567, 1.2951840162277, 2.7318749427795, + }, + bbMin = { + -5.056736946106, -1.2951840162277, -0.4757179915905, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/bus/man_sl_192/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_2_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.7532, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_2_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.5112, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_2_d3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.4827, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_2_d4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.7247, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.7542, -0.9308, 0.4703, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_2_w1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.7542, 0.9308, 0.4703, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_2_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3694, 0, 0.4703, 1, + }, + type = "MESH", + + }, + }, + events = { + close_all_doors = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend2", + }, + [4] = { + forward = false, + name = "opend3", + }, + [5] = { + forward = false, + name = "opend4", + }, + }, + open_all_doors = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend2", + }, + [4] = { + forward = true, + name = "opend3", + }, + [5] = { + forward = true, + name = "opend4", + }, + }, + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 220, + visibleTo = 990, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/bus/man_sl_192/lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_1_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.7532, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_1_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.5112, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_1_d3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.4827, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_1_d4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.7247, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.7542, -0.9308, 0.4703, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_1_w1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.7542, 0.9308, 0.4703, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_1_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3694, 0, 0.4703, 1, + }, + type = "MESH", + + }, + }, + events = { + close_all_doors = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend2", + }, + [4] = { + forward = false, + name = "opend3", + }, + [5] = { + forward = false, + name = "opend4", + }, + }, + open_all_doors = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend2", + }, + [4] = { + forward = true, + name = "opend3", + }, + [5] = { + forward = true, + name = "opend4", + }, + }, + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 120, + visibleTo = 220, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/bus/man_sl_192/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.7532, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.5112, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_0_d3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.4827, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_0_d4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.7247, -1.1135, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.7542, -0.9308, 0.4703, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_0_w1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.7542, 0.9308, 0.4703, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/man_sl_192/lod_0_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3694, 0, 0.4703, 1, + }, + type = "MESH", + + }, + -- Interior ------------------------ + { + id = "vehicle/bus/man_sl_192/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + + -- ------------------------ + + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.8,0.8),transf.degToRad( -7.0, 0.0, 0.0), vec3.new( 4.968, -0.897, 0.77)), + type = "MESH", + }, + + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.8,0.8),transf.degToRad( 7.0, 0.0, 0.0), vec3.new( 4.965, 0.92, 0.77)), + type = "MESH", + }, + + { + id = "vehicle/asset/lod_0_light_round_red.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.4,0.4),transf.degToRad( 180.0, 0.0, 0.0), vec3.new( -5.057, 0.871, 1.066)), + type = "MESH", + }, + + { + id = "vehicle/asset/lod_0_light_round_red.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.4,0.4),transf.degToRad( 180.0, 0.0, 0.0), vec3.new( -5.057, -0.903, 1.066)), + type = "MESH", + },{ + id = "vehicle/bus/man_sl_192/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + + + }, + events = { + close_all_doors = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend2", + }, + [4] = { + forward = false, + name = "opend3", + }, + [5] = { + forward = false, + name = "opend4", + }, + }, + open_all_doors = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend2", + }, + [4] = { + forward = true, + name = "opend3", + }, + [5] = { + forward = true, + name = "opend4", + }, + }, + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 120, + + }, + }, + metadata = { + description = { + name = _("MAN SL 192"), + description = _("Standard public transport bus, built in big numbers.") + }, + roadVehicle = { + topSpeed = 80, + weight = 16, + power = 141, + tractiveEffort = 20, + configs = { + { + axles = { "vehicle/bus/man_sl_192/lod_2_w2.msh" }, + wheels = { "vehicle/bus/man_sl_192/lod_2_w1.msh" }, + fakeBogies = { { group = 0, position = 0, offset = 0 } } + }, + { + axles = { "vehicle/bus/man_sl_192/lod_1_w2.msh" }, + wheels = { "vehicle/bus/man_sl_192/lod_1_w1.msh" }, + fakeBogies = { { group = 0, position = 0, offset = 0 } } + }, + { + axles = { "vehicle/bus/man_sl_192/lod_0_w2.msh" }, + wheels = { "vehicle/bus/man_sl_192/lod_0_w1.msh" }, + fakeBogies = { { group = 0, position = 0, offset = 0 } } + } + }, + soundSet = { name = "bus_modern", horn = "vehicle/truck_modern/horn.wav" } + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { + type = "PASSENGERS", + capacity = 64, + } + }, + loadSpeed = 3, + seats = { + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.9, 0.5, 0.4)), crew = true }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.0268, -0.8, 0.65)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.0268, 0.3654, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.0268, 0.7, 0.6)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.4554, -0.7, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.4554, -0.4124, 0.65)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.4554, 0.3654, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.4554, 0.7, 0.65)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.4537, -0.8, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.4537, -0.4124, 0.65)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.4537, 0.3654, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.4537, 0.7, 0.65)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.6672, -0.8, 0.5)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.6672, -0.4124, 0.65)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.6672, 0.3654, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.6672, 0.7, 0.65)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.1193, -0.8, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.1193, -0.4124, 0.65)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.1193, 0.3654, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.1193, 0.7, 0.65)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2618, -0.7, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2618, -0.4124, 0.65)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2618, 0.3654, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2618, 0.7, 0.65)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2634, -0.8, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2634, -0.4124, 0.65)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2634, 0.3654, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2634, 0.7, 0.65)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.05, -0.8, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.05, -0.4124, 0.65)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.05, 0.3654, 0.65)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.05, 0.7, 0.65)) }, + } + }, + availability = { + yearFrom = 1970, + yearTo = 1976 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 35 + } + + }, + +} +end diff --git a/res/models/model/vehicle/bus/obeissante.mdl b/res/models/model/vehicle/bus/obeissante.mdl new file mode 100755 index 0000000..2c95b99 --- /dev/null +++ b/res/models/model/vehicle/bus/obeissante.mdl @@ -0,0 +1,177 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 2.3695209026337, 0.95464998483658, 3.2160630226135, + }, + bbMin = { + -2.5171689987183, -0.95464998483658, -0.61202698945999, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/bus/obeissante/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.1119, -0.6138, -0.0016, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/obeissante/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.1119, 0.6138, -0.0016, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/obeissante/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.9372, 0, 0.6105, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/obeissante_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.3979, 0, -0.0016, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/bus/obeissante/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, -0.0016, 1, + }, + type = "MESH", + + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(.9,.9,.9),transf.degToRad( 0, 0, 0), vec3.new( 2.3556, 0, 1.705)), + type = "MESH", + }, { + id = "vehicle/bus/obeissante/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, -0.0016, 1, + }, + type = "MESH", + + }, + }, + events = { + close_all_ds = { + [1] = { + forward = false, + name = "opend1", + }, + [2] = { + forward = false, + name = "opend2", + }, + }, + open_all_ds = { + [1] = { + forward = true, + name = "opend1", + }, + [2] = { + forward = true, + name = "opend2", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 820, + + }, + }, + metadata = { + description = { + name = _("L'Obéissante"), + description = _("Built by the French Amédée Bollée, this steam omnibus was able to run bigger distances, e.g. from Le Mans to Paris.") + }, + roadVehicle = { + topSpeed = 17, + weight = 2, + power = 4, + tractiveEffort = 5, + configs = { + { + axles = { "vehicle/bus/obeissante/lod_0_w1.msh", + "vehicle/bus/obeissante/lod_0_w2.msh",}, + fakeBogies = { } + } + }, + soundSet = "bus_horse" + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "PASSENGERS", capacity = 20 } + }, + loadSpeed = 1, + seats = { + + { group =7, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.25, -0.07, 1.1)), crew = true}, + --passangers + { group =7, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-0.6, 0.6, 1.2))}, + { group =7, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0, 0.6, 1.2))}, + { group =7, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.6, 0.6, 1.2))}, + { group =7, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-0.6, -0.6, 1.2))}, + { group =7, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0, -0.6, 1.2))}, + { group =7, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.6, -0.6, 1.2))}, + + + + } + }, + availability = { + yearFrom = 1870, -- 1873 + yearTo = 1924 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + }, + particleSystem = { + emitters = { + { + position = { -1.4836, .0, 3.2145}, + velocity = { .0, .0, 7.0 }, + color = { .3, .3, .3 }, + frequency = 60, + lifeTime = 10.0, + size01 = { .7, 8.0 }, + child = 2 + }, + } + } + + }, + +} +end diff --git a/res/models/model/vehicle/bus/postkutsche.mdl b/res/models/model/vehicle/bus/postkutsche.mdl new file mode 100755 index 0000000..f1e454c --- /dev/null +++ b/res/models/model/vehicle/bus/postkutsche.mdl @@ -0,0 +1,200 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/bus/postkutsche/lod_2_postkutsche1850.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/bus/postkutsche/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.4179, 0, 0.7049, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/postkutsche_lod_2_guide.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.1243, 0, 0.4429, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 180, + visibleTo = 900, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/bus/postkutsche_lod_1_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/bus/postkutsche_lod_1_horses.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.7147, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + [2] = { + forward = true, + name = "drive", + }, + }, + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 80, + visibleTo = 180, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/bus/postkutsche_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/bus/postkutsche_lod_0_horses.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.7147, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + [2] = { + forward = true, + name = "drive", + }, + }, + + open_all_doors = { + [1] = { + forward = true, + name = "open_all_doors", + + }, + }, + close_all_doors = { + [1] = { + forward = false, + name = "open_all_doors", + + }, + }, + + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 80, + + }, + }, + metadata = { + description = { + name = _("Stage coach"), + description = _("A common stage coach used for public transportation in the early years.") + }, + roadVehicle = { + topSpeed = 15, + weight = 1, + power = 2, + tractiveEffort = 2, + configs = { + { + }, + { + axles = { "vehicle/bus/postkutsche/lod_1_w1.msh", + "vehicle/bus/postkutsche/lod_1_w2.msh", }, + fakeBogies = { { group = 7, position = 3.7147, offset = 0.0 } } + }, + { + axles = { "vehicle/bus/postkutsche/lod_0_w1.msh", + "vehicle/bus/postkutsche/lod_0_w2.msh", }, + fakeBogies = { { group = 11, position = 3.7147, offset = 0.0 } } + } + }, + soundSet = "bus_horse" + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "PASSENGERS", capacity = 16 } + }, + loadSpeed = 1, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.41, 0, 2.05)), crew = true}, + --passangers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.7, -0.4, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.7, 0.2, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, -0.5, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, 0.4, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, -0.1, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.3, -0.3, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.3, 0.4, 0.8))}, + } + }, + availability = { + yearFrom = 1850, + yearTo = 1907 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 15 + } + }, + +} +end diff --git a/res/models/model/vehicle/bus/saurer_tuescher.mdl b/res/models/model/vehicle/bus/saurer_tuescher.mdl new file mode 100755 index 0000000..f944b9a --- /dev/null +++ b/res/models/model/vehicle/bus/saurer_tuescher.mdl @@ -0,0 +1,211 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 3.4786009788513, 1.1098109483719, 2.7634139060974, + }, + bbMin = { + -3.4596209526062, -1.1098109483719, -0.48116800189018, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/bus/saurer_tuescher/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/saurer_tuescher/lod_0_door1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.1073, -1.009, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/saurer_tuescher/lod_0_door2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.2898, -1.0365, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/saurer_tuescher/lod_0_door3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.7208, -1.0356, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/saurer_tuescher/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.4478, 0, 0.4891, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/saurer_tuescher/lod_0_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.7139, -0.812, 0.4887, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/saurer_tuescher/lod_0_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.7139, 0.812, 0.4887, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/saurer_tuescher/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.4,1.4,1.4),transf.degToRad( 0, 0, 0), vec3.new( 3.3085, 0.8115, 1.0411)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.4,1.4,1.4),transf.degToRad( 0, 0, 0), vec3.new( 3.3085, -0.8115, 1.0411)), + type = "MESH", + },{ + id = "vehicle/asset/lod_0_light_round_red.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(.85,.85,.85),transf.degToRad( 182, 5.8788, 0), vec3.new( -3.4454, -0.6592, 0.8425)), + type = "MESH", + },{ + id = "vehicle/asset/lod_0_light_round_red.msh", + --manual lights + transf = transf.flipY(transf.scaleRotZYXTransl(vec3.new(.85,.85,.85),transf.degToRad( 182, 5.8788, 0), vec3.new( -3.4454, -0.6732, 0.8425))), + type = "MESH", + },{ + id = "vehicle/bus/saurer_tuescher/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + close_all_doors = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend2", + }, + [4] = { + forward = false, + name = "opend3", + }, + }, + open_all_doors = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend2", + }, + [4] = { + forward = true, + name = "opend3", + }, + }, + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 830, + + }, + }, + metadata = { + description = { + name = _("Saurer Tüscher"), + description = _("An urban public-transit bus, based on a Saurer carriage and a Tüscher car body.") + }, + roadVehicle = { + topSpeed = 50, + weight = 8, + power = 80, + tractiveEffort = 10, + configs = { + { + axles = { "vehicle/bus/saurer_tuescher/lod_0_w1.msh" }, + wheels = { "vehicle/bus/saurer_tuescher/lod_0_w2.msh" }, + fakeBogies = { { group = 0, position = 0, offset = 0 } } + } + }, + soundSet = "bus_old" + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "PASSENGERS", capacity = 52 } + }, + loadSpeed = 2, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.14, -0.06, 0.8)), crew = true}, + --passangers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.8, 0.67, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.8, 0.21, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0, -0.6, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0, 0.4, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, 0.67, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, 0.21, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, -0.6, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.8, 0.67, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.8, 0.21, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.8, -0.6, 0.8))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.9, 0.8, 0.8))}, + + } + }, + availability = { + yearFrom = 1939, + yearTo = 1976 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + }, + +} +end diff --git a/res/models/model/vehicle/bus/volvo_5000.mdl b/res/models/model/vehicle/bus/volvo_5000.mdl new file mode 100755 index 0000000..ac65329 --- /dev/null +++ b/res/models/model/vehicle/bus/volvo_5000.mdl @@ -0,0 +1,479 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 6.480800151825, 1.7743511199951, 2.7697329521179, + }, + bbMin = { + -5.5385432243347, -1.3530210256577, 4.3004751205444e-005, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/bus/volvo_5000/lod_2_volvo5000.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_2_door1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.3426, -1.1448, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_2_door2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.8837, -1.1448, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_2_door3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.8825, -1.1447, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_2_door4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.0572, -1.1475, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.4992, 0, 0.4804, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_2_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9743, -1.008, 0.4804, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_2_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.9743, 1.008, 0.4804, 1, + }, + type = "MESH", + + }, + }, + events = { + close_all_doors = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend2", + }, + [4] = { + forward = false, + name = "opend1", + }, + [5] = { + forward = false, + name = "opend4", + }, + }, + open_all_doors = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend2", + }, + [4] = { + forward = true, + name = "opend1", + }, + [5] = { + forward = true, + name = "opend4", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 250, + visibleTo = 1140, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/bus/volvo_5000/lod_1_volvo5000.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_1_door1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.3426, -1.1448, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_1_door2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.8837, -1.1448, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_1_door3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.8825, -1.1447, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_1_door4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.0572, -1.1475, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.4992, 0, 0.4804, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_1_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9743, -1.008, 0.4804, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_1_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.9743, 1.008, 0.4804, 1, + }, + type = "MESH", + + }, + }, + events = { + close_all_doors = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend2", + }, + [4] = { + forward = false, + name = "opend1", + }, + [5] = { + forward = false, + name = "opend4", + }, + }, + open_all_doors = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend2", + }, + [4] = { + forward = true, + name = "opend1", + }, + [5] = { + forward = true, + name = "opend4", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 120, + visibleTo = 250, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/bus/volvo_5000/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.3426, -1.1448, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.8837, -1.1448, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_0_d3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.8825, -1.1447, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_0_d4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.0572, -1.1475, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.4992, 0, 0.4804, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_0_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9743, -1.008, 0.4804, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_0_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.9743, 1.008, 0.4804, 1, + }, + type = "MESH", + + }, { + id = "vehicle/bus/volvo_5000/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/asset/lod_0_light_square_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.9,0.5),transf.degToRad( -2.0, 0.0, 0.0), vec3.new( 5.45, -0.84, 0.675)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_square_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.9,0.5),transf.degToRad( 2.0, 0.0, 0.0), vec3.new( 5.45, 0.84, 0.675)), + type = "MESH", + }, { + id = "vehicle/bus/volvo_5000/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + close_all_doors = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend2", + }, + [4] = { + forward = false, + name = "opend3", + }, + [5] = { + forward = false, + name = "opend4", + }, + }, + open_all_doors = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend2", + }, + [4] = { + forward = true, + name = "opend3", + }, + [5] = { + forward = true, + name = "opend4", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0,0, 0, 0,0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 120, + + }, + }, + metadata = { + description = { + name = _("Volvo 5000"), + description = _("This bus is a rear-engine, low-floor single-deck city bus with a chassis built by Volvo and bodywork by Säffle.") + }, + roadVehicle = { + topSpeed = 100, + weight = 10, + power = 120, + tractiveEffort = 15, + configs = { + { + axles = { "vehicle/bus/volvo_5000/lod_2_w1.msh" }, + wheels = { "vehicle/bus/volvo_5000/lod_2_w2.msh" }, + fakeBogies = { { group = 0, position = 0, offset = 0 } } + }, + { + axles = { "vehicle/bus/volvo_5000/lod_1_w1.msh" }, + wheels = { "vehicle/bus/volvo_5000/lod_1_w2.msh" }, + fakeBogies = { { group = 0, position = 0, offset = 0 } } + }, + { + axles = { "vehicle/bus/volvo_5000/lod_0_w1.msh" }, + wheels = { "vehicle/bus/volvo_5000/lod_0_w2.msh" }, + fakeBogies = { { group = 0, position = 0, offset = 0 } } + } + }, + soundSet = { name = "bus_modern", horn = "vehicle/truck_modern/horn.wav" } + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "PASSENGERS", capacity = 72 } + + }, + loadSpeed = 3, + + seats = { + + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.55, 0.55, 0.3)), crew = true}, + --passangers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.35, 0.67, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.35, 0.2, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(3.35, -0.9, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(2.4, 0.87, 0.4))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.4, 0.4, 0.4))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(2.4, -0.7, 0.4))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(1.25, -0.98, 0.4))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(1.25, -0.5, 0.4))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(1.25, 0.27, 0.4))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(1.25, 0.75, 0.4))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.18, -0.98, 0.4))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.18, -0.5, 0.4))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-1.18, 0.27, 0.4))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-1.18, 0.75, 0.4))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-2, -0.98, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-2, -0.5, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-2, 0.27, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-2, 0.75, 0.6))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-2.9, -0.76, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-2.9, -0.25, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(190.0, 0.0, 0.0), vec3.new(-2.9, 0.5, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(190.0, 0.0, 0.0), vec3.new(-2.9, 0.9, 0.6))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-4, -0.98, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-4, -0.5, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-4, 0.27, 0.6))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-4, 0.75, 0.6))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-5, -0.92, 0.74))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-5, -0.4, 0.74))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-5, 0.2, 0.74))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-5, 0.7, 0.74))}, + + + + + } + }, + availability = { + yearFrom = 2003, + yearTo = 2005 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 35 + } + }, + +} +end diff --git a/res/models/model/vehicle/plane/airbus_a320.mdl b/res/models/model/vehicle/plane/airbus_a320.mdl new file mode 100755 index 0000000..10515bc --- /dev/null +++ b/res/models/model/vehicle/plane/airbus_a320.mdl @@ -0,0 +1,530 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 16.216171264648, 17.050912857056, 11.61053943634, + }, + bbMin = { + -21.30428314209, -17.050912857056, -0.13521492481232, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + -- body + { + id = "vehicle/plane/airbus_a320/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_body_mat2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 11.6641, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -12.8088, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 11.6641, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -12.8088, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_rotor1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.009, 5.698, -1.4578+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_rotor1.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 4.009, -5.698, -1.4578+3, 1, + }, + type = "MESH", + + }, + -- front wheel + { + id = "vehicle/plane/airbus_a320_lod_0_front_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 11.5026, 0, -0.3497+3, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/plane/airbus_a320/lod_0_flap_front_left1.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,177.5,84), vec3.new(13.001, 0.4034, -1.0873+3)), + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_flap_front_left2.msh", + transf = transf.rotZYXTransl(transf.degToRad(180,0,-60), vec3.new(11.6063, 0.4139, -1.1478+3)), + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_flap_front_left1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,177.5,84), vec3.new(13.001, 0.4034, -1.0873+3))), + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_flap_front_left2.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(180,0,-60), vec3.new(11.6063, 0.4139, -1.1478+3))), + type = "MESH", + + }, + + -- back wheels + { + id = "vehicle/plane/airbus_a320/lod_0_flap_back_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.3528, 0.1663, -1.4696+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_flap_back_left.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -1.3528, -0.1663, -1.4696+3, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/airbus_a320_lod_0_back_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.3928, 3.7408, -0.2332+3, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/plane/airbus_a320_lod_0_back_wheel_strut.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.396, 1.9616, -0.437+3, 1, + }, + type = "GROUP", + + }, + + { + id = "vehicle/plane/airbus_a320_lod_0_back_wheel.grp", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -1.3928, -3.7408, -0.2332+3, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/plane/airbus_a320_lod_0_back_wheel_strut.grp", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -1.396, -1.9616, -0.437+3, 1, + }, + type = "GROUP", + + }, + + + -- Aircraft rudders + { + id = "vehicle/plane/airbus_a320/lod_0_aileron_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(110.708,-6.02,89.584), vec3.new(-4.3902, 14.6651, 1.0659+3)), + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_aileron_left.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(110.708,-6.02,89.584), vec3.new(-4.3902, 14.6651, 1.0659+3))), + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_elevator_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(109.324,-10.91,87.267), vec3.new(-19.1243, 3.56, 1.7768+3)), + + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_elevator_left.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(109.324,-10.91,87.267), vec3.new(-19.1243, 3.56, 1.7768+3))), + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_inboard_flap_left1.msh", + transf = transf.rotZYXTransl(transf.degToRad(108.098,-5.854,88.091), vec3.new(-2.2627, 10.1174, 0.3957+3)), + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_inboard_flap_left2.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,-7.664,90), vec3.new(-1.3397, 4.838, -0.3603+3)), + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_inboard_flap_left1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(108.098,-5.854,88.091), vec3.new(-2.2627, 10.1174, 0.3957+3))), + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_inboard_flap_left2.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(90,-7.664,90), vec3.new(-1.3397, 4.838, -0.3603+3))), + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_rudder.msh", + transf = transf.rotZYXTransl(transf.degToRad(-180.001,-156.124,-179.992), vec3.new(-18.8526, 0, 6.3287+3)), + type = "MESH", + + }, + + + -- lights + { + id = "vehicle/plane/airbus_a320/lod_0_aft_light.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_anti_collision_strobo_bottom.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_anti_collision_strobo_top.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_navigation_light_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_navigation_light_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/airbus_a320/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, + }, + events = { + open_flaps = { + [25] = { + forward = true, + name = "open", + }, + [27] = { + forward = true, + name = "open", + }, + [26] = { + forward = true, + name = "open", + }, + [28] = { + forward = true, + name = "open", + }, + }, + close_flaps = { + [25] = { + forward = false, + name = "open", + }, + [27] = { + forward = false, + name = "open", + }, + [26] = { + forward = false, + name = "open", + }, + [28] = { + forward = false, + name = "open", + }, + }, + open_doors_left = { + [3] = { + forward = true, + name = "opend1", + }, + [4] = { + forward = true, + name = "opend2", + }, + }, + open_doors_right = { + [5] = { + forward = true, + name = "opend1", + }, + [6] = { + forward = true, + name = "opend2", + }, + }, + close_doors_left = { + [3] = { + forward = false, + name = "opend1", + }, + [4] = { + forward = false, + name = "opend2", + }, + }, + close_doors_right = { + [5] = { + forward = false, + name = "opend1", + }, + [6] = { + forward = false, + name = "opend2", + }, + }, + + open_wheels = { + [10] = { + forward = true, + name = "open", + }, + [11] = { + forward = true, + name = "open", + }, + [12] = { + forward = true, + name = "open", + }, + [13] = { + forward = true, + name = "open", + }, + [14] = { + forward = true, + name = "open", + }, + [15] = { + forward = true, + name = "open", + }, + [16] = { + forward = true, + name = "open", + }, + [17] = { + forward = true, + name = "open", + }, + [18] = { + forward = true, + name = "open", + }, + [19] = { + forward = true, + name = "open", + }, + [20] = { + forward = true, + name = "open", + }, + }, + + close_wheels = { + [10] = { + forward = false, + name = "open", + }, + [11] = { + forward = true, + name = "close", + }, + [12] = { + forward = true, + name = "close", + }, + [13] = { + forward = true, + name = "close", + }, + [14] = { + forward = true, + name = "close", + }, + [15] = { + forward = true, + name = "close", + }, + [16] = { + forward = true, + name = "close", + }, + [17] = { -- backwheel_grp + forward = true, + name = "close", + }, + [18] = { + forward = true, + name = "close", + }, + [19] = { -- backwheel_grp + forward = true, + name = "close", + }, + [20] = { + forward = true, + name = "close", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 8060, + + }, + }, + metadata = { + airVehicle = { + weight = 44000.0, + maxPayload = 0, + maxTakeOffWeight = 78000.0, + maxThrust = 236000.0, + idleThrust = 11800.0, + timeToFullThrust = 3, + wingArea = 122.6, + topSpeed = 230.0, + configs = { + { + axles = { + "vehicle/plane/airbus_a320/lod_0_w2.msh", + }, + wheels = { + "vehicle/plane/airbus_a320/lod_0_w1.msh", + }, + elevator = { + ids = { 38, 39 }, + maxAngle = 20 + }, + aileronLeft = { + ids = { 36 }, + maxAngle = 30 + }, + aileronRight = { + ids = { 37 }, + maxAngle = 30 + }, + flaps = { -- TODO, fixit + ids = { 40, 41, 42, 43 }, + maxAngle = 35 + }, + rudder = { + ids = { 44 }, + maxAngle = 30 + } + } + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + description = { + name = _("Airbus A320"), + description = _("Technically, the name A320 only refers to the original mid-sized aircraft, but it is often informally used to indicate any of the A318/A319/A320/A321 family.") + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + }, + transportVehicle = { + carrier = "AIR", + capacities = { + { + type = "PASSENGERS", + capacity = 150, -- wikipedia + } + }, + loadSpeed = 7, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(13.15, 0.8, 0.0)), crew = true}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(13.15, -1.05, 0.0)), crew = true}, + --passangers + + } + }, + soundConfig = { + soundSet = { name = "aircraft_jet_modern" } + } + + }, + +} +end diff --git a/res/models/model/vehicle/plane/boeing_737.mdl b/res/models/model/vehicle/plane/boeing_737.mdl new file mode 100755 index 0000000..11db69f --- /dev/null +++ b/res/models/model/vehicle/plane/boeing_737.mdl @@ -0,0 +1,434 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 15.126559257507, 14.180633544922, 11.674771308899, + }, + bbMin = { + -14.741494178772, -14.180633544922, -0.097778141498566, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + -- Body + { + id = "vehicle/plane/boeing_737/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10.4301, 1.5941, 0+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -7.6291, 1.4587, 0+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_d3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10.4301, -1.5941, 0+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_d4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -7.6291, -1.4587, 0+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_rotor1.msh", + transf = transf.rotZYXTransl(transf.degToRad(-91.77,-85.327,-89.998), vec3.new(4.1182, 5.0691, -0.5121+2)), + type = "MESH", + + },{ + id = "vehicle/plane/boeing_737/lod_0_rotor1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(-91.77,-85.327,-89.998), vec3.new(4.1182, 5.0691, -0.5121+2))), + type = "MESH", + + }, + -- back wheels + { + id = "vehicle/plane/boeing_737/lod_0_flap_back_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(180,0,-78.5), vec3.new(0.1956, 2.8007, 0.3302+2)), + type = "MESH", + + }, + { + id = "vehicle/plane/boeing_737_lod_0_back_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.2539, 2.7987, 0.4701+2, 1, + }, + type = "GROUP", + + }, + { -- mirrored + id = "vehicle/plane/boeing_737/lod_0_flap_back_left.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(180,0,-78.5), vec3.new(0.1956, 2.8007, 0.3302+2))), + type = "MESH", + + }, + { + id = "vehicle/plane/boeing_737_lod_0_back_wheel.grp", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(0.2539, 2.7987, 0.4701+2))), + type = "GROUP", + + }, + + -- front wheel + { + id = "vehicle/plane/boeing_737/lod_0_flap_front_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(180,8.94,-80), vec3.new(12.6405, 0.4236, -0.3735+2)), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_flap_front_right.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,171.06,80), vec3.new(12.6405, -0.4236, -0.3735+2)), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737_lod_0_front_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10.9502, 0, -0.4198+2, 1, + }, + type = "GROUP", + + }, + -- Aircraft rudders + + { + id = "vehicle/plane/boeing_737/lod_0_aileron_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(106.232,-5.479,89.697), vec3.new(-2.702, 12.1271, 1.0303+2)), + type = "MESH", + + },{ + id = "vehicle/plane/boeing_737/lod_0_aileron_left.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(106.232,-5.479,89.697), vec3.new(-2.702, 12.1271, 1.0303+2))), + type = "MESH", + + }, + { + id = "vehicle/plane/boeing_737/lod_0_elevator_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(-69.849,-174.301,-90.101), vec3.new(-13.431, 3.1295, 2.806+2)), + type = "MESH", + + },{ + id = "vehicle/plane/boeing_737/lod_0_elevator_left.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(-69.849,-174.301,-90.101), vec3.new(-13.431, 3.1295, 2.806+2))), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_inboard_flap_left1.msh", + transf = transf.rotZYXTransl(transf.degToRad(107.153,-5.442,104.228), vec3.new(-0.6018, 5.2439, 0.1916+2)), + type = "MESH", + + },{ + id = "vehicle/plane/boeing_737/lod_0_inboard_flap_left1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(107.153,-5.442,104.228), vec3.new(-0.6018, 5.2439, 0.1916+2))), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_inboard_flap_left2.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,-5.596,44.053), vec3.new(-0.4405, 3.2216, 0.0978+2)), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_inboard_flap_left2.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(90,-5.596,44.053), vec3.new(-0.4405, 3.2216, 0.0978+2))), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_rudder.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,-21.1209,0.952), vec3.new(-12.5152, 0, 6.029+2)), + type = "MESH", + + }, + + + -- lights + { + id = "vehicle/plane/boeing_737/lod_0_aft_light.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_737/lod_0_anti_collision_strobo_bottom.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_737/lod_0_anti_collision_strobo_top.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_737/lod_0_landing_lights.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_737/lod_0_navigation_light_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_737/lod_0_navigation_light_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/boeing_737/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_737/lod_0_logo_rudder.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,-21.1209,0.952), vec3.new(-12.5152, 0, 6.029+2)), + type = "MESH", + + }, + }, + events = { + + open_doors_left = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend2", + }, + }, + close_doors_left = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend2", + }, + }, + open_doors_right = { + [4] = { + forward = true, + name = "opend3", + }, + [5] = { + forward = true, + name = "opend4", + }, + }, + close_doors_right = { + [4] = { + forward = false, + name = "opend3", + }, + [5] = { + forward = false, + name = "opend4", + }, + }, + close_wheels = { + + [9] = { + forward = false, + name = "open", + }, + [10] = { + forward = false, + name = "open", + }, + [11] = { + forward = false, + name = "open", + }, + [12] = { + forward = false, + name = "open", + }, + + [13] = { + forward = true, + name = "close", + }, + [14] = { + forward = true, + name = "close", + }, + [15] = { + forward = false, + name = "open", + }, + }, + open_wheels = { + + + [9] = { + forward = true, + name = "open", + }, + [10] = { + forward = true, + name = "open", + }, + [11] = { + forward = true, + name = "open", + }, + [12] = { + forward = true, + name = "open", + }, + + [13] = { + forward = false, + name = "close", + }, + [14] = { + forward = false, + name = "close", + }, + [15] = { + forward = true, + name = "open", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 6680, + + }, + }, + metadata = { + airVehicle = { + weight = 28100.0, + maxPayload = 0, + maxTakeOffWeight = 50300.0, + maxThrust = 128000.0, + idleThrust = 6400.0, + timeToFullThrust = 3, + wingArea = 102, + topSpeed = 216.666666667, + configs = { + { + axles = { + "vehicle/plane/boeing_737/lod_0_w2.msh", + }, + wheels = { + "vehicle/plane/boeing_737/lod_0_w1.msh", + }, + elevator = { + ids = { 26, 27 }, + maxAngle = 30 + }, + aileronLeft = { + ids = { 24 }, + maxAngle = 30 + }, + aileronRight = { + ids = { 25 }, + maxAngle = 30 + }, + flaps = { -- TODO, fixit + ids = { 28, 29, 30, 31 }, + maxAngle = 35 + }, + rudder = { + ids = { 32,40 }, + maxAngle = 30 + } + } + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + description = { + name = _("Boeing 737"), + description = _("The Boeing 737 is an American short- to medium-range twinjet narrow-body airliner.") + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + }, + transportVehicle = { + carrier = "AIR", + capacities = { + { + type = "PASSENGERS", + capacity = 85, + } + }, + loadSpeed = 6, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(12.1, 0.52, 0.48)), crew = true}, + } + }, + soundConfig = { + soundSet = { name = "aircraft_jet_old" } + } + + }, + +} +end diff --git a/res/models/model/vehicle/plane/boeing_757.mdl b/res/models/model/vehicle/plane/boeing_757.mdl new file mode 100755 index 0000000..1ed5cd0 --- /dev/null +++ b/res/models/model/vehicle/plane/boeing_757.mdl @@ -0,0 +1,551 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 23.173807144165, 19.027015686035, 13.399807929993, + }, + bbMin = { + -24.323081970215, -19.027015686035, -0.29814994335175, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/plane/boeing_757/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 18.4226, 1.8394, 1.0187+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.2031, 1.8617, 1.5733+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_d3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.7296, 1.8617, 1.3988+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_d4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -15.2515, 1.6702, 1.5977+3, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/boeing_757/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 18.4226, -1.8394, 1.0187+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 9.2031, -1.8617, 1.5733+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_d3.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -6.7296, -1.8617, 1.3988+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_d4.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -15.2515, -1.6702, 1.5977+3, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/boeing_757/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_rotor1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.0925, 6.5124, -1.181+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_rotor1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.0925, -6.5124, -1.181+3, 1, + }, + type = "MESH", + + }, + -- front wheel + { + id = "vehicle/plane/boeing_757/lod_0_flap_front_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(179.382, 0.554, 39.0), vec3.new(18.423, 0.432, -0.83+3)), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_flap_front_right.msh", + transf = transf.rotZYXTransl(transf.degToRad(0.618, -0.554, 39.0), vec3.new(18.423, -0.432, -0.83+3)), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757_lod_0_front_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 16.714, 0, 0.0751+3, 1, + }, + type = "GROUP", + + }, + -- back wheels + { + id = "vehicle/plane/boeing_757/lod_0_flap_back_inner_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.8996, 0.1625, -1.1532+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_flap_back_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.8852, 3.9129, -0.1449+3, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_757_lod_0_back_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.8964, 3.6957, 0.0937+3, 1, + }, + type = "GROUP", + + }, + + { + id = "vehicle/plane/boeing_757/lod_0_flap_back_inner_left.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -1.8996, -0.1625, -1.1532+3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_flap_back_left.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -1.8852, -3.9129, -0.1449+3, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_757_lod_0_back_wheel.grp", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -1.8964, -3.6957, 0.0937+3, 1, + }, + type = "GROUP", + + }, + -- Aircraft rudders + { + id = "vehicle/plane/boeing_757/lod_0_aileron_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(107.388,-4.177,89.633), vec3.new(-4.9719, 16.3974, 0.9995+3)), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_elevator_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(-70.198, 186.485, -91.454), vec3.new(-21.8, 4.292, 1.75+3)), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_inboard_flap_left1.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,-4.787,0), vec3.new(-2.217, 10.941, 0.413+3)), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_inboard_flap_left2.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,0,0), vec3.new(-1.614, 4.163, -0.222+3)), + type = "MESH", + + }, + + { + id = "vehicle/plane/boeing_757/lod_0_aileron_left.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(107.388,-4.177,89.633), vec3.new(-4.9719, 16.3974, 0.9995+3))), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_elevator_left.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(-70.198, 186.485, -91.454), vec3.new(-21.8, 4.292, 1.75+3))), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_inboard_flap_left1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(90,-4.787,0), vec3.new(-2.217, 10.941, 0.413+3))), + type = "MESH", + + }, { + id = "vehicle/plane/boeing_757/lod_0_inboard_flap_left2.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(90,0,0), vec3.new(-1.614, 4.163, -0.222+3))), + type = "MESH", + + }, + + { + id = "vehicle/plane/boeing_757/lod_0_rudder.msh", + transf = transf.rotZYXTransl(transf.degToRad(180, -151.268, -180), vec3.new(-21.462, 0, 6.476+3)), + type = "MESH", + + }, + + -- lights + { + id = "vehicle/plane/boeing_757/lod_0_aft_light.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_757/lod_0_anti_collision_strobo_bottom.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_757/lod_0_anti_collision_strobo_top.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_757/lod_0_landing_lights.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_757/lod_0_navigation_light_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_757/lod_0_navigation_light_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/boeing_757/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+3, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/boeing_757/lod_0_logo_rudder.msh", + transf = transf.rotZYXTransl(transf.degToRad(180, -151.268, -180), vec3.new(-21.462, 0, 6.476+3)), + type = "MESH", + + }, + }, + events = { + open_doors_left = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend1", + }, + + --[[ + [4] = { + forward = true, + name = "opend1", + }, + ]]-- + + [5] = { + forward = true, + name = "opend1", + }, + }, + open_doors_right = { + [6] = { + forward = true, + name = "opend1", + }, + [7] = { + forward = true, + name = "opend1", + }, + + --[[ + [8] = { + forward = true, + name = "opend1", + }, + ]]-- + + [9] = { + forward = true, + name = "opend1", + }, + }, + close_doors_left = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend1", + }, + + --[[ + [4] = { + forward = false, + name = "opend1", + }, + ]]-- + + [5] = { + forward = false, + name = "opend1", + }, + }, + close_doors_right = { + [6] = { + forward = false, + name = "opend1", + }, + [7] = { + forward = false, + name = "opend1", + }, + + --[[ + [8] = { + forward = false, + name = "opend1", + }, + ]]-- + + [9] = { + forward = false, + name = "opend1", + }, + }, + open_wheels = { + [13] = { + forward = true, + name = "open" + }, + [14] = { + forward = true, + name = "open" + }, + [15] = { + forward = true, + name = "open" + }, + + [16] = { + forward = true, + name = "open" + }, + [17] = { + forward = true, + name = "open" + }, + [18] = { + forward = true, + name = "open" + }, + + [19] = { + forward = true, + name = "open" + }, + [20] = { + forward = true, + name = "open" + }, + [21] = { + forward = true, + name = "open" + }, + }, + close_wheels = { + [13] = { + forward = true, + name = "close" + }, + [14] = { + forward = true, + name = "close" + }, + [15] = { + forward = false, + name = "open" + }, + + [16] = { + forward = false, + name = "open" + }, + [17] = { + forward = false, + name = "open" + }, + [18] = { + forward = false, + name = "open" + }, + + [19] = { + forward = false, + name = "open" + }, + [20] = { + forward = false, + name = "open" + }, + [21] = { + forward = false, + name = "open" + }, + } + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 9210, + + }, + }, + metadata = { + airVehicle = { + weight = 57800.0, + maxPayload = 0, + maxTakeOffWeight = 115700.0, + maxThrust = 360000.0, + idleThrust = 18000.0, + timeToFullThrust = 3, + wingArea = 181.3, + topSpeed = 248.611111111, + configs = { + { + axles = { + "vehicle/plane/boeing_757/lod_0_w2.msh", + "vehicle/plane/boeing_757/lod_0_w3.msh" + }, + wheels = { + "vehicle/plane/boeing_757/lod_0_w1.msh", + }, + elevator = { + ids = { 33, 37 }, + maxAngle = 20 + }, + aileronLeft = { + ids = { 32 }, + maxAngle = 30 + }, + aileronRight = { + ids = { 36 }, + maxAngle = 30 + }, + flaps = { + ids = { 34, 35, 38, 39 }, + maxAngle = 20 + }, + rudder = { + ids = { 40 }, + maxAngle = 30 + } + } + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + description = { + name = _("Boeing 757"), + description = _("The Boeing 757 is the manufacturer's largest single-aisle passenger aircraft and was produced from 1981 to 2004.") + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + }, + transportVehicle = { + carrier = "AIR", + capacities = { + { + type = "PASSENGERS", + capacity = 220, -- wikipedia: max 239 + } + }, + loadSpeed = 10, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(20.38, 0.6, 0.1)), crew = true}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(20.38, -0.75, 0.1)), crew = true}, + --passangers + + } + }, + soundConfig = { + soundSet = { name = "aircraft_jet_modern" } + } + }, + +} +end diff --git a/res/models/model/vehicle/plane/comet_4b.mdl b/res/models/model/vehicle/plane/comet_4b.mdl new file mode 100755 index 0000000..476fcdb --- /dev/null +++ b/res/models/model/vehicle/plane/comet_4b.mdl @@ -0,0 +1,428 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 18.67066192627, 16.416221618652, 6.1334609985352, + }, + bbMin = { + -17.215757369995, -16.416221618652, -2.7228879928589, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/plane/comet_4b/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/comet_4b/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.4939, 1.6301, 0.4705, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/comet_4b/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.4939, -1.6301, 0.4705, 1, + }, + type = "MESH", + + }, + + { + id = "vehicle/plane/comet_4b/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + -- Aircraft rudders + { + id = "vehicle/plane/comet_4b/lod_0_aileron.msh", + transf = transf.rotZYXTransl(transf.degToRad(102.156,-3.48,89.112), vec3.new(-2.87, 10.8409, -0.2014)), + type = "MESH", + + }, + { + id = "vehicle/plane/comet_4b/lod_0_elevator.msh", + transf = transf.rotZYXTransl(transf.degToRad(93.435,-11.526,87.23), vec3.new(-15.6666, 0.5026, 1.2072)), + type = "MESH", + + }, + { + id = "vehicle/plane/comet_4b/lod_0_inboard_flap.msh", + transf = transf.rotZYXTransl(transf.degToRad(99.608,-3.78,88.416), vec3.new(-1.8631, 5.9335,-0.52)), + type = "MESH", + + },{ + id = "vehicle/plane/comet_4b/lod_0_outboard_flap.msh", + transf = transf.rotZYXTransl(transf.degToRad(99.608,-3.398,91.499), vec3.new(-2.3895, 9.0431,-0.3242)), + type = "MESH", + + }, { + id = "vehicle/plane/comet_4b/lod_0_rudder.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -15.5296, 0, 3.8223, 1, + }, + type = "MESH", + + }, + -- flipped rudders + { + id = "vehicle/plane/comet_4b/lod_0_aileron.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(102.156,-3.48,89.112), vec3.new(-2.87, 10.8409, -0.2014))), + type = "MESH", + + }, { + id = "vehicle/plane/comet_4b/lod_0_elevator.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(93.435,-11.526,87.23), vec3.new(-15.6666, 0.5026, 1.2072))), + type = "MESH", + + }, + { + id = "vehicle/plane/comet_4b/lod_0_inboard_flap.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(99.608,-3.78,88.416), vec3.new(-1.8631, 5.9335,-0.52))), + type = "MESH", + + },{ + id = "vehicle/plane/comet_4b/lod_0_outboard_flap.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(99.608,-3.398,91.499), vec3.new(-2.3895, 9.0431,-0.3242))), + type = "MESH", + + }, + + + -- back wheels + { + id = "vehicle/plane/comet_4b_lod_0_back_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.4964, 4.4828, -0.9167, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/plane/comet_4b/lod_0_back_wheel_big_flap.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.0457, 6.3528, -0.7374, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/comet_4b/lod_0_back_wheel_small_flap.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,-80), vec3.new(-0.0093, 4.3823, -0.921)), + type = "MESH", + + }, + { + id = "vehicle/plane/comet_4b_lod_0_back_wheel.grp", + transf = transf.flipY({ + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.4964, 4.4828, -0.9167, 1, + }), + type = "GROUP", + + },{ + id = "vehicle/plane/comet_4b/lod_0_back_wheel_big_flap.msh", + transf = transf.flipY({ + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.0457, 6.3528, -0.7374, 1, + }), + type = "MESH", + + }, { + id = "vehicle/plane/comet_4b/lod_0_back_wheel_small_flap.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,-80), vec3.new(-0.0093, 4.3823, -0.921))), + type = "MESH", + + }, + + -- front wheel + { + id = "vehicle/plane/comet_4b/lod_0_flap_front_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,-4.318,-80), vec3.new(15.9928, 0.4109, -0.9182)), + type = "MESH", + + }, { + id = "vehicle/plane/comet_4b/lod_0_flap_front_right.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,-4.318,-80), vec3.new(15.9928, -0.4109, -0.9182)), + type = "MESH", + + }, + { + id = "vehicle/plane/comet_4b_lod_0_front_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 15.6035, 0, -0.839, 1, + }, + type = "GROUP", + + }, + -- lights + { + id = "vehicle/plane/comet_4b/lod_0_aft_light.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/comet_4b/lod_0_anti_collision_strobo_bottom.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/comet_4b/lod_0_landing_lights_inside.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/comet_4b/lod_0_landing_lights_outside.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/comet_4b/lod_0_navigation_light_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/comet_4b/lod_0_navigation_light_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/comet_4b/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/comet_4b/lod_0_logo_rudder.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -15.5296, 0, 3.8223, 1, + }, + type = "MESH", + + }, + }, + events = { + open_doors_left = { + [2] = { + forward = true, + name = "opend1", + }, + }, + open_doors_right = { + [3] = { + forward = true, + name = "opend2", + }, + }, + close_doors_left = { + [2] = { + forward = false, + name = "opend1", + }, + }, + close_doors_right = { + [3] = { + forward = false, + name = "opend2", + }, + }, + open_wheels = { + + [14] = { + forward = true, + name = "open", + }, + [15] = { + forward = true, + name = "open", + }, + [16] = { + forward = true, + name = "open", + }, + + [17] = { + forward = true, + name = "open", + }, + [18] = { + forward = true, + name = "open", + }, + [19] = { + forward = true, + name = "open", + }, + + + [22] = { + forward = true, + name = "open", + }, [21] = { + forward = true, + name = "open", + }, [20] = { + forward = true, + name = "open", + }, + }, + close_wheels = { + [14] = { + forward = false, + name = "open", + }, + [15] = { + forward = true, + name = "open", + }, + [16] = { + forward = true, + name = "close", + }, + + [17] = { + forward = false, + name = "open", + }, + [18] = { + forward = true, + name = "open", + }, + [19] = { + forward = true, + name = "close", + }, + + + [22] = { + forward = false, + name = "open", + }, [21] = { + forward = true, + name = "close", + }, [20] = { + forward = true, + name = "close", + }, + } + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 7730, + + }, + }, + metadata = { + airVehicle = { + weight = 33000.0, + maxPayload = 0, + maxTakeOffWeight = 71600.0, + maxThrust = 188000.0, + idleThrust = 9400.0, + timeToFullThrust = 3, + wingArea = 191.3, + topSpeed = 201.388888889, + configs = { + { + axles = { + "vehicle/plane/comet_4b/lod_0_back_w1.msh", + }, + wheels = { + "vehicle/plane/comet_4b/lod_0_front_w1.msh", + }, + elevator = { + ids = { 6, 11 }, + maxAngle = 20 + }, + aileronLeft = { + ids = { 5 }, + maxAngle = 30 + }, + aileronRight = { + ids = { 10 }, + maxAngle = 30 + }, + flaps = { + ids = { 7, 8, 12, 13 }, + maxAngle = 35 + }, + rudder = { + ids = { 9,43 }, + maxAngle = 30 + } + } + } + }, + availability = { + yearFrom = 1960, + yearTo = 1967 + }, + cost = { + price = -1 + }, + description = { + name = _("De Havilland Comet 4B"), + description = _("Originally developed for Capital Airlines as the 4A, the 4B featured greater capacity through a 2m longer fuselage, and a shorter wingspan.") + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + }, + transportVehicle = { + carrier = "AIR", + capacities = { + { + type = "PASSENGERS", + capacity = 85, -- wikipedia + } + }, + loadSpeed = 4, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(16.7, 0.39, -0.26)), crew = true}, + } + }, + soundConfig = { + soundSet = { name = "aircraft_jet_old" } + } + } +} +end diff --git a/res/models/model/vehicle/plane/concorde.mdl b/res/models/model/vehicle/plane/concorde.mdl new file mode 100755 index 0000000..0a5276a --- /dev/null +++ b/res/models/model/vehicle/plane/concorde.mdl @@ -0,0 +1,527 @@ +local vec3 = require "vec3" +local transf = require "transf" + + +-- transf = transf.rotZYXTransl(transf.degToRad(179.382,0.054,44.205), vec3.new(18.423, 0.432, -0.819+4)), +-- transf.flipY() + + +function data() +return { + boundingInfo = { + bbMax = { + 35.955730438232, 12.800143241882, 12.222454071045, + }, + bbMin = { + -24.32844543457, -12.800143241882, -0.33479624986649, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + -- Body + { + id = "vehicle/plane/concorde/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+4, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 23.7473, 1.3694, 0+4, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.9035, 1.3894, 0+4, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_d3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -7.8979, 1.3629, 0+4, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_d4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 23.7473, -1.3694, 0+4, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_d5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.9035, -1.3894, 0+4, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_d6.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -7.8979, -1.3629, 0+4, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+4, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_nose.msh", + transf = transf.rotZYXTransl(transf.degToRad(-90,0,90), vec3.new(28.5702, 0, 0.0691+4)), + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_nose_window.msh", + transf = transf.rotZYXTransl(transf.degToRad(-90,0,90), vec3.new(27.8155, 0, 0.2827+4)), + type = "MESH", + + }, + -- back wheels + { + id = "vehicle/plane/concorde/lod_0_flap_back_left1.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,-1.784,-46.358), vec3.new(-0.5968, 3.9065, -0.1049+4)), + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_flap_back_left2.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,90), vec3.new(-0.2251, 0.075, -0.5258+4)), + type = "MESH", + + }, + { + id = "vehicle/plane/concorde/lod_0_back_wheel_mount_left_strut.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-0.2207, 1.3113, -0.0756+4)), + type = "MESH", + + }, { + id = "vehicle/plane/concorde_lod_0_back_wheel.grp", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-0.0934, 3.7455, 0.0552+4)), + type = "GROUP", + + }, + + -- back wheels mirrored + { + id = "vehicle/plane/concorde/lod_0_flap_back_left1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,-1.784,-46.358), vec3.new(-0.5968, 3.9065, -0.1049+4))), + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_flap_back_left2.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,90), vec3.new(-0.2251, 0.075, -0.5258+4))), + type = "MESH", + + },{ + id = "vehicle/plane/concorde/lod_0_back_wheel_mount_left_strut.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-0.2207, 1.3113, -0.0756+4))), + type = "MESH", + + },{ + id = "vehicle/plane/concorde_lod_0_back_wheel.grp", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-0.0934, 3.7455, 0.0552+4))), + type = "GROUP", + + }, + + -- end wheel + { + id = "vehicle/plane/concorde/lod_0_flap_tail_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,10.618,46.368), vec3.new(-18.8415, 0.1937, 1.1772+4)), + type = "MESH", + + },{ + id = "vehicle/plane/concorde/lod_0_flap_tail_left.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,10.618,46.368), vec3.new(-18.8415, 0.1937, 1.1772+4))), + type = "MESH", + + },{ + id = "vehicle/plane/concorde_lod_0_tail_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -17.5255, 0, 1.0068+4, 1, + }, + type = "GROUP", + + }, + -- front wheels + { + id = "vehicle/plane/concorde/lod_0_flap_front_left1.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(20.6553, 0.5019, -0.3512+4)), + type = "MESH", + + }, { -- CLOSE not open anim + id = "vehicle/plane/concorde/lod_0_flap_front_left2.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,-65), vec3.new(17.7644, 0.5019, -0.3512+4)), + type = "MESH", + + },{ + id = "vehicle/plane/concorde/lod_0_flap_front_left1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(20.6553, 0.5019, -0.3512+4))), + type = "MESH", + + }, { -- CLOSE not open anim + id = "vehicle/plane/concorde/lod_0_flap_front_left2.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,-65), vec3.new(17.7644, 0.5019, -0.3512+4))), + type = "MESH", + + }, { + id = "vehicle/plane/concorde_lod_0_front_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 17.5105, 0, 0.2064+4, 1, + }, + type = "GROUP", + + }, + -- Aircraft rudders + { + id = "vehicle/plane/concorde/lod_0_aileron_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,10.887,-262.65), vec3.new(-9.2316, 9.3404, -0.0929+4)), + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_aileron_right.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,-10.887,97.35), vec3.new(-9.2316, -9.3404, -0.0929+4)), + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_inboard_flap_left1.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,4.778,91.76), vec3.new(-9.2316, 8.1387, 0.0076+4)), + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_inboard_flap_left2.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,0,90), vec3.new( -9.2316, 2.9728, 0.208+4)), + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_inboard_flap_right1.msh", + transf = transf.rotZYXTransl(transf.degToRad(-270,-4.778,91.76), vec3.new(-9.2316, -8.1387, 0.0076+4)), + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_inboard_flap_right2.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,0,90), vec3.new(-9.2316, -2.9728, 0.208+4)), + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_rudder_bottom.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -17.8003, 0, 2.5222+4, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_rudder_top.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -17.8003, 0, 4.9894+4, 1, + }, + type = "MESH", + + }, + -- lights + + { + id = "vehicle/plane/concorde/lod_0_navigation_light_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+4, 1, + }, + type = "MESH", + },{ + id = "vehicle/plane/concorde/lod_0_navigation_light_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+4, 1, + }, + type = "MESH", + },{ + id = "vehicle/plane/concorde/lod_0_aft_light.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+4, 1, + }, + type = "MESH", + },{ + id = "vehicle/plane/concorde/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+4, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/concorde/lod_0_logo_rudder_top.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -17.8003, 0, 4.9894+4, 1, + }, + type = "MESH", + + }, + }, + events = { + open_wheels = { + + [11] = { + forward = true, + name = "open", + }, + [12] = { + forward = true, + name = "open", + }, + [13] = { + forward = true, + name = "open", + }, + [14] = { + forward = true, + name = "open", + }, + [15] = { + forward = true, + name = "open", + }, + [16] = { + forward = true, + name = "open", + }, + [17] = { + forward = true, + name = "open", + }, + [18] = { + forward = true, + name = "open", + }, + [19] = { + forward = true, + name = "open", + }, + [20] = { + forward = true, + name = "open", + }, + [21] = { + forward = true, + name = "open", + }, + [22] = { + forward = true, + name = "open", + }, + [23] = { + forward = true, + name = "open", + }, + [24] = { + forward = true, + name = "open", + }, + [25] = { + forward = true, + name = "open", + }, + [26] = { + forward = true, + name = "open", + }, + }, + close_wheels = { + + [11] = { + forward = false, + name = "open", + }, + [12] = { + forward = false, + name = "open", + }, + + [13] = { + forward = false, + name = "open", + }, + [14] = { + forward = false, + name = "open", + }, + [15] = { + forward = false, + name = "open", + }, + [16] = { + forward = false, + name = "open", + }, + [17] = { + forward = false, + name = "open", + }, + [18] = { + forward = false, + name = "open", + }, + [19] = { + forward = false, + name = "open", + }, + [20] = { + forward = false, + name = "open", + }, + [21] = { + forward = false, + name = "open", + }, + [22] = { + forward = false, + name = "open", + }, + [23] = { + forward = true, + name = "close", + }, + [24] = { + forward = false, + name = "open", + }, + [25] = { + forward = true, + name = "close", + }, + [26] = { + forward = false, + name = "open", + }, + + }, + open_doors_left = { + [2] = { + forward = true, + name = "opend1", + }, + }, + open_doors_right = { + [5] = { + forward = true, + name = "opend4", + }, + }, + close_doors_left = { + [2] = { + forward = false, + name = "opend1", + }, + }, + close_doors_right = { + [5] = { + forward = false, + name = "opend4", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 7430, + + }, + }, + metadata = { + airVehicle = { + weight = 78700.0, + maxPayload = 0, + maxTakeOffWeight = 187000.0, + maxThrust = 560000.0, + idleThrust = 28000.0, + timeToFullThrust = 5, + wingArea = 358, + topSpeed = 599.444444444, + configs = { + { + axles = { + "vehicle/plane/concorde/lod_0_w2.msh", + "vehicle/plane/concorde/lod_0_w3.msh", + }, + wheels = { + "vehicle/plane/concorde/lod_0_w1.msh", + }, + elevator = { + ids = { 44, 45, 46, 47 }, + maxAngle = 15 + }, + aileronLeft = { + ids = { 42 }, + maxAngle = 15 + }, + aileronRight = { + ids = { 43 }, + maxAngle = 15 + }, + flaps = { + ids = { 9, 10, 44, 45, 46, 47 }, + maxAngle = 12.5 + }, + rudder = { + ids = { 48, 49, 54 }, + maxAngle = 20 + } + } + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + description = { + name = _("Concorde"), + description = _("The Concorde is a British-French turbojet-powered supersonic passenger jet airliner that was operated until 2003.") + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + }, + transportVehicle = { + carrier = "AIR", + capacities = { + { + type = "PASSENGERS", + capacity = 95, -- AirFrance, wikipedia + } + }, + loadSpeed = 4, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(28.2, 0.45, 0.28)), crew = true}, + } + }, + soundConfig = { + soundSet = { name = "concorde" } + } + } +} +end diff --git a/res/models/model/vehicle/plane/dornier_b_merkur.mdl b/res/models/model/vehicle/plane/dornier_b_merkur.mdl new file mode 100755 index 0000000..7b02965 --- /dev/null +++ b/res/models/model/vehicle/plane/dornier_b_merkur.mdl @@ -0,0 +1,223 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 4.0987110137939, 9.8033895492554, 4.0756769180298, + }, + bbMin = { + -8.8827104568481, -9.8033895492554, -0.045518010854721, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/plane/dornier_b_merkur/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/dornier_b_merkur/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.1219, 0.7326, 0+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/dornier_b_merkur/lod_0_aileron_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,0,90), vec3.new(-1.0298, 4.454, 1.1375+2)), + type = "MESH", + + }, { + id = "vehicle/plane/dornier_b_merkur/lod_0_aileron_right.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,0,90), vec3.new(-1.0298, -4.454, 1.1375+2)), + type = "MESH", + + }, { + id = "vehicle/plane/dornier_b_merkur/lod_0_elevator.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,0,90), vec3.new(-8.1202, 0, 0.4191+2)), + type = "MESH", + + }, { + id = "vehicle/plane/dornier_b_merkur/lod_0_rotor.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.5057, 0, 0.0795+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/dornier_b_merkur/lod_0_rudder.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -7.8998, 0, 1.5568+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/dornier_b_merkur/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.812, -1.1339, -1.5584+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/dornier_b_merkur/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0.812, 1.1339, -1.5584+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_w3.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-7.25, 0, 1.6)), + type = "MESH", + + }, { + id = "vehicle/plane/dornier_b_merkur/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/dornier_b_merkur/lod_0_navigation_light_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/dornier_b_merkur/lod_0_navigation_light_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/dornier_b_merkur/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, + + }, + events = { + open_doors_left = { + [2] = { + forward = true, + name = "opend1", + }, + }, + close_doors_left = { + [2] = { + forward = false, + name = "opend1", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 3270, + + }, + }, + metadata = { + airVehicle = { + weight = 2300.0, + maxPayload = 0, + maxTakeOffWeight = 3700.0, + maxThrust = 8000.0, + idleThrust = 0.0, + timeToFullThrust = 3, + power = 500, + wingArea = 64, + topSpeed = 48.6111111111, + configs = { + { + axles = { + "vehicle/plane/dornier_b_merkur/lod_0_w1.msh" + }, + wheels = { + "vehicle/plane/junkers_f_13/lod_0_w3.msh" + }, + elevator = { + ids = { 5 }, + maxAngle = 30 + }, + aileronLeft = { + ids = { 3 }, + maxAngle = 30 + }, + aileronRight = { + ids = { 4 }, + maxAngle = 30 + }, + props = { + ids = { 6 } + }, + rudder = { + ids = { 7 }, + maxAngle = 30 + } + } + } + }, + availability = { + yearFrom = 1925, + yearTo = 1960 + }, + cost = { + price = -1 + }, + description = { + name = _("Dornier Merkur"), + description = _("The Dornier Merkur was a German passenger aircraft, built in the Dornier factories in Friedrichshafen.") + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + }, + transportVehicle = { + carrier = "AIR", + capacities = { + { + type = "PASSENGERS", + capacity = 20, -- wikipedia: 6 + } + }, + loadSpeed = 1, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.55, 0.22, -0.26)), crew = true}, + } + }, + soundConfig = { + soundSet = { name = "aircraft_prop_old" } + } + } +} +end diff --git a/res/models/model/vehicle/plane/douglas_dc3.mdl b/res/models/model/vehicle/plane/douglas_dc3.mdl new file mode 100755 index 0000000..512ae92 --- /dev/null +++ b/res/models/model/vehicle/plane/douglas_dc3.mdl @@ -0,0 +1,312 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 5.9152231216431, 14.999654769897, 5.1760401725769, + }, + bbMin = { + -14.783146858215, -15.000291824341, -2.4586050510406, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/plane/douglas_dc3/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.4883, 1.2115, 0.9232, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.4882, -1.2118, 0.9232, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3_lod_0_front_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.9394, 0, -0.3704, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_elevator.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,0,90), vec3.new(-13.4067, 0, 1.5292)), + + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_aileron_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(93.1955,-7.3464,92.6335), vec3.new(-3.1911, 10.2588, 0.6605)), + + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_aileron_right.msh", + transf = transf.rotZYXTransl(transf.degToRad(86.808,7.269,92.638), vec3.new(-3.1911, -10.2588, 0.6465)), + + type = "MESH", + + },{ + id = "vehicle/plane/douglas_dc3/lod_0_inboard_flap.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,0,90), vec3.new(-2.7608, 0, -0.309)), + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_outboard_flap_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(94.642,-7.902,85.991), vec3.new(-2.876, 5.2532,-0.0579)), + + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_outboard_flap_right.msh", + transf = transf.rotZYXTransl(transf.degToRad(85.365,7.51,85.6161), vec3.new(-2.8759, -5.2526,-0.0624)), + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_rotor1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.0102, -2.9669, 0.0112, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_rotor2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.0101, 2.9691, 0.0152, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_rudder.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -12.9493, 0, 4.0397, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -11.9626, 0, 0.3711, 1, + }, + type = "MESH", + + }, + -- lights + + { + id = "vehicle/plane/douglas_dc3/lod_0_aft_light.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/douglas_dc3/lod_0_landing_lights.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/douglas_dc3/lod_0_navigation_light_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/douglas_dc3/lod_0_navigation_light_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/douglas_dc3/lod_0_navigation_light_top.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/douglas_dc3/lod_0_logo_rudder.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -12.9493, 0, 4.0397, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc3/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + close_wheels = { + [5] = { + forward = true, + name = "open", + }, + }, + open_wheels = { + [5] = { + forward = false, + name = "open", + }, + + }, + open_doors_left = { + [3] = { + forward = true, + name = "opend1", + }, + }, + open_doors_right = { + [4] = { + forward = true, + name = "opend2", + }, + }, + close_doors_left = { + [3] = { + forward = false, + name = "opend1", + }, + }, + close_doors_right = { + [4] = { + forward = false, + name = "opend2", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 5170, + + }, + }, + metadata = { + airVehicle = { + weight = 7700.0, + maxPayload = 0, + maxTakeOffWeight = 11400.0, + maxThrust = 25000.0, + idleThrust = 0.0, + timeToFullThrust = 3, + power = 1700, + wingArea = 91.7, + topSpeed = 92.5, + configs = { + { + axles = { + "vehicle/plane/douglas_dc3/lod_0_w2.msh", + }, + wheels = { + "vehicle/plane/douglas_dc3/lod_0_w1.msh", + }, + elevator = { + ids = { 10 }, + maxAngle = 30 + }, + aileronLeft = { + ids = { 11 }, + maxAngle = 30 + }, + aileronRight = { + ids = { 12 }, + maxAngle = 30 + }, + flaps = { + ids = { 13, 14, 15 }, + maxAngle = 30 + }, + props = { + ids = { 16, 17 } + }, + rudder = { + ids = { 18,25 }, + maxAngle = 30 + } + } + } + }, + availability = { + yearFrom = 1935, + yearTo = 1967 + }, + cost = { + price = -1 + }, + description = { + name = _("Douglas DC-3"), + description = _("The Douglas DC-3 is a fixed-wing propeller-driven airliner. Its cruise speed and range revolutionized air transport in the 1930s and 1940s.") + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + }, + transportVehicle = { + carrier = "AIR", + capacities = { + { + type = "PASSENGERS", + capacity = 32, -- wikipedia + } + }, + loadSpeed = 2, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.7, 0.35, 0.4)), crew = true}, + } + }, + soundConfig = { + soundSet = { name = "aircraft_prop_modern" } + } + } +} +end diff --git a/res/models/model/vehicle/plane/douglas_dc4.mdl b/res/models/model/vehicle/plane/douglas_dc4.mdl new file mode 100755 index 0000000..c9b6b62 --- /dev/null +++ b/res/models/model/vehicle/plane/douglas_dc4.mdl @@ -0,0 +1,464 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 11.156785964966, 17.897922515869, 9.5514421463013, + }, + bbMin = { + -17.841180801392, -17.897922515869, -0.0012209415435791, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/plane/douglas_dc4/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.3957, 1.5736, 1.609+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -6.3957, -1.5736, 1.609+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_rotor_1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.7615, -7.9967, 1.211+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_rotor_1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.1918, -3.7889, 0.7079+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_rotor_1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.7615, 7.9967, 1.211+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_rotor_1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.1918, 3.7889, 0.7079+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, + + -- wheels + { + id = "vehicle/plane/douglas_dc4/lod_0_flap_front_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(-180,16.9551,-80), vec3.new(9.2647, 0.4019, 0.3443+2)), + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_flap_front_right.msh", + transf = transf.rotZYXTransl(transf.degToRad(-180,16.9551,-80), vec3.new(9.2647, -0.4019, 0.3443+2)), + type = "MESH", + + },{ + id = "vehicle/plane/douglas_dc4_lod_0_front_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 8.1562, 0, 0.4795+2, 1, + }, + type = "GROUP", + + }, + + + { + id = "vehicle/plane/douglas_dc4/lod_0_back_wheel_mount1_flap.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.1419, 3.7889, -0.0414+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_flap_back_left_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.5775, 4.3023, 0.104+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_flap_back_left_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.5775, 3.2756, 0.104+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/douglas_dc4_lod_0_back_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 3.7889, 0.3252+2, 1, + }, + type = "GROUP", + + }, + + + + { + id = "vehicle/plane/douglas_dc4/lod_0_back_wheel_mount1_flap.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -0.1419, -3.7889, -0.0414+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_flap_back_left_left.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.5775, -4.3023, 0.104+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_flap_back_left_right.msh", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.5775, -3.2756, 0.104+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/douglas_dc4_lod_0_back_wheel.grp", + transf = { + 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, -3.7889, 0.3252+2, 1, + }, + type = "GROUP", + + }, + + -- Aircraft rudders + { + id = "vehicle/plane/douglas_dc4/lod_0_aileron_left.msh", + + transf = transf.rotZYXTransl(transf.degToRad(-274.398,-7.434,-269.273), vec3.new(-0.7108, 13.3219, 1.7098+2)), + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_inboard_flap_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(-275.343,-7.5898,90), vec3.new(-1.605, 4.3023, 0.4863+2)), + type = "MESH", + + },{ + id = "vehicle/plane/douglas_dc4/lod_0_aileron_left.msh", + + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(-274.398,-7.434,-269.273), vec3.new(-0.7108, 13.3219, 1.7098+2))), + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_inboard_flap_left.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(-275.343,-7.5898,90), vec3.new(-1.605, 4.3023, 0.4863+2))), + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_elevator.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,0,90), vec3.new(-14.9954, 0, 2.0716+2)), + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_rudder.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -15.3562, 0, 3.0529+2, 1, + }, + type = "MESH", + + }, + + + -- lights + { + id = "vehicle/plane/douglas_dc4/lod_0_aft_light.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/douglas_dc4/lod_0_navigation_light_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/douglas_dc4/lod_0_navigation_light_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + },{ + id = "vehicle/plane/douglas_dc4/lod_0_navigation_light_top.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/douglas_dc4/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2, 1, + }, + type = "MESH", + + }, + + }, + events = { + open_wheels = { + [9] = { + forward = true, + name = "open", + }, + [10] = { + forward = true, + name = "open", + }, + [11] = { + forward = true, + name = "open", + }, + + + [12] = { + forward = true, + name = "switch", + }, + [13] = { + forward = true, + name = "open", + }, + [14] = { + forward = true, + name = "open", + }, + [15] = { + forward = true, + name = "open", + }, + [16] = { + forward = true, + name = "switch", + }, + [17] = { + forward = true, + name = "open", + }, + [18] = { + forward = true, + name = "open", + }, + [19] = { + forward = true, + name = "open", + }, + + + }, + close_wheels = { + [9] = { + forward = true, + name = "close", + }, + [10] = { + forward = true, + name = "close", + }, + [11] = { + forward = true, + name = "close", + }, + + [12] = { + forward = false, + name = "switch", + }, + [13] = { + forward = true, + name = "close", + }, + [14] = { + forward = true, + name = "close", + }, + [15] = { + forward = true, + name = "close", + }, + [16] = { + forward = false, + name = "switch", + }, + [17] = { + forward = true, + name = "close", + }, + [18] = { + forward = true, + name = "close", + }, + [19] = { + forward = true, + name = "close", + }, + + }, + + + open_doors_left = { + [2] = { + forward = true, + name = "opend1", + }, + }, + close_doors_left = { + [2] = { + forward = false, + name = "opend1", + }, + }, + + open_doors_right = { + [3] = { + forward = true, + name = "opend1", + }, + }, + close_doors_right = { + [3] = { + forward = false, + name = "opend1", + }, + }, + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 6990, + + }, + }, + metadata = { + airVehicle = { + weight = 19600.0, + maxPayload = 0, + maxTakeOffWeight = 33100.0, + maxThrust = 70000.0, + idleThrust = 0.0, + timeToFullThrust = 3, + power = 0, + wingArea = 135.6, + topSpeed = 101.388888889, + configs = { + { + axles = { + "vehicle/plane/douglas_dc4/lod_0_w2.msh", + }, + wheels = { + "vehicle/plane/douglas_dc4/lod_0_w1.msh", + }, + elevator = { + ids = { 32 }, + maxAngle = 20 + }, + aileronLeft = { + ids = { 28 }, + maxAngle = 30 + }, + aileronRight = { + ids = { 30 }, + maxAngle = 30 + }, + flaps = { + ids = { 9, 10, 15, 16, 22, 23, 29, 31 }, + maxAngle = 30 + }, + props = { + ids = { 4, 5, 6, 7 } + }, + rudder = { + ids = { 33 }, + maxAngle = 30 + } + } + } + }, + availability = { + yearFrom = 1944, + yearTo = 1967 + }, + cost = { + price = -1 + }, + description = { + name = _("Douglas DC-4"), + description = _("The Douglas DC-4 is a four-engine (piston) propeller-driven airliner developed by the Douglas Aircraft Company. From 1945, many civil airlines operated it worldwide.") + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + }, + transportVehicle = { + carrier = "AIR", + capacities = { + { + type = "PASSENGERS", + capacity = 60, + } + }, + loadSpeed = 2, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(7.8, 0.65, 1.2)), crew = true}, + } + }, + soundConfig = { + soundSet = { name = "aircraft_prop_modern" } + } + } +} +end diff --git a/res/models/model/vehicle/plane/junkers_f_13.mdl b/res/models/model/vehicle/plane/junkers_f_13.mdl new file mode 100755 index 0000000..db9947d --- /dev/null +++ b/res/models/model/vehicle/plane/junkers_f_13.mdl @@ -0,0 +1,219 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 2.5336039066315, 7.4893770217896, 1.5860749483109, + }, + bbMin = { + -5.4609370231628, -7.4893770217896, -1.0071635246277, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/plane/junkers_f_13/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_d1.msh", + transf = transf.rotZYXTransl(transf.degToRad(-4.509,-102.845,138.747), vec3.new(-0.2883, 0.5891, 0.8249)), + type = "MESH",v + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_d2.msh", + transf = transf.rotZYXTransl(transf.degToRad(-4.509,-102.845,138.747), vec3.new(-0.2883, -0.5891, 0.8249)), + type = "MESH", + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_aileron_left.msh", + transf = transf.rotZYXTransl(transf.degToRad(-100.501,-174.599,-91.3586), vec3.new(-0.545, 5.312, 0.309)), + type = "MESH", + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_aileron_right.msh", + transf = transf.rotZYXTransl(transf.degToRad(-79.499,174.5992,-91.359), vec3.new(-0.545, -5.312, 0.309)), + type = "MESH", + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_elevator.msh", + transf = transf.rotZYXTransl(transf.degToRad(-90,-180.1739,-90), vec3.new(-4.6621, 0, 0.7878)), + + type = "MESH", + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_rotor.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.2812, 0, 0.6181, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_rudder.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.861, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_w3.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-4.5444, 0, -0.0802)), + type = "MESH", + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_w1.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,1.499), vec3.new(0.689, 0.98, -0.641)), + type = "MESH", + + }, { + id = "vehicle/plane/junkers_f_13/lod_0_w2.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,-1.499), vec3.new(0.689, -0.98, -0.641)), + type = "MESH", + + }, + { + id = "vehicle/plane/junkers_f_13/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_doors_left = { + [3] = { + forward = true, + name = "opend1", + }, + }, + open_doors_right = { + [4] = { + forward = true, + name = "opend2", + }, + }, + close_doors_left = { + [3] = { + forward = false, + name = "opend1", + }, + }, + close_doors_right = { + [4] = { + forward = false, + name = "opend2", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 2140, + + }, + }, + metadata = { + airVehicle = { + weight = 1000.0, + maxPayload = 0, + maxTakeOffWeight = 1800.0, + maxThrust = 3500.0, + idleThrust = 0.0, + timeToFullThrust = 3, + power = 228, + wingArea = 34.5, + topSpeed = 38.8888888889, + configs = { + { + axles = { + "vehicle/plane/junkers_f_13/lod_0_w1.msh" + }, + wheels = { + "vehicle/plane/junkers_f_13/lod_0_w3.msh" + }, + elevator = { + ids = { 7 }, + maxAngle = 30 + }, + aileronLeft = { + ids = { 5 }, + maxAngle = 30 + }, + aileronRight = { + ids = { 6 }, + maxAngle = 30 + }, + props = { + ids = { 8 } + }, + rudder = { + ids = { 9 }, + maxAngle = 30 + } + } + } + }, + availability = { + yearFrom = 1920, + yearTo = 1950 + }, + cost = { + price = -1 + }, + description = { + name = _("Junkers F 13"), + description = _("The Junkers F 13 was the world's first all-metal transport aircraft, developed in Germany at the end of World War I.") + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + }, + transportVehicle = { + carrier = "AIR", + capacities = { + { + type = "PASSENGERS", + capacity = 12, -- wikipedia: 4 + } + }, + loadSpeed = 1, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, -25.0, 0.0), vec3.new(0.27, 0.15, -0.218)), crew = true}, + } + }, + soundConfig = { + soundSet = { name = "aircraft_prop_old" } + } + } +} +end diff --git a/res/models/model/vehicle/plane/super_connie.mdl b/res/models/model/vehicle/plane/super_connie.mdl new file mode 100755 index 0000000..94ce1b0 --- /dev/null +++ b/res/models/model/vehicle/plane/super_connie.mdl @@ -0,0 +1,545 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 14.125260353088, 18.76124382019, 8.2268190383911, + }, + bbMin = { + -21.242317199707, -18.76124382019, -0.10195410251617, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + -- Body + + { + id = "vehicle/plane/super_connie/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2.8, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.7727, 0, 0+2.8, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.0748, 0, 0+2.8, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_d3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.7727, 0, 0+2.8, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_d4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.0748, 0, 0+2.8, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/super_connie/lod_0_rotor1.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(3.1649, 9.102, 0.6674+2.8)), + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_rotor2.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(3.5654, -4.2845, 0.1352+2.8)), + type = "MESH", + + },{ + id = "vehicle/plane/super_connie/lod_0_rotor1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(3.1649, 9.102, 0.6674+2.8))), + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_rotor2.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(3.5654, -4.2845, 0.1352+2.8))), + type = "MESH", + + }, + { + id = "vehicle/plane/super_connie/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2.8, 1, + }, + type = "MESH", + + }, + -- front wheels + { + id = "vehicle/plane/super_connie/lod_0_flap_front_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 8.6123, 0.5154, -0.3604+2.8, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_flap_front_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 8.6123, -0.5154, -0.3604+2.8, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/super_connie_lod_0_front_wheel.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 11.1576, 0, -0.3479+2.8, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/plane/super_connie/lod_0_front_wheel_mount_strut.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.3643, 0, 0.5488+2.8, 1, + }, + type = "MESH", + + }, + -- back wheels + { + id = "vehicle/plane/super_connie_lod_0_back_wheel.grp", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-2.0474, 4.2847, 0.3222+2.8)), + type = "GROUP", + + }, + { + id = "vehicle/plane/super_connie/lod_0_flap_back_left_left_back.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-1.6849, 4.8547, -0.3414+2.8)), + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_flap_back_left_left_front.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-0.0944, 4.8619, -0.3907+2.8)), + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_flap_back_left_right_back.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-1.6849, 3.7147, -0.3414+2.8)), + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_flap_back_left_right_front.msh", + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-0.0944, 3.7052, -0.3919+2.8)), + type = "MESH", + + }, + -- back wheels mirrored + { + id = "vehicle/plane/super_connie_lod_0_back_wheel.grp", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-2.0474, 4.2847, 0.3222+2.8))), + type = "GROUP", + + }, + { + id = "vehicle/plane/super_connie/lod_0_flap_back_left_left_back.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-1.6849, 4.8547, -0.3414+2.8))), + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_flap_back_left_left_front.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-0.0944, 4.8619, -0.3907+2.8))), + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_flap_back_left_right_back.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-1.6849, 3.7147, -0.3414+2.8))), + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_flap_back_left_right_front.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-0.0944, 3.7052, -0.3919+2.8))), + type = "MESH", + + }, + + + -- Aircraft rudders + { + id = "vehicle/plane/super_connie/lod_0_aileron_left.msh", + + transf = transf.rotZYXTransl(transf.degToRad(90,-6.714,90.007), vec3.new(-2.6105, 14.1795, 1.3078+2.8)), + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_aileron_left.msh", + + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(90,-6.714,90.007), vec3.new(-2.6105, 14.1795, 1.3078+2.8))), + type = "MESH", + + }, + { + id = "vehicle/plane/super_connie/lod_0_elevator.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,0,90), vec3.new(-19.807, 0, 2.3763+2.8)), + type = "MESH", + + }, + { + id = "vehicle/plane/super_connie/lod_0_inboard_flap_left1.msh", + transf = transf.rotZYXTransl(transf.degToRad(85.8,-7.4329,88.2698), vec3.new(-3.0228, 4.8729, 0.0747+2.8)), + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_inboard_flap_left2.msh", + transf = transf.rotZYXTransl(transf.degToRad(90,-2.2817,78.5972), vec3.new(-3.2113, 1.2298, -0.2665+2.8)), + type = "MESH", + + }, + { + id = "vehicle/plane/super_connie/lod_0_inboard_flap_left1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(85.8,-7.4329,88.2698), vec3.new(-3.0228, 4.8729, 0.0747+2.8))), + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_inboard_flap_left2.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(90,-2.2817,78.5972), vec3.new(-3.2113, 1.2298, -0.2665+2.8))), + type = "MESH", + + }, + + + { + id = "vehicle/plane/super_connie/lod_0_rudder.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -19.8591, 0, 2.3763+2.8, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_rudder_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -20.0068, 6.441, 2.3763+2.8, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_rudder_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -20.0068, -6.441, 2.3763+2.8, 1, + }, + type = "MESH", + + }, + -- lights + { + id = "vehicle/plane/super_connie/lod_0_aft_light.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2.8, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/super_connie/lod_0_navigation_light_bottom.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2.8, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/super_connie/lod_0_navigation_light_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2.8, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/super_connie/lod_0_navigation_light_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2.8, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/super_connie/lod_0_navigation_light_top.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2.8, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/plane/super_connie/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0+2.8, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_logo_rudder_left.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -20.0068, 6.441, 2.3763+2.8, 1, + }, + type = "MESH", + + }, { + id = "vehicle/plane/super_connie/lod_0_logo_rudder_right.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -20.0068, -6.441, 2.3763+2.8, 1, + }, + type = "MESH", + + }, + }, + events = { + open_doors_left = { + [2] = { + forward = true, + name = "opend1", + },[3] = { + forward = true, + name = "opend2", + }, + }, + close_doors_left = { + [2] = { + forward = false, + name = "opend1", + },[3] = { + forward = false, + name = "opend2", + }, + }, + open_wheels = { + + [11] = { + forward = true, + name = "open", + }, + [12] = { + forward = true, + name = "open", + }, + [13] = { + forward = true, + name = "open", + }, + [14] = { + forward = true, + name = "open", + }, + [15] = { + forward = true, + name = "open", + }, + + + [16] = { + forward = true, + name = "open", + }, + [17] = { + forward = true, + name = "open", + }, + [18] = { + forward = true, + name = "open", + }, + [19] = { + forward = true, + name = "open", + }, + [20] = { + forward = true, + name = "open", + }, + [21] = { + forward = true, + name = "open", + }, + [22] = { + forward = true, + name = "open", + }, + [23] = { + forward = true, + name = "open", + }, + [24] = { + forward = true, + name = "open", + }, + }, + close_wheels = { + + [11] = { + forward = false, + name = "open", + }, + [12] = { + forward = false, + name = "open", + }, + [13] = { + forward = false, + name = "open", + }, + [14] = { + forward = false, + name = "open", + }, + [15] = { + forward = false, + name = "open", + }, + [16] = { + forward = false, + name = "open", + }, + [17] = { + forward = false, + name = "open", + }, + [18] = { + forward = false, + name = "open", + }, + [19] = { + forward = false, + name = "open", + }, + [20] = { + forward = false, + name = "open", + }, + [21] = { + forward = false, + name = "open", + }, + [22] = { + forward = false, + name = "open", + }, + [23] = { + forward = false, + name = "open", + }, + [24] = { + forward = false, + name = "open", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 8270, + + }, + }, + metadata = { + airVehicle = { + weight = 31300.0, + maxPayload = 0, + maxTakeOffWeight = 54400.0, + maxThrust = 150000.0, + idleThrust = 0.0, + timeToFullThrust = 3, + power = 0, + wingArea = 153.3, + topSpeed = 135.833333333, + configs = { + { + axles = { + "vehicle/plane/super_connie/lod_0_w2.msh", + "vehicle/plane/super_connie/lod_0_w3.msh", + }, + wheels = { + "vehicle/plane/super_connie/lod_0_w1.msh", + }, + elevator = { + ids = { 37 }, + maxAngle = 25 + }, + aileronLeft = { + ids = { 35 }, + maxAngle = 30 + }, + aileronRight = { + ids = { 36}, + maxAngle = 30 + }, + flaps = { + ids = { 38,39,40,41 }, + maxAngle = 30 + }, + props = { + ids = { 6,7,8,9 } + }, + rudder = { + ids = { 42, 43, 44, 51, 52 }, + maxAngle = 30 + } + } + } + }, + availability = { + yearFrom = 1952, + yearTo = 1967 + }, + cost = { + price = -1 + }, + description = { + name = _("Lockheed Super Constellation"), + description = _("The Lockheed L-1049 Super Constellation is an American aircraft, a member of the Lockheed Constellation aircraft line.") + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + }, + transportVehicle = { + carrier = "AIR", + capacities = { + { + type = "PASSENGERS", + capacity = 90, + } + }, + loadSpeed = 4, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(10.9, 0.5, 0.35)), crew = true}, + } + }, + soundConfig = { + soundSet = { name = "aircraft_prop_modern" } + } + } +} +end diff --git a/res/models/model/vehicle/train/a3_5_705.mdl b/res/models/model/vehicle/train/a3_5_705.mdl new file mode 100755 index 0000000..d618447 --- /dev/null +++ b/res/models/model/vehicle/train/a3_5_705.mdl @@ -0,0 +1,129 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/a3_5_705_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/a3_5_705_lod_0_coalcar.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -7.3599, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/a3_5_705_lod_0_bogie1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.0275, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + [1] = { + forward = true, + name = "drive", + } + + }, + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1700, + + }, + }, + metadata = { + description = { + name = _("A 3/5"), + description = _("This 4-6-0 locomotive was the first really fast locomotive of the Jura-Simplon and the Gotthard line.") + }, + railVehicle = { + topSpeed = 100, + weight = 107, + engines = { + { type = "STEAM", power = 1000, tractiveEffort = 120 } + }, + configs = { + { + axles = { + "vehicle/train/a3_5_705/lod_0_w1.msh", + "vehicle/train/a3_5_705/lod_0_w2.msh", + "vehicle/train/a3_5_705/lod_0_w3.msh", + "vehicle/train/a3_5_705/lod_0_w4.msh" + } + } + }, + soundSet = { name = "train_steam_modern", horn = "vehicle/train_steam_old/steam_horn_20.wav" } + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.3, -.9, 1.52)), crew = true, standing = true}, + }, + }, + availability = { + yearFrom = 1902, + yearTo = 1949 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 35 + }, + particleSystem = { + emitters = { + { + position = {5.0613, .0, 4.4544}, + velocity = { .0, .0, 10.0 }, + color = { .3, .3, .3 }, + frequency = 80, + lifeTime = 20.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 2.5735, 1.321, 0.6688 }, + velocity = { .0, 4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 2.5735, -1.321, 0.6688 }, + velocity = { .0, -4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + } + } + } + }, + +} +end diff --git a/res/models/model/vehicle/train/ae_4_7.mdl b/res/models/model/vehicle/train/ae_4_7.mdl new file mode 100755 index 0000000..ef7b8a4 --- /dev/null +++ b/res/models/model/vehicle/train/ae_4_7.mdl @@ -0,0 +1,273 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 8.5573291778564, 1.5480879545212, 5.8759250640869, + }, + bbMin = { + -8.5573291778564, -1.5480879545212, -0.90987700223923, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/ae_4_7/lod_2_ae_4-7.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.2051, 0, 0.8306, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.2644, 0, 0.8306, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6763, 0, 0.8306, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.617, 0, 0.8306, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_2_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.5274, 0, 0.5345, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_2_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.3279, 0, 0.5345, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_2_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.0669, 0, 0.5345, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 350, + visibleTo = 1870, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/ae_4_7/lod_1_ae_4-7.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.2051, 0, 0.8306, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.2644, 0, 0.8306, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6763, 0, 0.8306, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.617, 0, 0.8306, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_1_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.5274, 0, 0.5345, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_1_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.3279, 0, 0.5345, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/ae_4_7/lod_1_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.0669, 0, 0.5345, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 150, + visibleTo = 350, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/ae_4_7_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/ae_4_7_lod_0_bogie1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.5259, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/ae_4_7_lod_0_bogie2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.0669, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 150, + + }, + }, + metadata = { + + + + description = { + name = _("Ae 4/7"), + description = _("A universal locomotive from Switzerland, very long-lasting thanks to the so-called Buchli drive.") + }, + + + railVehicle = { + + topSpeed = 100, + weight = 121, + engines = { + { type = "ELECTRIC", power = 2300, tractiveEffort = 196 } + }, + configs = { + { + }, + { + axles = { + "vehicle/train/ae_4_7/lod_1_w1.msh", + "vehicle/train/ae_4_7/lod_1_w2.msh", + } + }, + { + axles = { + "vehicle/train/ae_4_7/lod_0_w1.msh", + "vehicle/train/ae_4_7/lod_0_w2.msh", + } + } + }, + soundSet = { name = "train_electric_old", horn = "vehicle/train_steam_old/steam_horn_12.wav" } + }, + transportVehicle = { + + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.88, -0.6, 1.68)), crew = true, standing = true}, + }, + carrier = "RAIL" + }, + + availability = { + yearFrom = 1927, + yearTo = 1949 + }, + cost = { + price = -1 + + }, + maintenance = { + runningCosts = -1, + lifespan = 45 + } + }, + +} +end diff --git a/res/models/model/vehicle/train/borsig_1860.mdl b/res/models/model/vehicle/train/borsig_1860.mdl new file mode 100755 index 0000000..3a48829 --- /dev/null +++ b/res/models/model/vehicle/train/borsig_1860.mdl @@ -0,0 +1,122 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/borsig_1860_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/borsig_1860_lod_0_coalcar.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.8124, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + [1] = { + forward = true, + name = "drive", + } + + }, + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1320, + + }, + }, + metadata = { + description = { + name = _("Borsig"), + description = _("Borsig was a German company based in Berlin. For that time it was a very competitive model, but it was still manufactured without a roofed cabine.") + }, + railVehicle = { + topSpeed = 45, + weight = 32, + engines = { + { type = "STEAM", power = 90, tractiveEffort = 20 } + }, + configs = { + { + axles = { + "vehicle/train/borsig_1860/lod_0_w1.msh", + "vehicle/train/borsig_1860/lod_0_w2.msh", + "vehicle/train/borsig_1860/lod_0_w4.msh", + } + } + }, + soundSet = { name = "train_steam_old", horn = "vehicle/train_steam_old/steam_horn_6.wav" } + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.4, 0.6, 1.2)), crew = true, standing = true}, + }, + }, + availability = { + yearFrom = 1862, + yearTo = 1866 + }, + cost = { + price = -1 + + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + }, + particleSystem = { + emitters = { + { + position = { 2.6578, .0, 4.1311}, + velocity = { .0, .0, 10.0 }, + color = { .3, .3, .3 }, + frequency = 80, + lifeTime = 20.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 2.0035, 0.4482, .0 }, + velocity = { .0, 4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 2.0035, -0.4482, .0 }, + velocity = { .0, -4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + } + } + } + }, + +} +end diff --git a/res/models/model/vehicle/train/br53_preus_g3.mdl b/res/models/model/vehicle/train/br53_preus_g3.mdl new file mode 100755 index 0000000..5d36f86 --- /dev/null +++ b/res/models/model/vehicle/train/br53_preus_g3.mdl @@ -0,0 +1,140 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 7.5803556442261, 1.5251049995422, 4.1649751663208, + }, + bbMin = { + -7.5355091094971, -1.5251049995422, -0.025150001049042, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + + { + animations = { + + }, + children = { + { + id = "vehicle/train/br53preusg3_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/br53preusg3_lod_0_coalcar.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.4561, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + [1] = { + forward = true, + name = "drive", + } + + }, + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1480, + + }, + }, + metadata = { + description = { + name = _("Class 53 Prussian G 3"), + description = _( + "The Class G 3 was a family of six-coupled, medium-powered, freight train, tank locomotives.") + }, + railVehicle = { + topSpeed = 50, + weight = 38, + engines = { + { type = "STEAM", power = 160, tractiveEffort = 60 } + }, + configs = { + { + axles = { + "vehicle/train/br53_preus_g3/lod_0_w1.msh", + "vehicle/train/br53_preus_g3/lod_0_w2.msh", + "vehicle/train/br53_preus_g3/lod_0_w3.msh", + } + } + }, + soundSet = "train_steam_old" + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.1, -.9, 1.22)), crew = true, standing = true}, + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + }, + particleSystem = { + emitters = { + { + position = { 5.857, .0, 4.165}, + velocity = { .0, .0, 10.0 }, + color = { .3, .3, .3 }, + frequency = 80, + lifeTime = 20.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 5.4388, 1.4608, .0 }, + velocity = { .0, 4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 5.4388, -1.4608, .0 }, + velocity = { .0, -4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + } + } + } + }, + +} +end diff --git a/res/models/model/vehicle/train/br75_4.mdl b/res/models/model/vehicle/train/br75_4.mdl new file mode 100755 index 0000000..ba0103a --- /dev/null +++ b/res/models/model/vehicle/train/br75_4.mdl @@ -0,0 +1,364 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 6.0623202323914, 1.5864230394363, 4.5724639892578, + }, + bbMin = { + -6.0107669830322, -1.5864230394363, -0.030532002449036, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/br75_4/lod_2_br75_4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_2_g1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.1647999286652, 0, 0.8134999871254, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_2_g2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.12099999934435, 0, 0.50400000810623, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_2_g3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.12099999934435, 0, 0.50400000810623, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_2_g7.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.5628000497818, 0, 1.4045000076294, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_2_g9.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.12099999934435, 0, 0.50400000810623, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.4906001091003, 0, 0.50040000677109, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_2_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.1451001167297, 0, 0.81209999322891, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_2_w3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.11200000345707, 0, 0.81209999322891, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_2_w4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6540999412537, 0, 0.81209999322891, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_2_w5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.9739999771118, 0, 0.50040000677109, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 400, + visibleTo = 1400, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/br75_4/lod_1_br75_4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_g1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.1647999286652, 0, 0.8134999871254, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_g2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.12099999934435, 0, 0.50400000810623, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_g3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.12099999934435, 0, 0.50400000810623, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_g4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.1451001167297, 0, 0.62919998168945, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_g5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.6493999958038, 0, 0.60339999198914, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_g6.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.6419999599457, 0, 1.4213999509811, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_g7.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.5628000497818, 0, 1.4045000076294, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_g8.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.32910001277924, 0, 0.84320002794266, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_g9.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.12099999934435, 0, 0.50400000810623, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.4906001091003, 0, 0.50040000677109, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.1451001167297, 0, 0.81209999322891, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_w3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.11200000345707, 0, 0.81209999322891, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_w4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6540999412537, 0, 0.81209999322891, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br75_4/lod_1_w5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.9739999771118, 0, 0.50040000677109, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 150, + visibleTo = 400, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/br75_4_lod_0_body.grp", + transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 }, + type = "GROUP", + }, { + id = "vehicle/train/br75_4_lod_0_bogie_front.grp", + transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.4906001091003, 0, 0.50040000677109, 1 }, + type = "GROUP", + }, { + id = "vehicle/train/br75_4_lod_0_bogie_back.grp", + transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.9739999771118, 0, 0.50040000677109, 1 }, + type = "GROUP", + }, + }, + events = { + drive = { + [1] = { + forward = true, + name = "drive", + } + + }, + }, + matConfigs = { + { 0, 0, 0 } + }, + static = false, + visibleFrom = 0, + visibleTo = 150, + + }, + }, + metadata = { + description = { + name = _("Class 75.4 Baden VI c"), + description = _("Built by the Maschinenbau-Gesellschaft Karlsruhe for service in south-western Germany, this locomotive was equipped with larger wheels and a longer, fixed wheelbase.") + }, + railVehicle = { + topSpeed = 90, + weight = 76, + engines = { + { type = "STEAM", power = 580, tractiveEffort = 90 } + }, + configs = { + { }, + { + --[[axles = { + "vehicle/train/br75_4/lod_1_w1.msh", + "vehicle/train/br75_4/lod_1_w2.msh", + "vehicle/train/br75_4/lod_1_w3.msh", + "vehicle/train/br75_4/lod_1_w4.msh", + "vehicle/train/br75_4/lod_1_w5.msh" + }]] + }, { + axles = { + "vehicle/train/br75_4/lod_0_w1.msh", + "vehicle/train/br75_4/lod_0_w2.msh", + "vehicle/train/br75_4/lod_0_w3.msh", + "vehicle/train/br75_4/lod_0_w4.msh", + "vehicle/train/br75_4/lod_0_w5.msh" + } + } + }, + soundSet = { name = "train_steam_modern", horn = "vehicle/train_steam_old/steam_horn_2.wav" } + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.1, -.7, 1.65)), crew = true, standing = true}, + }, + }, + availability = { + yearFrom = 1914, + yearTo = 1949 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + }, + particleSystem = { + emitters = { + { + position = { 3.9332, .0, 4.8}, + velocity = { .0, .0, 10.0 }, + color = { .3, .3, .3 }, + frequency = 80, + lifeTime = 20.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 2.898, 1.3568, .0 }, + velocity = { .0, 4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 2.898, -1.3568, .0 }, + velocity = { .0, -4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + } + } + } + }, + +} +end diff --git a/res/models/model/vehicle/train/br89.mdl b/res/models/model/vehicle/train/br89.mdl new file mode 100755 index 0000000..4646b92 --- /dev/null +++ b/res/models/model/vehicle/train/br89.mdl @@ -0,0 +1,203 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 4.1387271881104, 1.4581869840622, 4.1176562309265, + }, + bbMin = { + -4.4749689102173, -1.4581869840622, -0.62410598993301, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/br89/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br89/lod_0_g1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.5517, 0, 0.5479, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br89/lod_0_g2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.0158, 0, 0.2894, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br89/lod_0_g3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.0158, 0, 0.2872, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br89/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.6487, 0, 0.5522, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br89/lod_0_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.0158, 0, 0.5522, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br89/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.3121, 0, 0.5522, 1, + }, + type = "MESH", + + },{ + id = "vehicle/train/br89/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.2,1.2),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 3.23, 0.0, 2.68)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,2.0,2.0),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 3.58, -0.915, 1.55)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,2.0,2.0),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 3.58, 0.915, 1.55)), + type = "MESH", + }, + }, + events = { + drive = { + [2] = { + forward = true, + name = "drive", + }, + [3] = { + forward = true, + name = "drive", + }, + [4] = { + forward = true, + name = "drive", + } + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1170, + + }, + }, + metadata = { + description = { + name = _("Class 89 Prussian T 3"), + description = _("As a 0-6-0 tank locomotive, it was the first that was built to German state railway norms.") + }, + railVehicle = { + topSpeed = 40, + weight = 30, + engines = { + { type = "STEAM", power = 290, tractiveEffort = 65 } + }, + configs = { + { + axles = { + "vehicle/train/br89/lod_0_w1.msh", + "vehicle/train/br89/lod_0_w2.msh", + } + } + }, + soundSet = { name = "train_steam_old", horn = "vehicle/train_steam_old/steam_horn_3.wav" } + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.2, -.8, 1.24)), crew = true, standing = true}, + }, + }, + availability = { + yearFrom = 1885, + yearTo = 1932 + }, + cost = { + price = -1 + + }, + maintenance = { + runningCosts = -1, + lifespan = 35 + }, + particleSystem = { + emitters = { + { + position = { 2.6552, .0, 4.1177}, + velocity = { .0, .0, 10.0 }, + color = { .3, .3, .3 }, + frequency = 80, + lifeTime = 20.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 2.2019, 1.1399, .0 }, + velocity = { .0, 4.0, 0.0 }, + color = { .3, .3, .3 }, + frequency = 12, + lifeTime = 20.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 2.2019, -1.1399, .0 }, + velocity = { .0, -4.0, 0.0 }, + color = { .3, .3, .3 }, + frequency = 12, + lifeTime = 20.0, + size01 = { .8, 10.0 }, + child = 1 + } + } + } + }, + +} +end diff --git a/res/models/model/vehicle/train/br_103_1.mdl b/res/models/model/vehicle/train/br_103_1.mdl new file mode 100755 index 0000000..303fb75 --- /dev/null +++ b/res/models/model/vehicle/train/br_103_1.mdl @@ -0,0 +1,137 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 9.9406566619873, 1.4929430484772, 5.9128289222717, + }, + bbMin = { + -9.9796762466431, -1.4929430484772, -0.70098698139191, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/br_103_1/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br_103_1_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.8498, 0, 0, 1, + }, + type = "GROUP", + }, { + id = "vehicle/train/br_103_1_lod_0_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4.8498, 0, 0, 1, + }, + type = "GROUP", + }, { + id = "vehicle/train/br_103_1/lod_0_windows.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br_103_1/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.0,1.0),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 9.41, 0.0, 2.74)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.0,1.0),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 9.25, -0.89, 1.64)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.0,1.0),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 9.25, 0.89, 1.64)), + type = "MESH", + }, + + + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 2010, + + }, + }, + metadata = { + description = { + name = _("Class 103"), + description = _("This fast and heavy electric locomotive was, for a long period, the flagship of German rolling stock.") + }, + railVehicle = { + topSpeed = 200, + weight = 114, + engines = { + { type = "ELECTRIC", power = 5940, tractiveEffort = 314 } + }, + configs = { + { + axles = { + "vehicle/train/br_103_1/lod_0_w1.msh" + } + } + }, + soundSet = { name = "train_electric_modern", horn = "vehicle/train_electric_modern/horn_16.wav" } + + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(7.9, -.62, 1.82)), crew = true, standing = false}, + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 45 + }, + }, + +} +end diff --git a/res/models/model/vehicle/train/br_185_traxx.mdl b/res/models/model/vehicle/train/br_185_traxx.mdl new file mode 100755 index 0000000..d8253ad --- /dev/null +++ b/res/models/model/vehicle/train/br_185_traxx.mdl @@ -0,0 +1,132 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 9.8356332778931, 1.597198009491, 5.8987860679626, + }, + bbMin = { + -9.8356332778931, -1.597198009491, -0.69894200563431, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { { + id = "vehicle/train/br_185_traxx/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br_185_traxx_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.4432, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/br_185_traxx_lod_0_bogie.grp", + transf = { + -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.4432, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/br_185_traxx/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/train/br_185_traxx/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.9,0.9),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 9.4, 0.94, 1.59)), + type = "MESH", + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.9,0.9),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 9.4, -0.94, 1.59)), + type = "MESH", + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1990, + + }, + }, + metadata = { + description = { + name = _("Class 185"), + description = _("The double voltage Class 185 was meant for international operation, and was also dubbed Europalok.") + }, + railVehicle = { + topSpeed = 160, + weight = 84, + engines = { + { type = "ELECTRIC", power = 4200, tractiveEffort = 300 } + }, + configs = { + { + axles = { + "vehicle/train/br_185_traxx/lod_0_w1.msh", + } + } + }, + soundSet = { name = "train_electric_modern", horn = "vehicle/train_electric_modern/horn_15.wav" } + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(7.7, -.79, 1.6)), crew = true, standing = false}, + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + }, + + }, + +} +end diff --git a/res/models/model/vehicle/train/br_218.mdl b/res/models/model/vehicle/train/br_218.mdl new file mode 100755 index 0000000..fe09e6d --- /dev/null +++ b/res/models/model/vehicle/train/br_218.mdl @@ -0,0 +1,158 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 8.4321479797363, 1.5827790498734, 4.6462259292603, + }, + bbMin = { + -8.4321479797363, -1.5827790498734, -0.57415497303009, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/br_218/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + }, { + id = "vehicle/train/br_218_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.4806, 0, 0, 1, + }, + type = "GROUP", + }, { + id = "vehicle/train/br_218_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.4806, 0, 0, 1, + }, + type = "GROUP", + }, { + id = "vehicle/train/br_218/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + },{ + id = "vehicle/train/br_218/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.3,1.3),transf.degToRad( 19.0, 7.5, 0.0), vec3.new( 7.865, 0.98, 1.92)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.3,1.3),transf.degToRad( -19.0, 7.5, 0.0), vec3.new( 7.865, -0.98, 1.92)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.9,0.9),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 7.56, 0.0, 3.875)), + type = "MESH", + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1640, + + }, + }, + metadata = { + description = { + name = _("Class 218"), + description = _("A diesel-hydraulic locomotive from Germany built for medium to heavy trains.") + }, + railVehicle = { + topSpeed = 140, + weight = 80, + engines = { + { type = "DIESEL", power = 2500, tractiveEffort = 235 } + }, + configs = { + { + axles = { + "vehicle/train/br_218/lod_0_w1.msh", + } + } + }, + soundSet = { name = "train_diesel", horn = "vehicle/train_electric_modern/horn_2.wav" } + + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.4, -.81, 1.91)), crew = true, standing = false}, + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + }, + particleSystem = { + emitters = { + { + position = {2.6121, -0.4018, 4.605 }, + velocity = { .0, .0, 4.0 }, + color = { .1, .1, .1 }, + frequency = 30, + lifeTime = 1.0, + size01 = { .2, 4.0 }, + child = 1 + }, + { + position = {2.6121, 0.4018, 4.605 }, + velocity = { .0, .0, 4.0 }, + color = { .1, .1, .1 }, + frequency = 30, + lifeTime = 1.0, + size01 = { .2, 4.0 }, + child = 1 + }, + } + } + + + }, + +} +end diff --git a/res/models/model/vehicle/train/br_246_traxx.mdl b/res/models/model/vehicle/train/br_246_traxx.mdl new file mode 100755 index 0000000..007ef52 --- /dev/null +++ b/res/models/model/vehicle/train/br_246_traxx.mdl @@ -0,0 +1,147 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 9.4412250518799, 1.4945479631424, 4.2960352897644, + }, + bbMin = { + -9.4412250518799, -1.4945479631424, -0.67091447114944, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/br_246_traxx/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br_246_traxx/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br_246_traxx/lod_0_vent.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br_246_traxx_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.2243, 0, 0, 1, + }, + type = "GROUP", + }, { + id = "vehicle/train/br_246_traxx_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.2243, 0, 0, 1, + }, + type = "GROUP", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.25,1.25),transf.degToRad( 0.0, -17.0, 0.0), vec3.new( 8.88, 0.0, 2.295)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.8,0.8),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 9.05, -0.905, 1.525)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.8,0.8),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 9.05, 0.905, 1.525)), + type = "MESH", + },{ + id = "vehicle/train/br_246_traxx/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1680, + + }, + }, + + metadata = { + description = { + name = _("Class 246"), + description = _("In this diesel locomotive the fuel tank occupies the same space as the transformer in the electric version.") + }, + railVehicle = { + topSpeed = 160, + weight = 80, + engines = { + { type = "DIESEL", power = 2000, tractiveEffort = 240 } + }, + configs = { + { + axles = { + "vehicle/train/br_246_traxx/lod_0_w1.msh", + "vehicle/train/br_246_traxx/lod_0_w2.msh" + } + }, + + }, + soundSet = { name = "train_diesel", horn = "vehicle/truck_modern/horn.wav" } + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(7.4, -.7, 1.52)), crew = true, standing = false}, + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + } + }, + + +} +end diff --git a/res/models/model/vehicle/train/br_e94.mdl b/res/models/model/vehicle/train/br_e94.mdl new file mode 100755 index 0000000..f4cb8a8 --- /dev/null +++ b/res/models/model/vehicle/train/br_e94.mdl @@ -0,0 +1,126 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/br_e94/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/br_e94_lod0_bogie1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.322, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/br_e94_lod0_bogie1.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -3.322, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/train/br_e94/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/train/br_e94/lod_0_interior.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/train/br_e94/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.2,1.2,1.2),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 8.67, 0.0, 2.865)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.2,1.2,1.2),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 8.64, -0.905, 1.56)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.2,1.2,1.2),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 8.64, 0.905, 1.56)), + type = "MESH", + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1950, + + }, + }, + metadata = { + description = { + name = _("Class E 94"), + description = _("This electric heavy freight locomotive was built for the Deutsche Reichsbahn since 1940 and is commonly known as the German Crocodile.") + }, + railVehicle = { + topSpeed = 90, + weight = 119, + engines = { + { type = "ELECTRIC", power = 3000, tractiveEffort = 363 } + }, + configs = { + { + axles = { + "vehicle/train/br_e94/lod_0_w1.msh", + } + } + }, + soundSet = "train_electric_old" + }, + transportVehicle = { + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.18, -0.8, 1.95)), crew = true}, + }, + carrier = "RAIL" + }, + availability = { + yearFrom = 1938, + yearTo = 1949 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + } + }, + +} +end diff --git a/res/models/model/vehicle/train/c6_8.mdl b/res/models/model/vehicle/train/c6_8.mdl new file mode 100755 index 0000000..9496abe --- /dev/null +++ b/res/models/model/vehicle/train/c6_8.mdl @@ -0,0 +1,133 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 10.25147819519, 1.599387049675, 5.9179420471191, + }, + bbMin = { + -10.25147819519, -1.7070970535278, -0.027449011802673, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/c6_8_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/c6_8_lod_0_idler.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.4119000434875, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/c6_8_lod_0_idler.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -7.4119000434875, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + [1] = { + forward = true, + name = "drive", + }, + }, + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 2030, + + }, + }, + metadata = { + description = { + name = _("Ce 6/8 II Crocodile"), + description = _( + "Swiss electric locomotive known as the Crocodile, mainly used for heavy freight trains on sinuous routes like the Gotthard line.") + }, + availability = { + yearFrom = 1921, + yearTo = 1949, + + }, + cost = { + price = -1, + + }, + maintenance = { + lifespan = 45, + runningCosts = -1, + + }, + railVehicle = { + configs = { + { + axles = { + "vehicle/train/c6_8/lod_0_w1.msh", "vehicle/train/c6_8/lod_0_w2.msh", + }, + fakeBogies = { + + }, + + }, + }, + engines = { + { + power = 1200, + tractiveEffort = 150, + type = "ELECTRIC", + + }, + }, + soundSet = { + horn = "", + name = "train_electric_old", + + }, + topSpeed = 75, + weight = 128, + + }, + transportVehicle = { + capacities = { + }, + carrier = "RAIL", + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.5, .85, 1.5)), crew = true, standing = true}, + }, + + }, + + }, + +} +end diff --git a/res/models/model/vehicle/train/d1_3_new.mdl b/res/models/model/vehicle/train/d1_3_new.mdl new file mode 100755 index 0000000..350ac2f --- /dev/null +++ b/res/models/model/vehicle/train/d1_3_new.mdl @@ -0,0 +1,127 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/d1_3_lod_0_body_new.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/d1_3_lod_0_coalcar_new.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.226, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + [1] = { + forward = true, + name = "drive", + }, + } + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1230, + + }, + }, + metadata = { + description = { + name = _("D 1/3"), + description = _("This legendary railway was known as the Spanisch-Brötli-Bahn, named after a delicacy of Baden, Switzerland.") + }, + railVehicle = { + topSpeed = 40, + weight = 30, + engines = { + { type = "STEAM", power = 50, tractiveEffort = 15 } + }, + configs = { + { + axles = { + "vehicle/train/d1_3_new/lod_0_w2.msh", + "vehicle/train/d1_3_new/lod_0_w4.msh", + "vehicle/train/d1_3_new/lod_0_w1.msh", + } + } + }, + soundSet = { name = "train_steam_old", horn = "vehicle/train_steam_old/steam_horn_10.wav" } + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.0, -0.3, 1.05)), standing = true, crew = true }, + } + }, + availability = { + yearFrom = 1850, + yearTo = 1866 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + }, + particleSystem = { + emitters = { + { + position = { 2.12, .0, 4.15 }, + velocity = { .0, .0, 10.0 }, + color = { .3, .3, .3 }, + frequency = 80, + lifeTime = 20.0, + size01 = { .8, 10.0 }, + child = 2 + }, + { + position = { 1.8, .9, .65 }, + velocity = { .0, 4.0, 0.0 }, + color = { .5, .5, .5 }, + frequency = 12, + lifeTime = 5.0, + size01 = { .6, 8.0 }, + child = 2 + }, + { + position = { 1.8, -.9, .65 }, + velocity = { .0, -4.0, 0.0 }, + color = { .5, .5, .5 }, + frequency = 12, + lifeTime = 5.0, + size01 = { .6, 8.0 }, + child = 2 + } + } + } + }, + +} +end diff --git a/res/models/model/vehicle/train/db_v100.mdl b/res/models/model/vehicle/train/db_v100.mdl new file mode 100755 index 0000000..ff8093c --- /dev/null +++ b/res/models/model/vehicle/train/db_v100.mdl @@ -0,0 +1,229 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 6.7790122032166, 1.5564210414886, 4.2407069206238, + }, + bbMin = { + -7.0255718231201, -1.5564210414886, -0.55601000785828, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/db_v100/lod_2_v100.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/db_v100_lod_2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.3699, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/db_v100_lod_2_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -3.6164, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 230, + visibleTo = 1420, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/db_v100/lod_1_v100.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/db_v100_lod_1_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.3699, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/db_v100_lod_1_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -3.6164, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 230, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/db_v100/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/db_v100_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.3699, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/db_v100_lod_0_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -3.6164, 0, 0, 1, + }, + type = "GROUP", + + }, + { + id = "vehicle/train/db_v100/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/train/db_v100/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.95,.95),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 6.09, 0.745, 1.7)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.95,.95),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 6.09, -0.745, 1.7)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.1,1.1),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 6.01, 0, 3.3)), + type = "MESH", + }, + + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + description = { + name = _("Class V 100"), + description = _("This diesel-hydraulic locomotive was produced for non-electrified branch lines as a replacement for steam locomotives.") + }, + railVehicle = { + topSpeed = 90, + weight = 62, + engines = { + { type = "DIESEL", power = 809, tractiveEffort = 177 } + }, + configs = { + { + }, + { + axles = { + "vehicle/train/db_v100/lod_1_w1.msh", + } + }, + { + axles = { + "vehicle/train/db_v100/lod_0_w1.msh", + } + } + }, + soundSet = "train_diesel" + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-.7, -.62, 2.22)), crew = true, standing = false}, + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + } + }, + +} +end diff --git a/res/models/model/vehicle/train/lner_class_a4.mdl b/res/models/model/vehicle/train/lner_class_a4.mdl new file mode 100755 index 0000000..6848449 --- /dev/null +++ b/res/models/model/vehicle/train/lner_class_a4.mdl @@ -0,0 +1,373 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 7.7369499206543, 1.4122450351715, 4.0343117713928, + }, + bbMin = { + -13.642044067383, -1.4122450351715, -0.070711970329285, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/lner_class_a4/lod_2_a4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_coalcar.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.5486001968384, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_g2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.66769999265671, 0, 0.7049999833107, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_g3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.66500002145767, 0, 0.7049999833107, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_g4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.0145998001099, 0, 0.82679998874664, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_g5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.395299911499, 0, 0.82330000400543, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_g6.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.3962998390198, 0, 0.72869998216629, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_g7.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.3215999603271, 0, 1.6866999864578, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_g9.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.67320001125336, 0, 1.0255999565125, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_w7.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -11.920700073242, 0, 0.55870002508163, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_w3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.8698999881744, 0, 1.01859998703, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_w3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.66500002145767, 0, 1.01859998703, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_w3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.5398000478745, 0, 1.01859998703, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_w6.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.443699836731, 0, 0.44980001449585, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_w7.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -7.2048001289368, 0, 0.55870002508163, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_w7.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.7768001556396, 0, 0.55870002508163, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_w7.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -10.348799705505, 0, 0.55870002508163, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_b1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.5448999404907, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.500500202179, 0, 0.48989999294281, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/lner_class_a4/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.463399887085, 0, 0.48989999294281, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 300, + visibleTo = 1750, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/lner_class_a4_lod_1_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/lner_class_a4_lod_1_coalcar.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.5445995330811, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/lner_class_a4_lod_1_bogie1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.5487999916077, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + { + forward = true, + name = "drive", + + }, + }, + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 130, + visibleTo = 300, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/lner_class_a4_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/lner_class_a4_lod_0_coalcar.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.5445995330811, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/lner_class_a4_lod_0_bogie1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.5487999916077, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + { + forward = true, + name = "drive", + + }, + }, + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 130, + + }, + }, + metadata = { + description = { + name = _("Class A4"), + description = _("A streamlined 4-6-2 steam locomotive designed by Nigel Gresley for the London and North Eastern Railway. The \"4468 Mallard\" still holds the world record as the fastest steam locomotive.") + }, + railVehicle = { + configs = { + { + + }, { + axles = { + "vehicle/train/lner_class_a4/lod_1_w7.msh", + "vehicle/train/lner_class_a4/lod_1_w3.msh", + "vehicle/train/lner_class_a4/lod_1_w6.msh", + "vehicle/train/lner_class_a4/lod_1_w1.msh", + "vehicle/train/lner_class_a4/lod_1_w2.msh", + }, + + }, { + axles = { + "vehicle/train/lner_class_a4/lod_0_w7.msh", + "vehicle/train/lner_class_a4/lod_0_w3.msh", + "vehicle/train/lner_class_a4/lod_0_w6.msh", + "vehicle/train/lner_class_a4/lod_0_w1.msh", + "vehicle/train/lner_class_a4/lod_0_w2.msh", + }, + + }, + }, + engines = { + { + power = 1986, + tractiveEffort = 150, + type = "STEAM", + + }, + }, + topSpeed = 145, + weight = 105, + soundSet = { name = "train_steam_modern", horn = "vehicle/train_steam_old/steam_horn_12.wav" } + }, + transportVehicle = { + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.7, -0.6, 1.3)), crew = true, standing = true}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(30.0, 0.0, 0.0), vec3.new(-5, 0.7, 1.3)), crew = true, standing = true}, + }, + capacities = { + + }, + carrier = "RAIL", + }, + availability = { + yearFrom = 1935, + yearTo = 1949 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + }, + particleSystem = { + emitters = { + { + position = { 5.2, .0, 4.0343}, + velocity = { .0, .0, 10.0 }, + color = { .3, .3, .3 }, + frequency = 100, + lifeTime = 15.0, + size01 = { 1.0, 12.0 }, + child = 1 + }, + { + position = { 4.6839, 1.301, .0 }, + velocity = { .0, 4.0, 0.0 }, + color = { .3, .3, .3 }, + frequency = 24, + lifeTime = 15.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 4.6839, -1.301, .0 }, + velocity = { .0, -4.0, 0.0 }, + color = { .3, .3, .3 }, + frequency = 24, + lifeTime = 15.0, + size01 = { .8, 10.0 }, + child = 1 + } + } + } + }, + +} +end diff --git a/res/models/model/vehicle/train/lner_flying_scotsman.mdl b/res/models/model/vehicle/train/lner_flying_scotsman.mdl new file mode 100755 index 0000000..edfc7af --- /dev/null +++ b/res/models/model/vehicle/train/lner_flying_scotsman.mdl @@ -0,0 +1,149 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/lner_flying_scotsman_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/lner_flying_scotsman_lod_0_coalcar.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.6228, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/lner_flying_scotsman_lod_0_bogie1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.6884, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/lner_flying_scotsman_lod_0_bogie2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.0821, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + [1] = { + forward = true, + name = "drive", + }, + } + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1670, + + }, + }, + metadata = { + description = { + name = _("Class A3 Flying Scotsman"), + description = _("The Flying Scotsman is an express passenger train that has operated between Edinburgh and London, the capitals of Scotland and England via the East Coast Main Line.") + }, + railVehicle = { + topSpeed = 120, + weight = 97.8, + engines = { + { type = "STEAM", power = 1655, tractiveEffort = 135 } + }, + configs = { + { + axles = { + "vehicle/train/lner_flying_scotsman/lod_0_w1.msh", + "vehicle/train/lner_flying_scotsman/lod_0_w2.msh", + "vehicle/train/lner_flying_scotsman/lod_0_w3.msh", + "vehicle/train/lner_flying_scotsman/lod_0_w4.msh", + "vehicle/train/lner_flying_scotsman/lod_0_w5.msh", + } + } + }, + soundSet = "train_steam_modern" + }, + transportVehicle = { + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.7, -0.6, 1.3)), crew = true, standing = true}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(30.0, 0.0, 0.0), vec3.new(-5, 0.7, 1.3)), crew = true, standing = true}, + }, + carrier = "RAIL" + }, + availability = { + yearFrom = 1925, + yearTo = 1949 + }, + cost = { + price = -1 + + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + }, + particleSystem = { + emitters = { + { + position = {4.3632, .0, 3.8589}, + velocity = { .0, .0, 10.0 }, + color = { .3, .3, .3 }, + frequency = 80, + lifeTime = 20.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 4.195, 1.283, 1.0 }, + velocity = { .0, 4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { 4.195, -1.283, 1.0 }, + velocity = { .0, -4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + } + } + } + + }, + +} +end diff --git a/res/models/model/vehicle/train/nohab.mdl b/res/models/model/vehicle/train/nohab.mdl new file mode 100755 index 0000000..6d32223 --- /dev/null +++ b/res/models/model/vehicle/train/nohab.mdl @@ -0,0 +1,149 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 9.785943031311, 1.6869109869003, 4.4580950737, + }, + bbMin = { + -9.785943031311, -1.6869109869003, -0.63750797510147, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/nohab_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.3174, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/train/nohab_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.3174, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/nohab/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/nohab/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/nohab/lod_0_interior.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/train/nohab/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.35,1.35),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 9.05, 1.153, 2.13)), + type = "MESH", + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.35,1.35),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 9.05, -1.153, 2.13)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.35,1.35),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 9.05, 0, 3.13)), + type = "MESH", + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1740, + + }, + }, + metadata = { + description = { + name = _("NoHAB AA16"), + description = _("This diesel-electric locomotive was a European variant of the American F-series from GM.") + }, + railVehicle = { + topSpeed = 120, + weight = 108, + engines = { + { type = "DIESEL", power = 1450, tractiveEffort = 200 } + }, + configs = { + { + axles = { + "vehicle/train/nohab/lod_0_w1.msh", + "vehicle/train/nohab/lod_0_w1.msh", + "vehicle/train/nohab/lod_0_w1.msh", + "vehicle/train/nohab/lod_0_w1.msh", + "vehicle/train/nohab/lod_0_w1.msh", + } + } + }, + soundSet = { name = "train_diesel", horn = "vehicle/train_diesel/horn_13_freight.wav" } + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group =11, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.8, .9, 2.22)), crew = true, standing = false}, + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + }, + + }, + +} +end diff --git a/res/models/model/vehicle/train/obb_1042.mdl b/res/models/model/vehicle/train/obb_1042.mdl new file mode 100755 index 0000000..dc44930 --- /dev/null +++ b/res/models/model/vehicle/train/obb_1042.mdl @@ -0,0 +1,111 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/obb_1042_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(0, 0, 0)), -- manual rotation + type = "GROUP", + + }, { + id = "vehicle/train/obb_1042/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + transf = transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(0, 0, 0)), -- manual rotation + type = "MESH", + + },{ + id = "vehicle/train/obb_1042_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.9489, 0, 0, 1, + }, + transf = transf.rotZYXTransl(transf.degToRad(180,0,0), vec3.new(3.9489, 0, 0)), -- manual rotation + type = "GROUP", + + },{ + id = "vehicle/train/obb_1042_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.9489, 0, 0, 1, + }, + transf = transf.rotZYXTransl(transf.degToRad(180,0,0), vec3.new(-3.9489, 0, 0)), -- manual rotation + type = "GROUP", + + } + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1810, + + }, + }, + metadata = { + description = { + name = _("Class 1042"), + description = _("The Class 1042 was a class of electric locomotives operated by the Austrian Federal Railways.") + }, + railVehicle = { + topSpeed = 140, + weight = 83.9, + engines = { + { type = "ELECTRIC", power = 3300, tractiveEffort = 260 } + }, + configs = { + { + axles = { + "vehicle/train/obb_1042/lod_0_w1.msh", + } + }, + + }, + soundSet = "train_electric_modern" + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.9, -.7, 1.51)), crew = true, standing = false}, + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000, + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + } + }, + +} +end diff --git a/res/models/model/vehicle/train/plm_220.mdl b/res/models/model/vehicle/train/plm_220.mdl new file mode 100755 index 0000000..eae1848 --- /dev/null +++ b/res/models/model/vehicle/train/plm_220.mdl @@ -0,0 +1,124 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/plm_220_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/train/plm_220_lod_0_coalcar.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.2365, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + [1] = { + forward = true, + name = "drive", + }, + }, + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1540, + + }, + }, + metadata = { + description = { + name = _("PLM 220"), + description = _("The very futuristic \"Big C\" is a pioneer among the aerodynamic locomotives.") + }, + railVehicle = { + topSpeed = 60, + weight = 57.4, + engines = { + { type = "STEAM", power = 450, tractiveEffort = 75 } + }, + configs = { + { + axles = { + "vehicle/train/plm_220/lod_0_w1.msh", + "vehicle/train/plm_220/lod_0_w2.msh", + "vehicle/train/plm_220/lod_0_w3.msh", + "vehicle/train/plm_220/lod_0_w4.msh" + } + } + }, + soundSet = { name = "train_steam_old", horn = "vehicle/train_steam_old/steam_horn_20.wav" } + }, + transportVehicle = { + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.2, -0.1, 1.4)), crew = true, standing = true}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(30.0, 0.0, 0.0), vec3.new(-5.4, 0.7, 1.4)), crew = true, standing = true}, + }, + carrier = "RAIL" + }, + availability = { + yearFrom = 1890, + yearTo = 1940 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 35 + }, + particleSystem = { + emitters = { + { + position = {2.1654, .0, 4.207}, + velocity = { .0, .0, 10.0 }, + color = { .3, .3, .3 }, + frequency = 80, + lifeTime = 20.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { -0.614, 1.2299, 1.0154 }, + velocity = { .0, 4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + }, + { + position = { -0.614, -1.2299, 1.0154 }, + velocity = { .0, -4.0, 0.0 }, + color = { .4, .4, .4 }, + frequency = 12, + lifeTime = 10.0, + size01 = { .8, 10.0 }, + child = 1 + } + } + } + + }, + +} +end diff --git a/res/models/model/vehicle/train/rabde_12_12_front.mdl b/res/models/model/vehicle/train/rabde_12_12_front.mdl new file mode 100755 index 0000000..3a8bc6e --- /dev/null +++ b/res/models/model/vehicle/train/rabde_12_12_front.mdl @@ -0,0 +1,367 @@ +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 diff --git a/res/models/model/vehicle/train/rabde_12_12_waggon.mdl b/res/models/model/vehicle/train/rabde_12_12_waggon.mdl new file mode 100755 index 0000000..4d5f6f6 --- /dev/null +++ b/res/models/model/vehicle/train/rabde_12_12_waggon.mdl @@ -0,0 +1,345 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 13.024568557739, 1.5505640506744, 5.8909320831299, + }, + bbMin = { + -12.078281402588, -1.5505640506744, -0.055481970310211, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/rabde_12_12_lod_2_back.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.3304004669189, 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, 8.5118999481201, 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, + }, + }, + static = false, + visibleFrom = 350, + visibleTo = 2250, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/rabde_12_12_lod_1_back.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.3304004669189, 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, 8.5118999481201, 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, + }, + }, + static = false, + visibleFrom = 120, + visibleTo = 350, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/rabde_12_12_lod_0_back.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.3304004669189, 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, 8.5118999481201, 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, + }, + }, + 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 = "train_electric_modern", + + }, + topSpeed = 125, + weight = 60, + + }, + transportVehicle = { + capacities = { + { + capacity = 144, + type = "PASSENGERS", + + }, + }, + carrier = "RAIL", + loadSpeed = 3, + seats = { + { 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(-4.1, -0.8, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-4.1, -1.2, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.1, 0.55, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-4.1, 1, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.1, 0.8, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-3.1, 1.2, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.1, -0.55, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-3.1, -1, 0.96)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.9, -0.8, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-5.9, -1.2, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.9, 0.55, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-4.9, 1, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.9, 0.8, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-4.9, 1.2, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.9, -0.55, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-4.9, -1, 0.96)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.6, -0.8, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-7.6, -1.2, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.6, 0.55, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-7.6,1, 1, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.6, 0.8, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-6.6, 1.2, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.6, -0.55, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-6.6, -1, 0.96)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-9.4, -0.8, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-9.4, -1.2, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-9.4, 0.55, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-9.3,1, 1, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-8.3, 0.8, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-8.3, 1.2, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-8.3, -0.55, 0.96)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-8.3, -1, 0.96)), }, + + + }, + multipleUnitOnly = true + }, + + }, + +} +end diff --git a/res/models/model/vehicle/train/re_44i.mdl b/res/models/model/vehicle/train/re_44i.mdl new file mode 100755 index 0000000..d500860 --- /dev/null +++ b/res/models/model/vehicle/train/re_44i.mdl @@ -0,0 +1,235 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 7.4868950843811, 1.5592080354691, 5.9032998085022, + }, + bbMin = { + -7.4868950843811, -1.5592080354691, -0.54285299777985, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/re_44i/lod_2_re_44i.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/re_44i/lod_2_w.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.4563, 0, 0.4873, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/re_44i/lod_2_w.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.4907, 0, 0.4873, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/re_44i/lod_2_w.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.4563, 0, 0.4873, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/re_44i/lod_2_w.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.4907, 0, 0.4873, 1, + }, + type = "MESH", + + }, + + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0 + }, + }, + static = false, + visibleFrom = 340, + visibleTo = 1770, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/re_44i/lod_1_re_44i.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/train/re_44i_lod_1_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.9748, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/re_44i_lod_1_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -3.9748, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 200, + visibleTo = 340, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/re_44i/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/re_44i_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.9748, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/re_44i_lod_0_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -3.9748, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/re_44i/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/train/re_44i/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.1,1.1),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 6.77, -0.885, 1.455)), + type = "MESH", + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.1,1.1),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 6.77, 0.885, 1.455)), + type = "MESH", + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.0,1.0),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 6.815, 0.0, 3.235)), + type = "MESH", + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 200, + + }, + }, + metadata = { + description = { + name = _("Re 4/4"), + description = _("A light-weight locomotive for fast passenger trains, the first in Switzerland equipped with bogies.") + }, + railVehicle = { + topSpeed = 125, + weight = 57, + engines = { + { type = "ELECTRIC", power = 1900, tractiveEffort = 135 } + }, + configs = { + { + },{ + axles = { + "vehicle/train/re_44i/lod_1_w.msh", + } + },{ + axles = { + "vehicle/train/re_44i/lod_0_w1.msh", + } + } + }, + soundSet = { name = "train_electric_old", horn = "vehicle/train_electric_modern/horn_16.wav" } + + }, + transportVehicle = { + carrier = "RAIL", + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.5, .9, 1.25)), crew = true, standing = false}, + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 55 + } + }, + +} +end diff --git a/res/models/model/vehicle/train/re_450.mdl b/res/models/model/vehicle/train/re_450.mdl new file mode 100755 index 0000000..d006666 --- /dev/null +++ b/res/models/model/vehicle/train/re_450.mdl @@ -0,0 +1,229 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 9.5686473846436, 1.3927730321884, 5.8968467712402, + }, + bbMin = { + -9.1911715698242, -1.3927730321884, -0.55368798971176, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/re_450_lod_2_front_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.1392, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/re_450_lod_2_front_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.3955, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/train/re_450_lod_2_front.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 300, + visibleTo = 1990, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/re_450_lod_1_front_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.1392, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/re_450_lod_1_front_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.3955, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/train/re_450_lod_1_front.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + [3] = { name = "open_doors", forward = true }, + }, + close_all_doors = { + [3] = { name = "open_doors", forward = false }, + }, + open_doors_left = { + [3] = { name = "open_doors", forward = true }, + }, + close_doors_left = { + [3] = { name = "open_doors", forward = false }, + }, + open_doors_right = { + [3] = { name = "open_doors", forward = true }, + }, + close_doors_right = { + [3] = { name = "open_doors", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 300, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/re_450_lod_0_front_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.1392, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/re_450_lod_0_front_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.3955, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/re_450_lod_0_front.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + [3] = { name = "open_doors", forward = true }, + }, + close_all_doors = { + [3] = { name = "open_doors", forward = false }, + }, + open_doors_left = { + [3] = { name = "open_doors", forward = true }, + }, + close_doors_left = { + [3] = { name = "open_doors", forward = false }, + }, + open_doors_right = { + [3] = { name = "open_doors", forward = true }, + }, + close_doors_right = { + [3] = { name = "open_doors", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + railVehicle = { + topSpeed = 130, + weight = 74, + engines = { + { type = "ELECTRIC", power = 3200, tractiveEffort = 240 } + }, + configs = { + { + axles = { + "vehicle/train/re_450/lod_2_w1.msh", + } + }, + { + axles = { + "vehicle/train/re_450/lod_1_w1.msh", + } + }, + { + axles = { + "vehicle/train/re_450/lod_0_w1.msh", + } + } + }, + soundSet = { name = "train_electric_modern", horn = "vehicle/train_electric_modern/horn_21_intercity125.wav" } + }, + transportVehicle = { + carrier = "RAIL", + multipleUnitOnly = true, + seats = { + -- driver + { group =9, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(7.8, .6, 1.4)), crew = true, standing = false}, + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + } + + }, + +} +end diff --git a/res/models/model/vehicle/train/re_450_b.mdl b/res/models/model/vehicle/train/re_450_b.mdl new file mode 100755 index 0000000..ba040e4 --- /dev/null +++ b/res/models/model/vehicle/train/re_450_b.mdl @@ -0,0 +1,410 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 13.32302570343, 1.4731160402298, 4.5481429100037, + }, + bbMin = { + -13.327101707458, -1.4731160402298, -0.50950002670288, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/re_450_lod_2_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.9427, 0, 0, 1, + }, + type = "GROUP", + + }, + { + id = "vehicle/train/re_450_lod_2_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.9427, 0, 0, 1, + }, + type = "GROUP", + + }, + { + id = "vehicle/train/re_450_lod_2_mid.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + [3] = { name = "open_doors", forward = true }, + }, + close_all_doors = { + [3] = { name = "open_doors", forward = false }, + }, + open_doors_left = { + [3] = { name = "open_doors_left", forward = true }, + }, + close_doors_left = { + [3] = { name = "open_doors_left", forward = false }, + }, + open_doors_right = { + [3] = { name = "open_doors_right", forward = true }, + }, + close_doors_right = { + [3] = { name = "open_doors_right", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 300, + visibleTo = 2100, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/re_450_lod_1_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.9427, 0, 0, 1, + }, + type = "GROUP", + + }, + { + id = "vehicle/train/re_450_lod_1_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.9427, 0, 0, 1, + }, + type = "GROUP", + + }, + { + id = "vehicle/train/re_450_lod_1_mid.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + [3] = { name = "open_doors", forward = true }, + }, + close_all_doors = { + [3] = { name = "open_doors", forward = false }, + }, + open_doors_left = { + [3] = { name = "open_doors_left", forward = true }, + }, + close_doors_left = { + [3] = { name = "open_doors_left", forward = false }, + }, + open_doors_right = { + [3] = { name = "open_doors_right", forward = true }, + }, + close_doors_right = { + [3] = { name = "open_doors_right", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 300, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/re_450_lod_0_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.9427, 0, 0, 1, + }, + type = "GROUP", + + }, + { + id = "vehicle/train/re_450_lod_0_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.9427, 0, 0, 1, + }, + type = "GROUP", + + }, + { + id = "vehicle/train/re_450_lod_0_mid.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + [3] = { name = "open_doors", forward = true }, + }, + close_all_doors = { + [3] = { name = "open_doors", forward = false }, + }, + open_doors_left = { + [3] = { name = "open_doors_left", forward = true }, + }, + close_doors_left = { + [3] = { name = "open_doors_left", forward = false }, + }, + open_doors_right = { + [3] = { name = "open_doors_right", forward = true }, + }, + close_doors_right = { + [3] = { name = "open_doors_right", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + description = { + name = _("Double-deck car"), + description = _("A standard double-deck train car, often used for local transport.") + }, + railVehicle = { + topSpeed = 130, + weight = 48, + configs = { + { + axles = { + "vehicle/train/re_450_b/lod_2_w2.msh", + } + }, + { + axles = { + "vehicle/train/re_450_b/lod_1_w2.msh", + } + }, + { + axles = { + "vehicle/train/re_450_b/lod_0_w2.msh", + } + } + }, + soundSet = "waggon_modern" + }, + transportVehicle = { + capacities = { + { type = "PASSENGERS", capacity = 132 } + }, + carrier = "RAIL", + loadSpeed = 4, + seats = { + + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(11.5, -0.6, 1.2)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(11.5, -1.15, 1.2)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(11.5, 0.4, 1.2)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(11.5, 0.9, 1.2)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(12.4, 0.6, 1.2)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(12.4, 1.15, 1.2)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(12.4, -0.4, 1.2)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(12.4, -0.9, 1.2)), }, + + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, -0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(0.3, -1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, 0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(0.3, 0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, 0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(1.2, 1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, -0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(1.2, -0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2, -0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(2, -1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2, 0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(2, 0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, 0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(2.9, 1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, -0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(2.9, -0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.7, -0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(3.7, -1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.7, 0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(3.7, 0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, 0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(4.6, 1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, -0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(4.6, -0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.3, -0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(5.3, -1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.3, 0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(5.3, 0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.2, 0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(6.2, 1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.2, -0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(6.2, -0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(7.3, 0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(7.3, 1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(7.3, -0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, -0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.2, -1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, 0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.2, 0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.3, 0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-0.3, 1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.3, -0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-0.3, -0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.9, -0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-2.9, -1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.9, 0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-2.9, 0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2, 0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-2, 1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2, -0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-2, -0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.6, -0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-4.6, -1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.6, 0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-4.6, 0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, 0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-3.7, 1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, -0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-3.7, -0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-6.2, -0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-6.2, -1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-6.2, 0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-6.2, 0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-5.3, 0.6, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-5.3, 1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-5.3, -0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-5.3, -0.9, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(.0, 0.0, 0.0), vec3.new(-7.2, 0.4, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-7.2, -1.1, 0.4)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-7.2, 0.9, 0.4)), }, + + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, -0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(0.3, -1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, 0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(0.3, 0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, 0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(1.2, 1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, -0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(1.2, -0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2, -0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(2, -1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2, 0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(2, 0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, 0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(2.9, 1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, -0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(2.9, -0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.7, -0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(3.7, -1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.7, 0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(3.7, 0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, 0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(4.6, 1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, -0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(4.6, -0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.3, -0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(5.3, -1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.3, 0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(5.3, 0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.2, 0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(6.2, 1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.2, -0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(6.2, -0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(7.3, 1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(7.3, -0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, -0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.2, -1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, 0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.2, 0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.3, 0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-0.3, 1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.3, -0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-0.3, -0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.9, -0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-2.9, -1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.9, 0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-2.9, 0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2, 0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-2, 1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2, -0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-2, -0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.6, -0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-4.6, -1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.6, 0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-4.6, 0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, 0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-3.7, 1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, -0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-3.7, -0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-6.2, -0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-6.2, -1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-6.2, 0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-6.2, 0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-5.3, 0.6, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-5.3, 1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-5.3, -0.4, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-5.3, -0.9, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-7.2, -1.1, 2.45)), }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-7.2, 0.9, 2.45)), }, + + + + + + + + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + } + + }, + +} +end diff --git a/res/models/model/vehicle/train/re_450_bt.mdl b/res/models/model/vehicle/train/re_450_bt.mdl new file mode 100755 index 0000000..845d43d --- /dev/null +++ b/res/models/model/vehicle/train/re_450_bt.mdl @@ -0,0 +1,390 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 13.272323608398, 1.4731160402298, 4.5481429100037, + }, + bbMin = { + -13.513454437256, -1.4731160402298, -0.06113899871707, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/re_450_lod_2_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.8879, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/train/re_450_lod_2_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.9331, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/re_450_lod_2_end.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + }, + }, + events = { + open_all_doors = { + [3] = { name = "open_doors", forward = true }, + }, + close_all_doors = { + [3] = { name = "open_doors", forward = false }, + }, + open_doors_left = { + [3] = { name = "open_doors_left", forward = true }, + }, + close_doors_left = { + [3] = { name = "open_doors_left", forward = false }, + }, + open_doors_right = { + [3] = { name = "open_doors_right", forward = true }, + }, + close_doors_right = { + [3] = { name = "open_doors_right", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 300, + visibleTo = 2100, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/re_450_lod_1_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.8879, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/train/re_450_lod_1_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.9331, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/re_450_lod_1_end.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + }, + }, + events = { + open_all_doors = { + [3] = { name = "open_doors", forward = true }, + }, + close_all_doors = { + [3] = { name = "open_doors", forward = false }, + }, + open_doors_left = { + [3] = { name = "open_doors_left", forward = true }, + }, + close_doors_left = { + [3] = { name = "open_doors_left", forward = false }, + }, + open_doors_right = { + [3] = { name = "open_doors_right", forward = true }, + }, + close_doors_right = { + [3] = { name = "open_doors_right", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 300, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/re_450_lod_0_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.8879, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/train/re_450_lod_0_repeat_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.9331, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/re_450_lod_0_end.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + }, + }, + events = { + open_all_doors = { + [3] = { name = "open_doors", forward = true }, + }, + close_all_doors = { + [3] = { name = "open_doors", forward = false }, + }, + open_doors_left = { + [3] = { name = "open_doors_left", forward = true }, + }, + close_doors_left = { + [3] = { name = "open_doors_left", forward = false }, + }, + open_doors_right = { + [3] = { name = "open_doors_right", forward = true }, + }, + close_doors_right = { + [3] = { name = "open_doors_right", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + railVehicle = { + topSpeed = 130, + weight = 49, + configs = { + { + axles = { + "vehicle/train/re_450_b/lod_2_w2.msh", + } + }, + { + axles = { + "vehicle/train/re_450_b/lod_1_w2.msh", + } + }, + { + axles = { + "vehicle/train/re_450_b/lod_0_w2.msh", + } + } + }, + soundSet = "waggon_modern" + }, + transportVehicle = { + capacities = { + { type = "PASSENGERS", capacity = 132 } + }, + carrier = "RAIL", + loadSpeed = 4, + seats = { + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(11.5, -0.6, 1.2)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(11.5, -1.15, 1.2)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(11.5, 0.4, 1.2)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(11.5, 0.9, 1.2)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(12.4, 0.6, 1.2)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(12.4, 1.15, 1.2)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(12.4, -0.4, 1.2)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(12.4, -0.9, 1.2)), crew = false }, + + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, -0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(0.3, -1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, 0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(0.3, 0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, 0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(1.2, 1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, -0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(1.2, -0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2, -0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(2, -1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2, 0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(2, 0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, 0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(2.9, 1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, -0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(2.9, -0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.7, -0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(3.7, -1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.7, 0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(3.7, 0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, 0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(4.6, 1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, -0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(4.6, -0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.3, -0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(5.3, -1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.3, 0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(5.3, 0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.2, 0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(6.2, 1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.2, -0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(6.2, -0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(7.3, 0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(7.3, 1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(7.3, -0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, -0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.2, -1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, 0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.2, 0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.3, 0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-0.3, 1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.3, -0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-0.3, -0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.9, -0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-2.9, -1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.9, 0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-2.9, 0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2, 0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-2, 1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2, -0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-2, -0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.6, -0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-4.6, -1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.6, 0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-4.6, 0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, 0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-3.7, 1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, -0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-3.7, -0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-6.2, -0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-6.2, -1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-6.2, 0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-6.2, 0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-5.3, 0.6, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-5.3, 1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-5.3, -0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-5.3, -0.9, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(.0, 0.0, 0.0), vec3.new(-7.2, 0.4, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-7.2, -1.1, 0.4)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-7.2, 0.9, 0.4)), crew = false }, + + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, -0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(0.3, -1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, 0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(0.3, 0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, 0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(1.2, 1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, -0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(1.2, -0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2, -0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(2, -1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2, 0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(2, 0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, 0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(2.9, 1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, -0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(2.9, -0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.7, -0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(3.7, -1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.7, 0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(3.7, 0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, 0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(4.6, 1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, -0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(4.6, -0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.3, -0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(5.3, -1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.3, 0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(5.3, 0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.2, 0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(6.2, 1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.2, -0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(6.2, -0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(7.3, 1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(7.3, -0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, -0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.2, -1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, 0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.2, 0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.3, 0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-0.3, 1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.3, -0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-0.3, -0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.9, -0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-2.9, -1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.9, 0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-2.9, 0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2, 0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-2, 1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2, -0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-2, -0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.6, -0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-4.6, -1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.6, 0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-4.6, 0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, 0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-3.7, 1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, -0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-3.7, -0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-6.2, -0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-6.2, -1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-6.2, 0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-6.2, 0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-5.3, 0.6, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-5.3, 1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-5.3, -0.4, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-5.3, -0.9, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-7.2, -1.1, 2.45)), crew = false }, + { group =18, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-7.2, 0.9, 2.45)), crew = false }, + }, + multipleUnitOnly = true + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + } + + }, + +} +end diff --git a/res/models/model/vehicle/train/roterpfeil.mdl b/res/models/model/vehicle/train/roterpfeil.mdl new file mode 100755 index 0000000..3ec010e --- /dev/null +++ b/res/models/model/vehicle/train/roterpfeil.mdl @@ -0,0 +1,258 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 12.747671127319, 1.6252870559692, 5.9047808647156, + }, + bbMin = { + -12.747671127319, -1.6252870559692, -0.53837102651596, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/roterpfeil/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/roterpfeil_lod_0_doors.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.1544, -1.4209, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/roterpfeil_lod_0_doors.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -6.1544, 1.4209, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/roterpfeil_lod_0_doors2.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -6.1544, -1.4209, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/roterpfeil_lod_0_doors2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.1544, 1.4209, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/roterpfeil_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.0916, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/roterpfeil_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.0916,0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/roterpfeil/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/train/roterpfeil/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(0.8,0.8,0.8),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 10.17, 0.0, 3.19)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(0.8,0.8,0.8),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 11.86, -0.81, 1.41)), + type = "MESH", + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(0.8,0.8,0.8),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 11.86, 0.81, 1.41)), + type = "MESH", + }, + }, + events = { + open_all_doors = { + [2] = { name = "open_doors", forward = true }, + [3] = { name = "open_doors", forward = true }, + [4] = { name = "open_doors", forward = true }, + [5] = { name = "open_doors", forward = true }, + }, + close_all_doors = { + [2] = { name = "open_doors", forward = false }, + [3] = { name = "open_doors", forward = false }, + [4] = { name = "open_doors", forward = false }, + [5] = { name = "open_doors", forward = false }, + }, + open_doors_left = { + [3] = { name = "open_doors", forward = true }, + [5] = { name = "open_doors", forward = true }, + }, + close_doors_left = { + [3] = { name = "open_doors", forward = false }, + [5] = { name = "open_doors", forward = false }, + }, + open_doors_right = { + [2] = { name = "open_doors", forward = true }, + [4] = { name = "open_doors", forward = true }, + }, + close_doors_right = { + [2] = { name = "open_doors", forward = false }, + [4] = { name = "open_doors", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 2270, + + }, + }, + metadata = { + description = { + name = _("CLe 2/4 Red Arrow"), + description = _("This single unit express rail car was very popular in Switzerland.") + }, + railVehicle = { + topSpeed = 125, + weight = 33, + engines = { + { type = "ELECTRIC", power = 315, tractiveEffort = 50 } + }, + configs = { + { + axles = { + "vehicle/train/roterpfeil/lod_0_w1.msh" + } + } + }, + soundSet = "train_electric_old" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "PASSENGERS", capacity = 70 } + }, + loadSpeed = 2, + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(8.0, -0.7, 0.9)), crew = true}, + -- passengers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.5, -0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-0.5, -1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.5, 0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-0.5, 1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.5, 0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(0.5, 1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.5, -0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(0.5, -1, 0.8)), crew = false}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.2, -0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(1.2, -1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.2, 0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(1.2, 1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.2, 0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(2.2, 1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.2, -0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(2.2, -1, 0.8)), crew = false}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.9, -0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(2.9, -1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.9, 0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(2.9, 1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.9, 0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(3.9, 1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.9, -0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(3.9, -1, 0.8)), crew = false}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.6, -0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(4.6, -1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.6, 0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(4.6, 1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5.6, 0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(5.6, 1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5.6, -0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(5.6, -1, 0.8)), crew = false}, + + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.2, -0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-2.2, -1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.2, 0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-2.2, 1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.2, 0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-1.2, 1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.2, -0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-1.2, -1, 0.8)), crew = false}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.9, -0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-3.9, -1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.9, 0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-3.9, 1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.9, 0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-2.9, 1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.9, -0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-2.9, -1, 0.8)), crew = false}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.6, -0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-5.6, -1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.6, 0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-5.6, 1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.6, 0.7, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-4.6, 1.1, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.6, -0.5, 0.8)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-4.6, -1, 0.8)), crew = false}, + + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + } + }, + +} +end diff --git a/res/models/model/vehicle/train/schienenbus.mdl b/res/models/model/vehicle/train/schienenbus.mdl new file mode 100755 index 0000000..6d95776 --- /dev/null +++ b/res/models/model/vehicle/train/schienenbus.mdl @@ -0,0 +1,388 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 6.770984172821, 1.4350030422211, 3.3898859024048, + }, + bbMin = { + -6.770984172821, -1.4350030422211, -0.488813996315, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/schienenbus/lod_2_lod2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/schienenbus/lod_2_w_lod2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9114, 0, 0.4608, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/schienenbus/lod_2_w_lod2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.9114, 0, 0.4608, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 220, + visibleTo = 1260, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/schienenbus/lod_1_lod1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/schienenbus/lod_1_w_lod1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.9114, 0, 0.4608, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/schienenbus/lod_1_w_lod1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9114, 0, 0.4608, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/schienenbus_doors_lod1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.4433, 1.4327, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/schienenbus_doors_lod1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.4433, -1.4010, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/schienenbus_doors_lod1.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -5.4433, -1.4327, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/schienenbus_doors_lod1.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -5.4433, 1.4010, 0, 1, + }, + type = "GROUP", + }, + }, + events = { + open_all_doors = { + [4] = { name = "open_all_doors", forward = true }, + [5] = { name = "open_all_doors_inv", forward = true }, + [6] = { name = "open_all_doors", forward = true }, + [7] = { name = "open_all_doors_inv", forward = true }, + }, + close_all_doors = { + [4] = { name = "open_all_doors", forward = false }, + [5] = { name = "open_all_doors_inv", forward = false }, + [6] = { name = "open_all_doors", forward = false }, + [7] = { name = "open_all_doors_inv", forward = false }, + }, + open_doors_left = { + [4] = { name = "open_all_doors", forward = true }, + [7] = { name = "open_all_doors_inv", forward = true }, + }, + close_doors_left = { + [4] = { name = "open_all_doors", forward = false }, + [7] = { name = "open_all_doors_inv", forward = false }, + }, + open_doors_right = { + [5] = { name = "open_all_doors_inv", forward = true }, + [6] = { name = "open_all_doors", forward = true }, + }, + close_doors_right = { + [5] = { name = "open_all_doors_inv", forward = false }, + [6] = { name = "open_all_doors", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 120, + visibleTo = 220, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/train/schienenbus/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/schienenbus/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9114, 0, 0.4608, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/schienenbus/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.9114, 0, 0.4608, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/schienenbus_doors_lod0.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.4433, 1.4327, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/schienenbus_doors_lod0.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.4433, -1.4010, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/schienenbus_doors_lod0.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -5.4433, -1.4327, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/schienenbus_doors_lod0.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -5.4433, 1.4010, 0, 1, + }, + type = "GROUP", + }, { + id = "vehicle/train/schienenbus/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,.9,.9),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 6.22, -0.003, 2.965)), + type = "MESH", + }, + + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,.8,.8),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 6.35, 0.845, 1.48)), + type = "MESH", + }, + + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,.8,.8),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 6.35, -0.845, 1.48)), + type = "MESH", + }, + + { + id = "vehicle/asset/lod_0_light_round_red.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,.8,.8),transf.degToRad( 180.0, 0.0, 0.0), vec3.new( -6.35, 0.845, 1.48)), + type = "MESH", + }, + + { + id = "vehicle/asset/lod_0_light_round_red.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,.8,.8),transf.degToRad( 180.0, 0.0, 0.0), vec3.new( -6.35, -0.845, 1.48)), + type = "MESH", + }, + + { + id = "vehicle/train/schienenbus/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [4] = { name = "open_all_doors", forward = true }, + [5] = { name = "open_all_doors_inv", forward = true }, + [6] = { name = "open_all_doors", forward = true }, + [7] = { name = "open_all_doors_inv", forward = true }, + }, + close_all_doors = { + [4] = { name = "open_all_doors", forward = false }, + [5] = { name = "open_all_doors_inv", forward = false }, + [6] = { name = "open_all_doors", forward = false }, + [7] = { name = "open_all_doors_inv", forward = false }, + }, + open_doors_left = { + [4] = { name = "open_all_doors", forward = true }, + [7] = { name = "open_all_doors_inv", forward = true }, + }, + close_doors_left = { + [4] = { name = "open_all_doors", forward = false }, + [7] = { name = "open_all_doors_inv", forward = false }, + }, + open_doors_right = { + [5] = { name = "open_all_doors_inv", forward = true }, + [6] = { name = "open_all_doors", forward = true }, + }, + close_doors_right = { + [5] = { name = "open_all_doors_inv", forward = false }, + [6] = { name = "open_all_doors", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 120, + + }, + }, + metadata = { + description = { + name = _("Railbus"), + description = _("These vehicles were diesel-powered, twin-axle rail buses of light construction. The motors were built into the chassis underneath the vehicle.") + }, + railVehicle = { + topSpeed = 90, + weight = 13, + engines = { + { type = "DIESEL", power = 110, tractiveEffort = 20 } + }, + configs = { + {}, + { + axles = { + "vehicle/train/schienenbus/lod_1_w_lod1.msh" + } + }, + { + axles = { + "vehicle/train/schienenbus/lod_0_w1.msh" + } + } + }, + soundSet = { name = "train_diesel", horn = "vehicle/truck_modern/horn.wav" } + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "PASSENGERS", capacity = 57 } + }, + loadSpeed = 2, + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(5.1, 0.00, 1)), crew = true}, + -- passengers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.35, -0.6, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-0.35, -1.1, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-0.35, 0.9, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.35, -0.4, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(0.35, -0.9, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(0.35, 0.9, 1)), crew = false}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.3, -0.6, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-2.3, -1.1, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-2.3, 0.9, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.3, -0.4, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-1.3, -0.9, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-1.3, 0.9, 1)), crew = false}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.1, -0.6, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-4.1, -1.1, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-4.1, 0.9, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.1, -0.4, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-3.1, -0.9, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-3.1, 0.9, 1)), crew = false}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.1, -0.6, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(4.1, -1.1, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(4.1, 0.9, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.1, -0.4, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(3.1, -0.9, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(3.1, 0.9, 1)), crew = false}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.3, -0.6, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(2.1, -1.1, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(2.1, 0.9, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.1, -0.4, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(1.1, -0.9, 1)), crew = false}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(1.1, 0.9, 1)), crew = false}, + }, + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + } + }, + +} +end diff --git a/res/models/model/vehicle/train/tgv.mdl b/res/models/model/vehicle/train/tgv.mdl new file mode 100755 index 0000000..23d326b --- /dev/null +++ b/res/models/model/vehicle/train/tgv.mdl @@ -0,0 +1,135 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 12.889254570007, 1.4482200145721, 5.9023561477661, + }, + bbMin = { + -10.999389801025, -1.4482200145721, -0.071776986122131, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + + { + animations = { + + }, + children = { + { + id = "vehicle/train/tgv/lod_0_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv_lod_0_bogie1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.5725002288818, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/tgv_lod_0_bogie1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -7.5725002288818, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/tgv/lod_0_interior_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/train/tgv/lod_0_logos_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.0,1.0),transf.degToRad( 26.0, -60.0, 0.0), vec3.new( 11.98, 0.8, 1.785)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.0,1.0),transf.degToRad( -40.0, -60.0, 0.0), vec3.new( 11.98, -0.82, 1.775)), + type = "MESH", + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 2190, + + }, + }, + metadata = { + railVehicle = { + topSpeed = 300, + weight = 70, + engines = { + { type = "ELECTRIC", power = 3225, tractiveEffort = 350 } + }, + configs = { + + { + axles = { + "vehicle/train/tgv/lod_0_w1.msh", + } + } + }, + soundSet = { name = "train_electric_modern", horn = "vehicle/train_electric_modern/horn_21_intercity125.wav" } + }, + transportVehicle = { + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(8.6, -0.7, 1.65)), crew = true}, + }, + carrier = "RAIL", + multipleUnitOnly = true, + + }, + availability = { + yearFrom = 3000, + yearTo = 3000, + + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + } + + + }, + +} +end diff --git a/res/models/model/vehicle/train/tgv_w1.mdl b/res/models/model/vehicle/train/tgv_w1.mdl new file mode 100755 index 0000000..2bb6123 --- /dev/null +++ b/res/models/model/vehicle/train/tgv_w1.mdl @@ -0,0 +1,370 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 12.709259986877, 1.4965599775314, 4.1977119445801, + }, + bbMin = { + -9.551776663208, -1.4965599775314, -0.071776986122131, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + --[[ + { + animations = { + + }, + children = { + { + id = "vehicle/train/tgv/tgv_lod_2_waggon_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv/tgv_lod_2_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.2533001899719, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv/tgv_lod_2_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.2533001899719, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv_lod_2_bogie1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.5516996383667, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/tgv_lod_2_bogie2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.5516996383667, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + open_doors_left = { + [3] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [3] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 350, + visibleTo = 4000, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/tgv/tgv_lod_1_waggon_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv/tgv_lod_1_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.2533001899719, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv/tgv_lod_1_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.2533001899719, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv_lod_1_bogie1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.5516996383667, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/tgv_lod_1_bogie2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.5516996383667, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + open_doors_left = { + [3] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [3] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 150, + visibleTo = 350, + + }, + ]]-- + { + animations = { + + }, + children = { + { + id = "vehicle/train/tgv/lod_0_waggon_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/train/tgv/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.2533001899719, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.2533001899719, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv_lod_0_bogie1.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.5516996383667, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/tgv_lod_0_bogie2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.5516996383667, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/tgv/lod_0_interior_waggon_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + open_doors_left = { + [3] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [3] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1920, + + }, + }, + metadata = { + availability = { + yearFrom = 3000, + yearTo = 3000, + + }, + cost = { + price = -1, + + }, + maintenance = { + lifespan = 50, + runningCosts = -1, + + }, + railVehicle = { + configs = { + --[[ + { + axles = { + "vehicle/train/tgv/tgv_lod_2_w1.msh", + } + }, + { + axles = { + "vehicle/train/tgv/tgv_lod_1_w1.msh", + } + }, + ]]-- + { + axles = { + "vehicle/train/tgv/lod_0_w1.msh", + } + } + }, + engines = { + + }, + soundSet = { + horn = "", + name = "waggon_modern", + + }, + topSpeed = 300, + weight = 32.5, + + }, + transportVehicle = { + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-1.5, 0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20, 0.0, 0.0), vec3.new(-1.5, 1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-1.5, -0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20, 0.0, 0.0), vec3.new(-1.5, -1.2, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(-0.6, -0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200, 0.0, 0.0), vec3.new(-0.6, -1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(-0.6, 0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200, 0.0, 0.0), vec3.new(-0.6, 1.2, 1)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(0.5, 0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20, 0.0, 0.0), vec3.new(0.5, 1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(0.5, -0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20, 0.0, 0.0), vec3.new(0.5, -1.2, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(1.4, -0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200, 0.0, 0.0), vec3.new(1.4, -1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(1.4, 0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200, 0.0, 0.0), vec3.new(1.4, 1.2, 1)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(2.5, 0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20, 0.0, 0.0), vec3.new(2.5, 1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(2.5, -0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20, 0.0, 0.0), vec3.new(2.5, -1.2, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(3.4, -0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200, 0.0, 0.0), vec3.new(3.4, -1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(3.4, 0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200, 0.0, 0.0), vec3.new(3.4, 1.2, 1)), }, + + + + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-3.5, 0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20, 0.0, 0.0), vec3.new(-3.5, 1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-3.5, -0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20, 0.0, 0.0), vec3.new(-3.5, -1.2, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(-2.6, -0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200, 0.0, 0.0), vec3.new(-2.6, -1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(-2.6, 0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200, 0.0, 0.0), vec3.new(-2.6, 1.2, 1)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-5.5, 0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20, 0.0, 0.0), vec3.new(-5.5, 1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-5.5, -0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20, 0.0, 0.0), vec3.new(-5.5, -1.2, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(-4.6, -0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200, 0.0, 0.0), vec3.new(-4.6, -1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(-4.6, 0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200, 0.0, 0.0), vec3.new(-4.6, 1.2, 1)), }, + + + + }, + capacities = { + { + capacity = 52, + type = "PASSENGERS", + + }, + }, + carrier = "RAIL", + loadSpeed = 1, + multipleUnitOnly = true + }, + + }, + +} +end diff --git a/res/models/model/vehicle/train/tgv_w2.mdl b/res/models/model/vehicle/train/tgv_w2.mdl new file mode 100755 index 0000000..ec21f14 --- /dev/null +++ b/res/models/model/vehicle/train/tgv_w2.mdl @@ -0,0 +1,379 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + -- minus 1.9886 + bbMax = { + 10.151077047729, 1.4965599775314, 3.9383640289307, + }, + bbMin = { + -8.915776983643, -1.4965599775314, -0.071776986122131, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + --[[ + { + animations = { + + }, + children = { + { + id = "vehicle/train/tgv/tgv_lod_2_waggon_mid.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv/tgv_lod_2_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.8803000450134, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv/tgv_lod_2_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.8803000450134, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv_lod_2_bogie2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10.151000022888, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/tgv_lod_2_bogie2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.9156999588013, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + open_doors_left = { + [3] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [3] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 350, + visibleTo = 4000, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/tgv/tgv_lod_1_waggon_mid.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv/tgv_lod_1_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.8803000450134, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv/tgv_lod_1_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.8803000450134, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv_lod_1_bogie2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10.151000022888, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/tgv_lod_1_bogie2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.9156999588013, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + open_doors_left = { + [3] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [3] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 150, + visibleTo = 350, + + }, + ]]-- + + { + animations = { + + }, + children = { + { + id = "vehicle/train/tgv/lod_0_waggon_mid.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.8803000450134, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7.8803000450134, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/tgv_lod_0_bogie2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10.151000022888, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/tgv_lod_0_bogie2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -8.9156999588013, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/tgv/lod_0_interior_waggon_mid.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + open_doors_left = { + [3] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [3] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1820, + + }, + }, + metadata = { + availability = { + yearFrom = 3000, + yearTo = 3000, + + }, + cost = { + price = -1, + + }, + maintenance = { + lifespan = 50, + runningCosts = -1, + + }, + railVehicle = { + configs = { + --[[ + { + axles = { + "vehicle/train/tgv/tgv_lod_2_w1.msh", + } + }, + { + axles = { + "vehicle/train/tgv/tgv_lod_1_w1.msh", + } + }, + ]]-- + { + axles = { + "vehicle/train/tgv/lod_0_w1.msh", + } + } + }, + engines = { + + }, + soundSet = { + horn = "", + name = "waggon_modern", + + }, + topSpeed = 300, + weight = 30, + + }, + transportVehicle = { + capacities = { + { + capacity = 92, + type = "PASSENGERS", + + }, + }, + carrier = "RAIL", + loadSpeed = 1, + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(3.9, -0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200, 0.0, 0.0), vec3.new(3.9, -1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(3.9, 0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200, 0.0, 0.0), vec3.new(3.9, 1.2, 1)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(2.8, -0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200, 0.0, 0.0), vec3.new(2.8, -1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(2.8, 0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200, 0.0, 0.0), vec3.new(2.8, 1.2, 1)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(0.6, 0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20, 0.0, 0.0), vec3.new(0.6, 1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(0.6, -0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20, 0.0, 0.0), vec3.new(0.6, -1.2, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(1.6, -0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200, 0.0, 0.0), vec3.new(1.6, -1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(1.6, 0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200, 0.0, 0.0), vec3.new(1.6, 1.2, 1)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-1.5, 0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20, 0.0, 0.0), vec3.new(-1.5, 1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-1.5, -0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20, 0.0, 0.0), vec3.new(-1.5, -1.2, 1)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-.4, 0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20, 0.0, 0.0), vec3.new(-.4, 1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-.4, -0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20, 0.0, 0.0), vec3.new(-.4, -1.2, 1)), }, + + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-3.5, 0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20, 0.0, 0.0), vec3.new(-3.5, 1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-3.5, -0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20, 0.0, 0.0), vec3.new(-3.5, -1.2, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(-2.6, -0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200, 0.0, 0.0), vec3.new(-2.6, -1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(-2.6, 0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200, 0.0, 0.0), vec3.new(-2.6, 1.2, 1)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-5.5, 0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20, 0.0, 0.0), vec3.new(-5.5, 1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(-5.5, -0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20, 0.0, 0.0), vec3.new(-5.5, -1.2, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(-4.6, -0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200, 0.0, 0.0), vec3.new(-4.6, -1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(-4.6, 0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200, 0.0, 0.0), vec3.new(-4.6, 1.2, 1)), }, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(4.9, 0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20, 0.0, 0.0), vec3.new(4.9, 1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0, 0.0, 0.0), vec3.new(4.9, -0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20, 0.0, 0.0), vec3.new(4.9, -1.2, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(5.85, -0.5, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200, 0.0, 0.0), vec3.new(5.85, -1, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180, 0.0, 0.0), vec3.new(5.85, 0.7, 1)), }, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200, 0.0, 0.0), vec3.new(5.85, 1.2, 1)), }, + + + + }, + multipleUnitOnly = true + }, + }, + +} +end diff --git a/res/models/model/vehicle/train/twindexx.mdl b/res/models/model/vehicle/train/twindexx.mdl new file mode 100755 index 0000000..e3d6a57 --- /dev/null +++ b/res/models/model/vehicle/train/twindexx.mdl @@ -0,0 +1,511 @@ + +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 14.608251571655, 1.4764100313187, 5.8900079727173, + }, + bbMin = { + -11.848377227783, -1.4764100313187, -0.064345985651016, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/twindexx/lod_2_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.8775000572205, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_2_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.8773999214172, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_2_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -3.8775000572205, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_2_d2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 3.8773999214172, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_2_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx_lod_2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.1443004608154, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/twindexx_lod_2_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -8.2482995986938, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + { name = "opend1", forward = true }, + { name = "opend2", forward = true }, + { name = "opend1", forward = true }, + { name = "opend2", forward = true }, + }, + close_all_doors = { + { name = "opend1", forward = false }, + { name = "opend2", forward = false }, + { name = "opend1", forward = false }, + { name = "opend2", forward = false }, + }, + open_doors_left = { + [1] = { name = "opend1", forward = true }, + [2] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [1] = { name = "opend1", forward = false }, + [2] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [3] = { name = "opend1", forward = true }, + [4] = { name = "opend2", forward = true }, + }, + close_doors_right = { + [3] = { name = "opend1", forward = false }, + [4] = { name = "opend2", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 450, + visibleTo = 2320, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/twindexx/lod_1_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.8775000572205, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_1_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.8773999214172, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_1_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -3.8775000572205, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_1_d2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 3.8773999214172, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_1_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx_lod_1_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.1443004608154, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/twindexx_lod_1_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -8.2482995986938, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + { name = "opend1", forward = true }, + { name = "opend2", forward = true }, + { name = "opend1", forward = true }, + { name = "opend2", forward = true }, + }, + close_all_doors = { + { name = "opend1", forward = false }, + { name = "opend2", forward = false }, + { name = "opend1", forward = false }, + { name = "opend2", forward = false }, + }, + open_doors_left = { + [1] = { name = "opend1", forward = true }, + [2] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [1] = { name = "opend1", forward = false }, + [2] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [3] = { name = "opend1", forward = true }, + [4] = { name = "opend2", forward = true }, + }, + close_doors_right = { + [3] = { name = "opend1", forward = false }, + [4] = { name = "opend2", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 150, + visibleTo = 450, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/twindexx/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.8775000572205, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.8773999214172, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_0_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -3.8775000572205, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_0_d2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 3.8773999214172, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_0_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.1443004608154, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/twindexx_lod_0_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -8.2482995986938, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/twindexx/lod_0_interior_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.4177, 0, 0, 1, + }, + type = "MESH", + + }, + + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.7,0.7),transf.degToRad( 14.0, -35.0, 0.0), vec3.new( 13.79, 0.66, 2.22)), + type = "MESH", + }, + + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.7,0.7),transf.degToRad( -14.0, -35.0, 0.0), vec3.new( 13.79, -0.66, 2.22)), + type = "MESH", + }, + { + id = "vehicle/train/twindexx/lod_0_logos_front.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + { name = "opend1", forward = true }, + { name = "opend2", forward = true }, + { name = "opend1", forward = true }, + { name = "opend2", forward = true }, + }, + close_all_doors = { + { name = "opend1", forward = false }, + { name = "opend2", forward = false }, + { name = "opend1", forward = false }, + { name = "opend2", forward = false }, + }, + open_doors_left = { + [1] = { name = "opend1", forward = true }, + [2] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [1] = { name = "opend1", forward = false }, + [2] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [3] = { name = "opend1", forward = true }, + [4] = { name = "opend2", forward = true }, + }, + close_doors_right = { + [3] = { name = "opend1", forward = false }, + [4] = { name = "opend2", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 150, + + }, + }, + metadata = { + availability = { + yearFrom = 3000, + yearTo = 3000, + + }, + cost = { + price = -1, + + }, + description = { + description = "", + icon = "", + name = "DUALSTOX", + smallIcon = "", + + }, + maintenance = { + lifespan = 50, + runningCosts = -1, + + }, + railVehicle = { + configs = { + { + axles = { + "vehicle/train/twindexx/lod_0_w1.msh", + }, + fakeBogies = { + + }, + + }, + { + axles = { + "vehicle/train/twindexx/lod_1_w1.msh", + }, + fakeBogies = { + + }, + + }, + { + axles = { + "vehicle/train/twindexx/lod_0_w1.msh", + }, + fakeBogies = { + + }, + + }, + }, + engines = { + { + power = 1900, + tractiveEffort = 280, + type = "ELECTRIC", + + }, + }, + soundSet = { + horn = "vehicle/train_electric_modern/horn_2.wav", + name = "train_electric_modern", + + }, + topSpeed = 200, + weight = 55, + + }, + transportVehicle = { + capacities = { + { + capacity = 90, + type = "PASSENGERS", + + }, + }, + carrier = "RAIL", + loadSpeed = 4, + seats = { + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(11.8, -0.1, 1.4)), crew = true, standing = false }, + + -- passengers + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, -0.7, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, -1.1, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, 0.5, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, 0.95, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, 0.7, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, 1.1, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, -0.5, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, -0.9, 0.5)), }, + + + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, -0.7, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, -1.1, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, 0.5, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, 0.95, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, 0.7, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, 1.1, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, -0.5, 0.5)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, -0.95, 0.5)), }, + + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, -0.7, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, -1.1, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, 0.5, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, 0.95, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, 0.7, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, 1.1, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, -0.5, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, -0.9, 2.6)), }, + + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.1, -0.7, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.1, -1.1, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.1, 0.5, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.1, 0.95, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.1, 0.7, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.1, 1.1, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.1, -0.5, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.1, -0.9, 2.6)), }, + + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, -0.7, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, -1.1, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, 0.5, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, 0.95, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, 0.7, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, 1.1, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, -0.5, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, -0.9, 2.6)), }, + + + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, -0.7, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, -1.1, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, 0.5, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, 0.95, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, 0.7, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, 1.1, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, -0.5, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, -0.95, 2.6)), }, + + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-9.5, -0.7, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-9.5, -1.1, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-9.5, 0.5, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-9.5, 0.95, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-8.5, 0.7, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-8.5, 1.1, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-8.5, -0.5, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-8.5, -0.95, 2.6)), }, + + + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.8, 0.5, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.8, 0.95, 2.6)), }, + + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.8, 0.7, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.8, 1.1, 2.6)), }, + + { group =5, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-4.5, 0.9, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-5, 0.9, 2.6)), }, + + { group =5, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-4.5, -0.9, 2.6)), }, + { group =5, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-5, -0.9, 2.6)), }, + + }, + multipleUnitOnly = true, + + }, + + }, + +} +end diff --git a/res/models/model/vehicle/train/twindexx_w1.mdl b/res/models/model/vehicle/train/twindexx_w1.mdl new file mode 100755 index 0000000..f831733 --- /dev/null +++ b/res/models/model/vehicle/train/twindexx_w1.mdl @@ -0,0 +1,551 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 13.272152900696, 1.4717669487, 4.8094282150269, + }, + bbMin = { + -13.272152900696, -1.4717669487, -0.064345985651016, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/train/twindexx/lod_2_d5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_2_d6.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_2_d5.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_2_d6.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx_lod_2_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -9.6660995483398, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/twindexx_lod_2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.6660995483398, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/twindexx/lod_2_back.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + { name = "opend5", forward = true }, + { name = "opend6", forward = true }, + { name = "opend5", forward = true }, + { name = "opend6", forward = true }, + }, + close_all_doors = { + { name = "opend5", forward = false }, + { name = "opend6", forward = false }, + { name = "opend5", forward = false }, + { name = "opend6", forward = false }, + }, + open_doors_left = { + [1] = { name = "opend5", forward = true }, + [2] = { name = "opend6", forward = true }, + }, + close_doors_left = { + [1] = { name = "opend5", forward = false }, + [2] = { name = "opend6", forward = false }, + }, + open_doors_right = { + [3] = { name = "opend5", forward = true }, + [4] = { name = "opend6", forward = true }, + }, + close_doors_right = { + [3] = { name = "opend5", forward = false }, + [4] = { name = "opend6", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 450, + visibleTo = 2140, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/twindexx/lod_1_d5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_1_d6.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_1_d5.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_1_d6.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx_lod_1_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -9.6660995483398, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/twindexx_lod_1_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.6660995483398, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/twindexx/lod_1_back.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + { name = "opend5", forward = true }, + { name = "opend6", forward = true }, + { name = "opend5", forward = true }, + { name = "opend6", forward = true }, + }, + close_all_doors = { + { name = "opend5", forward = false }, + { name = "opend6", forward = false }, + { name = "opend5", forward = false }, + { name = "opend6", forward = false }, + }, + open_doors_left = { + [1] = { name = "opend5", forward = true }, + [2] = { name = "opend6", forward = true }, + }, + close_doors_left = { + [1] = { name = "opend5", forward = false }, + [2] = { name = "opend6", forward = false }, + }, + open_doors_right = { + [3] = { name = "opend5", forward = true }, + [4] = { name = "opend6", forward = true }, + }, + close_doors_right = { + [3] = { name = "opend5", forward = false }, + [4] = { name = "opend6", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 150, + visibleTo = 450, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/train/twindexx/lod_0_d5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_0_d6.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_0_d5.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_0_d6.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 5.2399997711182, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx_lod_0_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -9.6660995483398, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/twindexx_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 9.6660995483398, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/train/twindexx/lod_0_back.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/train/twindexx/lod_0_interior_back.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/train/twindexx/lod_0_logos_back.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + { name = "opend5", forward = true }, + { name = "opend6", forward = true }, + { name = "opend5", forward = true }, + { name = "opend6", forward = true }, + }, + close_all_doors = { + { name = "opend5", forward = false }, + { name = "opend6", forward = false }, + { name = "opend5", forward = false }, + { name = "opend6", forward = false }, + }, + open_doors_left = { + [1] = { name = "opend5", forward = true }, + [2] = { name = "opend6", forward = true }, + }, + close_doors_left = { + [1] = { name = "opend5", forward = false }, + [2] = { name = "opend6", forward = false }, + }, + open_doors_right = { + [3] = { name = "opend5", forward = true }, + [4] = { name = "opend6", forward = true }, + }, + close_doors_right = { + [3] = { name = "opend5", forward = false }, + [4] = { name = "opend6", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 150, + + }, + }, + metadata = { + availability = { + yearFrom = 3000, + yearTo = 3000, + + }, + cost = { + price = -1, + + }, + maintenance = { + lifespan = 50, + runningCosts = -1, + + }, + railVehicle = { + configs = { + { + axles = { + "vehicle/train/twindexx/lod_2_w1.msh", + }, + fakeBogies = { + + }, + + }, + { + axles = { + "vehicle/train/twindexx/lod_1_w1.msh", + }, + fakeBogies = { + + }, + + }, + { + axles = { + "vehicle/train/twindexx/lod_0_w1.msh", + }, + fakeBogies = { + + }, + + }, + }, + engines = { + + }, + soundSet = { + horn = "", + name = "waggon_modern", + + }, + topSpeed = 200, + weight = 45, + + }, + transportVehicle = { + capacities = { + { + capacity = 152, + type = "PASSENGERS", + + }, + }, + carrier = "RAIL", + loadSpeed = 4, + seats = { + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.3, -0.7, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.3, -1.1, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.3, 0.5, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.3, 0.95, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.3, 0.7, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.3, 1.1, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.3, -0.5, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.3, -0.9, 0.5)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4, -0.7, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4, -1.1, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4, 0.5, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4, 0.95, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3, 0.7, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3, 1.1, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3, -0.5, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3, -0.9, 0.5)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, -0.7, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, -1.1, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, 0.5, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, 0.95, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.3, 0.7, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.3, 1.1, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.3, -0.5, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.3, -0.9, 0.5)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3, -0.7, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3, -1.1, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3, 0.5, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3, 0.95, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4, 0.7, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4, 1.1, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4, -0.5, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4, -0.9, 0.5)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.45, -0.7, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.45, -1.1, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.45, 0.5, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.45, 0.95, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.45, 0.7, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.45, 1.1, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.45, -0.5, 0.5)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.45, -0.9, 0.5)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, -0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, -1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, 0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, 0.95, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, 0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, 1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, -0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.9, -0.9, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, -0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, -1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, 0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.3, 0.95, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, 0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, 1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, -0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.3, -0.9, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, -0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, -1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, 0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.5, 0.95, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, 0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, 1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, -0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.5, -0.9, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, -0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, -1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, 0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.2, 0.95, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, 0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, 1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, -0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.2, -0.95, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-9.2, 0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-9.2, 0.95, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-8.2, 0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-8.2, 1.1, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-10.9, -0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-10.9, -1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-10.9, 0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-10.9, 0.95, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-9.9, 0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-9.9, 1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-9.9, -0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-9.9, -0.95, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.7, -0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.7, -1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.7, 0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.7, 0.95, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, 0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, 1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, -0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, -0.95, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.6, -0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.6, -1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.6, 0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(3.6, 0.95, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, 0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, 1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, -0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.6, -0.95, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-5.5, 0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-6, 0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-6.5, 0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-7, 0.9, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-5.5, -0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-6, -0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-6.5, -0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-7, -0.9, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(5.5, 0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(6, 0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(6.5, 0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(7, 0.9, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(5.5, -0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(6, -0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(6.5, -0.9, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(7, -0.9, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(8.2, 0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(8.2, 0.95, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(9.2, 0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(9.2, 1.1, 2.6)), }, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(9.9, -0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(9.9, -1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(9.9, 0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(9.9, 0.95, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(10.9, 0.7, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(10.9, 1.1, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(10.9, -0.5, 2.6)), }, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(10.9, -0.95, 2.6)), }, + + + + }, + multipleUnitOnly = true, + + }, + + }, + +} +end diff --git a/res/models/model/vehicle/tram/be4_6mirage.mdl b/res/models/model/vehicle/tram/be4_6mirage.mdl new file mode 100755 index 0000000..564e435 --- /dev/null +++ b/res/models/model/vehicle/tram/be4_6mirage.mdl @@ -0,0 +1,324 @@ +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 diff --git a/res/models/model/vehicle/tram/be5_6.mdl b/res/models/model/vehicle/tram/be5_6.mdl new file mode 100755 index 0000000..f63085f --- /dev/null +++ b/res/models/model/vehicle/tram/be5_6.mdl @@ -0,0 +1,394 @@ +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 diff --git a/res/models/model/vehicle/tram/dampftram.mdl b/res/models/model/vehicle/tram/dampftram.mdl new file mode 100755 index 0000000..7bdfab8 --- /dev/null +++ b/res/models/model/vehicle/tram/dampftram.mdl @@ -0,0 +1,133 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/tram/dampftram_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/dampftram_lod_0_back.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.1901, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1180, + + }, + }, + metadata = { + description = { + name = _("Steam tram"), + description = _("Twin axle steam tram, used for example in Vienna as \"Dampftramway\".") + }, + railVehicle = { + configs = { + { + axles = { "vehicle/tram/dampftram/lod_0_w3.msh","vehicle/tram/dampftram/lod_0_w1.msh",}, + + } + }, + topSpeed = 20, + weight = 8, + engines = { + { type = "STEAM", power = 20, tractiveEffort = 6 } + }, + soundSet = "tram_old" + }, + transportVehicle = { + carrier = "TRAM", + capacities = { + { type = "PASSENGERS", capacity = 28 } + }, + loadSpeed = 2, + + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.6, -0.1, .82)), crew = true, standing = true}, + -- front + + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.0, 0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.5, 0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(1.5, 0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(1, 0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(2, 0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-0.5, 0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-1.5, 0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-1, 0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-2, 0.68, 0.45)) }, + + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.0, -0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.5, -0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(1.5, -0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(1, -0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(2, -0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-0.5, -0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1.5, -0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1, -0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-2, -0.68, 0.45)) }, + + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1, -0.68, 0.45)) }, + { group = 11 , transf = transf.rotZYXTransl(transf.degToRad(-60.0, 0.0, 0.0), vec3.new(-3, -0.3, 0.5)),standing = true }, + + } + }, + availability = { + yearFrom = 1877, + yearTo = 1930 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + }, + particleSystem = { + emitters = { + { + position = { 1.0999, .0, 3.3066}, + velocity = { .0, .0, 7.0 }, + color = { .3, .3, .3 }, + frequency = 60, + lifeTime = 10.0, + size01 = { .7, 8.0 }, + child = 2 + }, + } + } + + + }, + +} +end diff --git a/res/models/model/vehicle/tram/halle.mdl b/res/models/model/vehicle/tram/halle.mdl new file mode 100755 index 0000000..feccc1e --- /dev/null +++ b/res/models/model/vehicle/tram/halle.mdl @@ -0,0 +1,219 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 3.4578530788422, 0.98381000757217, 4.8104958534241, + }, + bbMin = { + -3.4319260120392, -0.98381000757217, -0.33427900075912, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/tram/halle/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/tram/halle/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.881, -0.8389, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/tram/halle/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.881, 0.8389, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/tram/halle/lod_0_d2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.881, -0.8389, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/tram/halle/lod_0_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.881, 0.8389, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/tram/halle/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.8475, 0, 0.304, 1, + }, + type = "MESH", + + }, { + id = "vehicle/tram/halle/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.8475, 0, 0.304, 1, + }, + type = "MESH", + + }, { + id = "vehicle/tram/halle/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.4,1.4,1.4),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 3.46, 0.0, 3.16)), + type = "MESH", + }, { + id = "vehicle/tram/halle/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + + }, + events = { + close_all_doors = { + [2] = { + forward = false, + name = "opend1", + }, + [3] = { + forward = false, + name = "opend2", + }, + [4] = { + forward = false, + name = "opend2", + }, + [5] = { + forward = false, + name = "opend1", + }, + }, + open_all_doors = { + [2] = { + forward = true, + name = "opend1", + }, + [3] = { + forward = true, + name = "opend2", + }, + [4] = { + forward = true, + name = "opend2", + }, + [5] = { + forward = true, + name = "opend1", + }, + }, + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1210, + + }, + }, + metadata = { + description = { + name = _("Halle tram"), + description = _("Twin axle electrical tram with open platforms on both ends, used by the \"Allgemeine Elektricitaets-Gesellschaft Stadtbahn Halle\".") + }, + railVehicle = { + configs = { + { + axles = { "vehicle/tram/halle/lod_0_w1.msh"}, + + } + }, + topSpeed = 27, + weight = 12, + engines = { + { type = "ELECTRIC", power = 50, tractiveEffort = 20 } + }, + soundSet = "tram_old" + }, + transportVehicle = { + carrier = "TRAM", + capacities = { + { type = "PASSENGERS", capacity = 36 } + }, + loadSpeed = 2, + + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.8, -0.1, .64)), 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.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.5, 0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(1.5, 0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(1, 0.6, 0.45)) }, + + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-0.5, 0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-1.5, 0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-1, 0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-2, 0.6, 0.45)) }, + + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.0, -0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.5, -0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(1.5, -0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(1, -0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(2, -0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-0.5, -0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1.5, -0.6, 0.45)) }, + { group =1 , transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-1, -0.6, 0.45)) }, + + + { 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 }, + + } + }, + availability = { + yearFrom = 1887, + yearTo = 1945 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + }, + +} +end diff --git a/res/models/model/vehicle/tram/schst.mdl b/res/models/model/vehicle/tram/schst.mdl new file mode 100755 index 0000000..ba1bcde --- /dev/null +++ b/res/models/model/vehicle/tram/schst.mdl @@ -0,0 +1,166 @@ +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 diff --git a/res/models/model/vehicle/tram/strassenbahn1850.mdl b/res/models/model/vehicle/tram/strassenbahn1850.mdl new file mode 100755 index 0000000..a4696f2 --- /dev/null +++ b/res/models/model/vehicle/tram/strassenbahn1850.mdl @@ -0,0 +1,132 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/tram/strassenbahn_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/tram/strassenbahn_lod_0_guide.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9697, 0, 0.5662, 1, + }, + type = "GROUP", + + },{ + id = "ross1-lod0.grp", + transf = { + 0.32, 0, 0, 0, 0, 0.32, 0, 0, 0, 0, 0.32, 0, 5.3723, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + drive = { + [3] = { + forward = true, + name = "walk", + }, + }, + close_all_doors = { + [1] = { + forward = false, + name = "open_all_doors", + }, + }, + open_all_doors = { + [1] = { + forward = true, + name = "open_all_doors", + + }, + }, + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 1010, + + }, + }, + metadata = { + description = { + name = _("Horse tram"), + description = _("The first trams in history were horse-driven. Thanks to the rail only one horse was enough.") + }, + railVehicle = { + configs = { + { + axles = { "vehicle/tram/strassenbahn_1850/lod_0_w.msh" }, + fakeBogies = { + { group = 13, position = 0, offset = 2.6137 } , + { group = 13, position = 4.8723, offset = 0.0 } , + { group = 15, position = 4.8723, offset = 0.0 } + } + + } + }, + topSpeed = 15, + weight = 1, + engines = { + { type = "HORSE", power = 2, tractiveEffort = 2 } + }, + soundSet = "tram_horse" + }, + transportVehicle = { + carrier = "TRAM", + capacities = { + { type = "PASSENGERS", capacity = 20 } + }, + loadSpeed = 2, + seats = { + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.4, -0.1, .64)), crew = true, standing = true}, + --passangers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(1.2, -0.6, .64)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.7, -0.6, .64)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(0.2, -0.6, .64)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-0.3, -0.6, .64)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-0.8, -0.6, .64)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(1.2, 0.6, .64)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.7, 0.6, .64)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(0.2, 0.6, .64)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-0.3, 0.6, .64)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-90.0, 0.0, 0.0), vec3.new(-0.8, 0.6, .64)),}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(90.0, 0.0, 0.0), vec3.new(-2.1, 0.2, .64)),standing = true}, + + + } + }, + availability = { + yearFrom = 1850, + yearTo = 1905 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + }, + + }, + +} +end diff --git a/res/models/model/vehicle/tram/typ1.mdl b/res/models/model/vehicle/tram/typ1.mdl new file mode 100755 index 0000000..dea75eb --- /dev/null +++ b/res/models/model/vehicle/tram/typ1.mdl @@ -0,0 +1,160 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/tram/typ1_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/typ1_lod_0_back.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.55, 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 = 1850, + + }, + }, + metadata = { + description = { + name = _("Type T1"), + description = _("From this Type T1, built by Gothaer Waggonbau/Bothman, one unit is still running on a museum line.") + }, + railVehicle = { + configs = { + { + axles = { "vehicle/tram/typ1/lod_0_w1.msh" }, + + } + }, + topSpeed = 60, + weight = 26, + engines = { + { type = "ELECTRIC", power = 190, tractiveEffort = 45 } + }, + soundSet = "tram_old" + }, + transportVehicle = { + carrier = "TRAM", + capacities = { + { type = "PASSENGERS", capacity = 65 } + }, + loadSpeed = 4, + seats = { + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.2, 0.0, 0.7)), crew = true, standing = true }, + --passangers + --front + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(1.67, -0.55, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(2.7, -0.35, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(1.67, 0.35, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(2.7, 0.55, .7)),}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(0.25, -0.55, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(1.25, -0.35, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(0.25, 0.35, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(1.25, 0.55, .7)),}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.2, -0.55, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-0.2, -0.35, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.2, 0.35, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-0.2, 0.55, .7)),}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-2.7, -0.55, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-1.7, -0.35, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-2.7, 0.35, .7)),}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-1.7, 0.55, .7)),}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(-4, 0.15, .7)), standing = true}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(98.0, 0.0, 0.0), vec3.new(-2, 0.05, .7)), standing = true}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-98.0, 0.0, 0.0), vec3.new(1.7, 0.05, .7)), standing = true}, + + --back + { group =20, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(1.67, -0.55, 0.7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(2.7, -0.35, .7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(1.67, 0.35, .7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(2.7, 0.55, .7)),}, + + { group =20, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(0.25, -0.55, .7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(1.25, -0.35, .7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(0.25, 0.35, .7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(1.25, 0.55, .7)),}, + + { group =20, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.2, -0.55, .7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-0.2, -0.35, .7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.2, 0.35, .7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-0.2, 0.55, .7)),}, + + { group =20, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-2.7, -0.55, .7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(-200.0, 0.0, 0.0), vec3.new(-1.7, -0.35, .7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-2.7, 0.35, .7)),}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-1.7, 0.55, .7)),}, + + { group =20, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(-4, 0.15, .7)), standing = true}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(98.0, 0.0, 0.0), vec3.new(-2, 0.05, .7)), standing = true}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(-98.0, 0.0, 0.0), vec3.new(1.7, 0.05, .7)), standing = true}, + { group =20, transf = transf.rotZYXTransl(transf.degToRad(-98.0, 0.0, 0.0), vec3.new(3.9, 0.05, .7)), standing = true}, + + + + } + }, + availability = { + yearFrom = 1928, + yearTo = 1959 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 35 + } + }, + +} +end diff --git a/res/models/model/vehicle/truck/40_tons.mdl b/res/models/model/vehicle/truck/40_tons.mdl new file mode 100755 index 0000000..dd6464f --- /dev/null +++ b/res/models/model/vehicle/truck/40_tons.mdl @@ -0,0 +1,271 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 6.8575000762939, 1.3035019636154, 3.2154319286346, + }, + bbMin = { + -5.9623646736145, -1.3035019636154, -0.0072360038757324, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/truck/40_tons_lod_2_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.5114998817444, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/truck/40_tons_lod_2_trailer.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.2750000953674, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 250, + visibleTo = 1190, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/truck/40_tons_lod_1_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.5114998817444, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/truck/40_tons_lod_1_trailer.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.2750000953674, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 150, + visibleTo = 250, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/truck/40_tons_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.5114998817444, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/truck/40_tons_lod_0_trailer.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.2750000953674, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 150, + + }, + }, + metadata = { + availability = { + yearFrom = 1995, + yearTo = 2003, + + }, + cost = { + price = -1, + + }, + description = { + name = _("40 Tons Truck"), + description = _("A six axle semi-trailer truck, equipped with a V8 turbo diesel engine of 456 kW power."), + + }, + maintenance = { + lifespan = 35, + runningCosts = -1, + + }, + roadVehicle = { + configs = { + { + axles = { + "vehicle/truck/40_tons/lod_2_w2.msh", + }, + fakeBogies = { + { + group = 1, + offset = 0, + position = 4, + + }, { + group = 7, + offset = 0, + position = 2.5750000476837, + + }, { + group = 7, + offset = 0, + position = -1, + + }, + }, + wheels = { + "vehicle/truck/40_tons/lod_2_w1.msh", + }, + + }, { + axles = { + "vehicle/truck/40_tons/lod_1_w2.msh", + }, + fakeBogies = { + { + group = 1, + offset = 0, + position = 4, + + }, { + group = 7, + offset = 0, + position = 2.5750000476837, + + }, { + group = 7, + offset = 0, + position = -1, + + }, + }, + wheels = { + "vehicle/truck/40_tons/lod_1_w1.msh", + }, + + }, + { + axles = { + "vehicle/truck/40_tons/lod_0_w2.msh", + }, + fakeBogies = { + { + group = 1, + offset = 0, + position = 4, + + }, { + group = 14, + offset = 0, + position = 2.5750000476837, + + }, { + group = 14, + offset = 0, + position = -1, + + }, + }, + wheels = { + "vehicle/truck/40_tons/lod_0_w1.msh", + }, + + }, + }, + power = 456, + soundSet = { + horn = "", + name = "truck_modern", + + }, + topSpeed = 100, + tractiveEffort = 60, + weight = 10, + + }, + transportVehicle = { + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.3, 0.5, 0.7)), crew = true}, + }, + capacities = { + { type = "LOGS", capacity = 80 }, + { type = "LIVESTOCK", capacity = 80 }, + { type = "COAL", capacity = 80 }, + { type = "IRON_ORE", capacity = 80 }, + { type = "STONE", capacity = 80 }, + { type = "GRAIN", capacity = 80 }, + { type = "CRUDE", capacity = 80 }, + { type = "STEEL", capacity = 80 }, + { type = "PLANKS", capacity = 80 }, + { type = "PLASTIC", capacity = 80 }, + { type = "SLAG", capacity = 80 }, + { type = "OIL", capacity = 80 }, + { type = "CONSTRUCTION_MATERIALS", capacity = 80 }, + { type = "MACHINES", capacity = 80 }, + { type = "FUEL", capacity = 80 }, + { type = "TOOLS", capacity = 80 }, + { type = "FOOD", capacity = 80 }, + { type = "GOODS", capacity = 80 }, + }, + carrier = "ROAD", + loadSpeed = 5 + }, + + }, + +} +end diff --git a/res/models/model/vehicle/truck/benz1912_lkw.mdl b/res/models/model/vehicle/truck/benz1912_lkw.mdl new file mode 100755 index 0000000..60839e0 --- /dev/null +++ b/res/models/model/vehicle/truck/benz1912_lkw.mdl @@ -0,0 +1,261 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 2.9773321151733, 1.0804109573364, 2.9427399635315, + }, + bbMin = { + -2.9773321151733, -1.0804109573364, -0.47391700744629, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/truck/benz_1912_lkw/lod_2_benz1912lkw.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6878, 0, 0.4427, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_2_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.276, -0.8273, 0.464, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_2_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.276, 0.8273, 0.464, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 180, + visibleTo = 820, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/truck/benz_1912_lkw/lod_1_benz1912lkw.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6878, 0, 0.4427, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_1_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.276, -0.8273, 0.464, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_1_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.276, 0.8273, 0.464, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 80, + visibleTo = 180, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/truck/benz_1912_lkw/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6878, 0, 0.4936, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_0_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.276, -0.8273, 0.464, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_0_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.276, 0.8273, 0.464, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/benz_1912_lkw/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 80, + + }, + }, + metadata = { + description = { + name = _("Benz"), + description = _("A typical early lorry by Mercedes-Benz still running on solid rubber tires.") + }, + roadVehicle = { + topSpeed = 40, + weight = 1.5, + power = 35, + tractiveEffort = 5, + configs = { + { + }, + { + wheels = { + "vehicle/truck/benz_1912_lkw/lod_1_w2.msh", + }, + axles = { + "vehicle/truck/benz_1912_lkw/lod_1_w1.msh" + }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + }, + { + wheels = { + "vehicle/truck/benz_1912_lkw/lod_0_w2.msh", + }, + axles = { + "vehicle/truck/benz_1912_lkw/lod_0_w1.msh" + }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + } + }, + soundSet = "truck_old" + }, + transportVehicle = { + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.9, 0.36, 1)), crew = true}, + }, + carrier = "ROAD", + capacities = { + { type = "LOGS", capacity = 32 }, + { type = "LIVESTOCK", capacity = 32 }, + { type = "COAL", capacity = 32 }, + { type = "IRON_ORE", capacity = 32 }, + { type = "STONE", capacity = 32 }, + { type = "GRAIN", capacity = 32 }, + { type = "CRUDE", capacity = 32 }, + { type = "STEEL", capacity = 32 }, + { type = "PLANKS", capacity = 32 }, + { type = "PLASTIC", capacity = 32 }, + { type = "SLAG", capacity = 32 }, + { type = "OIL", capacity = 32 }, + { type = "CONSTRUCTION_MATERIALS", capacity = 32 }, + { type = "MACHINES", capacity = 32 }, + { type = "FUEL", capacity = 32 }, + { type = "TOOLS", capacity = 32 }, + { type = "FOOD", capacity = 32 }, + { type = "GOODS", capacity = 32 }, + }, + loadSpeed = 2 + }, + availability = { + yearFrom = 1912, + yearTo = 1913 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + }, + +} +end diff --git a/res/models/model/vehicle/truck/dmg_cannstatt.mdl b/res/models/model/vehicle/truck/dmg_cannstatt.mdl new file mode 100755 index 0000000..ca8cb86 --- /dev/null +++ b/res/models/model/vehicle/truck/dmg_cannstatt.mdl @@ -0,0 +1,255 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 1.9699840545654, 0.73222798109055, 2.4889459609985, + }, + bbMin = { + -2.3102269172668, -0.73222798109055, -0.47430199384689, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.4814, -0.4775, 0.411, 1, + }, + type = "MESH", + + },{ + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_2_w1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.4814, 0.4775, 0.411, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_2_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.4057, 0, 0.4694, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 300, + visibleTo = 730, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_1_body.msh", + transf = { + 1.1, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_1_w1.msh", + transf = { + 1.1, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 1.1, 0, 1.4814, -0.4775, 0.411, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_1_w1.msh", + transf = { + -1.1, 0, 0, 0, 0, -1.1, 0, 0, 0, 0, 1.1, 0, 1.4814, 0.4775, 0.411, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_1_w2.msh", + transf = { + 1.1, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 1.1, 0, -1.4057, 0, 0.4694, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 300, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_0_body.msh", + transf = { + 1.1, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_0_w1.msh", + transf = { + 1.1, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 1.1, 0, 1.4814, -0.4775, 0.411, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_0_w1.msh", + transf = { + -1.1, 0, 0, 0, 0, -1.1, 0, 0, 0, 0, 1.1, 0, 1.4814, 0.4775, 0.411, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_0_w2.msh", + transf = { + 1.1, 0, 0, 0, 0, 1.1, 0, 0, 0, 0, 1.1, 0, -1.4057, 0, 0.4694, 1, + }, + type = "MESH", + + }, + -- lights + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.8,0.8),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 2.168, -0.34, 1.077)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.8,0.8),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 2.168, 0.34, 1.077)), + type = "MESH", + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + + description = { + name = _("DMG Cannstatt"), + description = _("Daimler Motors Corporation was a German engine and later automobile manufacturer, in operation from 1890 until 1926.") + }, + roadVehicle = { + topSpeed = 25, + weight = 1, + power = 14, + tractiveEffort = 8, + configs = { + { + }, + { + wheels = { + "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_1_w1.msh", + }, + axles = { + "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_1_w2.msh" + }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + }, + { + wheels = { + "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_0_w1.msh", + }, + axles = { + "vehicle/truck/dmg_cannstatt/dmg_cannstatt_lod_0_w2.msh" + }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + } + }, + soundSet = "truck_old" + }, + transportVehicle = { + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.6, -0.1, 1.3)), crew = true}, + }, + carrier = "ROAD", + capacities = { + { type = "LOGS", capacity = 24 }, + { type = "LIVESTOCK", capacity = 24 }, + { type = "COAL", capacity = 24 }, + { type = "IRON_ORE", capacity = 24 }, + { type = "STONE", capacity = 24 }, + { type = "GRAIN", capacity = 24 }, + { type = "CRUDE", capacity = 24 }, + { type = "STEEL", capacity = 24 }, + { type = "PLANKS", capacity = 24 }, + { type = "PLASTIC", capacity = 24 }, + { type = "SLAG", capacity = 24 }, + { type = "OIL", capacity = 24 }, + { type = "CONSTRUCTION_MATERIALS", capacity = 24 }, + { type = "MACHINES", capacity = 24 }, + { type = "FUEL", capacity = 24 }, + { type = "TOOLS", capacity = 24 }, + { type = "FOOD", capacity = 24 }, + { type = "GOODS", capacity = 24 }, + }, + loadSpeed = 1.5 + }, + availability = { + yearFrom = 1890, + yearTo = 1913 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + }, + +} +end diff --git a/res/models/model/vehicle/truck/horse_cart.mdl b/res/models/model/vehicle/truck/horse_cart.mdl new file mode 100755 index 0000000..1a74f27 --- /dev/null +++ b/res/models/model/vehicle/truck/horse_cart.mdl @@ -0,0 +1,353 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + lods = { + + { + animations = { + + }, + children = { + { + id = "vehicle/truck/horse_cart_lod_2_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/bus/postkutsche_lod_1_horses.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.4147, 0, 0, 1, + }, + type = "GROUP", + + }, + + }, + events = { + drive = { + + [2] = { + forward = true, + name = "drive", + }, + }, + + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 400, + visibleTo = 940, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/truck/horse_cart_lod_1_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/bus/postkutsche_lod_1_horses.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.4147, 0, 0, 1, + }, + type = "GROUP", + + }, + + }, + events = { + drive = { + [2] = { + forward = true, + name = "drive", + }, + }, + + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 40, + visibleTo = 400, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/truck/horse_cart_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/bus/postkutsche_lod_0_horses.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.4147, 0, 0, 1, + }, + type = "GROUP", + + }, + + }, + events = { + drive = { + [2] = { + forward = true, + name = "drive", + }, + }, + + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 40, + + }, + }, + metadata = { + description = { + name = _("Horse cart"), + description = _("A two-horse vehicle with a simple twin axle carriage.") + }, + roadVehicle = { + topSpeed = 20, + weight = 1, + power = 2, + tractiveEffort = 2, + configs = { + + { + axles = { + "vehicle/truck/horse_cart/lod_2_w1.msh", + "vehicle/truck/horse_cart/lod_2_w2.msh", + }, + + fakeBogies = { { group = 84, position = 4.4147, offset = 0.0 } } + },{ + axles = { + "vehicle/truck/horse_cart/lod_1_w1.msh", + "vehicle/truck/horse_cart/lod_1_w2.msh", + }, + + fakeBogies = { { group = 84, position = 4.4147, offset = 0.0 } } + },{ + axles = { + "vehicle/truck/horse_cart/lod_0_w1.msh", + "vehicle/truck/horse_cart/lod_0_w2.msh", + }, + + fakeBogies = { { group = 86, position = 4.4147, offset = 0.0 } } + } + }, + soundSet = "truck_horse" + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "OIL", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 } + } + } + } + }, + { type = "GOODS", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 18, 19, 20, 21, 22, 23, 24, 25} + } + } + } + }, + { type = "LOGS", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37 } + } + } + } + }, + { type = "LIVESTOCK", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 38, 39} + } + } + } + }, + { type = "CRUDE", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 40, 41} + } + } + } + }, + { type = "STEEL", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 42,43} + } + } + } + }, + { type = "PLANKS", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 44,45} + } + } + } + }, + { type = "PLASTIC", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 46,47} + } + } + } + }, + { type = "CONSTRUCTION_MATERIALS", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 48,49} + } + } + } + }, + { type = "MACHINES", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 50,51} + } + } + } + }, + { type = "FUEL", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 52,53} + } + } + } + }, + { type = "TOOLS", capacity = 20,loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 54,55} + } + } + } + }, + { type = "FOOD", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 56,57} + } + } + } + }, + { type = "GRAIN", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 58,59} + } + } + } + }, + { type = "STONE", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 60,63} + } + } + } + }, + { type = "COAL", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 66,69} + } + } + } + }, + { type = "IRON_ORE", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 72,75} + } + } + } + }, + { type = "SLAG", capacity = 20, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 78,81} + } + } + } + }, + + }, + loadSpeed = 1, + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, 0.1, 1.45)), crew = true}, + }, + }, + availability = { + yearFrom = 1870, + yearTo = 1913 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 20 + } + }, + +} +end diff --git a/res/models/model/vehicle/truck/horsewagon_1850.mdl b/res/models/model/vehicle/truck/horsewagon_1850.mdl new file mode 100755 index 0000000..ac606d7 --- /dev/null +++ b/res/models/model/vehicle/truck/horsewagon_1850.mdl @@ -0,0 +1,158 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/truck/horsewagon_1850_lod_1_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/bus/postkutsche_lod_1_horses.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.0147, 0, 0, 1, + }, + type = "GROUP", + + }, + + }, + events = { + drive = { + [2] = { + forward = true, + name = "drive", + }, + }, + + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 70, + visibleTo = 810, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/truck/horsewagon_1850_lod_0_body.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/bus/postkutsche_lod_0_horses.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.0147, 0, 0, 1, + }, + type = "GROUP", + + }, + + }, + events = { + drive = { + [2] = { + forward = true, + name = "drive", + }, + }, + + }, + matConfigs = { + { + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 70, + + }, + }, + metadata = { + description = { + name = _("Horse wagon"), + description = _("A two-horse vehicle with a simple twin axle carriage.") + }, + roadVehicle = { + topSpeed = 15, + weight = 1.5, + power = 2, + tractiveEffort = 1.8, + configs = { + { + axles = { + "vehicle/truck/horse_wagon/horse_wagon_lod_1_w1.msh", + "vehicle/truck/horse_wagon/horse_wagon_lod_1_w2.msh", + }, + fakeBogies = { { group = 7, position = 4.0147, offset = 0.0 } } + }, + { + axles = { + "vehicle/truck/horse_wagon/horse_wagon_lod_0_w1.msh", + "vehicle/truck/horse_wagon/horse_wagon_lod_0_w2.msh", + }, + fakeBogies = { { group = 7, position = 4.0147, offset = 0.0 } } + } + }, + soundSet = "truck_horse" + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "LOGS", capacity = 16 }, + { type = "LIVESTOCK", capacity = 16 }, + { type = "COAL", capacity = 16 }, + { type = "IRON_ORE", capacity = 16 }, + { type = "STONE", capacity = 16 }, + { type = "GRAIN", capacity = 16 }, + { type = "CRUDE", capacity = 16 }, + { type = "STEEL", capacity = 16 }, + { type = "PLANKS", capacity = 16 }, + { type = "PLASTIC", capacity = 16 }, + { type = "SLAG", capacity = 16 }, + { type = "OIL", capacity = 16 }, + { type = "CONSTRUCTION_MATERIALS", capacity = 16 }, + { type = "MACHINES", capacity = 16 }, + { type = "FUEL", capacity = 16 }, + { type = "TOOLS", capacity = 16 }, + { type = "FOOD", capacity = 16 }, + { type = "GOODS", capacity = 16 }, + }, + loadSpeed = 1, + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, -0.1, 0.9)), crew = true}, + }, + }, + availability = { + yearFrom = 1850, + yearTo = 1907 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 15 + } + }, + +} +end diff --git a/res/models/model/vehicle/truck/man_19_304_1970.mdl b/res/models/model/vehicle/truck/man_19_304_1970.mdl new file mode 100755 index 0000000..b5671c0 --- /dev/null +++ b/res/models/model/vehicle/truck/man_19_304_1970.mdl @@ -0,0 +1,298 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/truck/man_19_304/lod_2_man_1970.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.1674, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_2_bw1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.439, 0, 0.3941, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_2_bw2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.2181, 0, 0.3941, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_2_fw.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.7027, -1.0218, 0.3941, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_2_fw.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.7027, 1.0218, 0.3941, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 250, + visibleTo = 950, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/truck/man_19_304/lod_1_man_1970.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.1674, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_1_bw1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.439, 0, 0.3941, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_1_bw2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.2181, 0, 0.3941, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_1_fw.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.7027, -1.0218, 0.3941, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_1_fw.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.7027, 1.0218, 0.3941, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 120, + visibleTo = 250, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/truck/man_19_304/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_0_bw1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.439, 0, 0.3941, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_0_bw2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.2181, 0, 0.3941, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_0_fw.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.7027, -1.0218, 0.3941, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_0_fw.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1.7027, 1.0218, 0.3941, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/man_19_304/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + -- lights + { + id = "vehicle/asset/lod_0_light_square_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.3,0.65),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 3.0, 0.71, 0.56)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_square_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.3,0.65),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 3.0, -0.71, 0.56)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_red.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.3,0.4),transf.degToRad( 180.0, 0.0, 0.0), vec3.new( -3.276, -0.845, 0.77)), + type = "MESH", + }, + { + id = "vehicle/asset/lod_0_light_round_red.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,0.3,0.4),transf.degToRad( 180.0, 0.0, 0.0), vec3.new( -3.276, 0.845, 0.77)), + type = "MESH", + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 120, + + }, + }, + metadata = { + description = { + name = _("MAN 19.304"), + description = _("A three axle lorry with a 230 hp V8 motor. It had a foldaway cowling to ease maintenance.") + }, + roadVehicle = { + topSpeed = 80, + weight = 6, + power = 223, + tractiveEffort = 10, + configs = { + { + wheels = { + + "vehicle/truck/man_19_304/lod_2_fw.msh", + }, + axles = { + "vehicle/truck/man_19_304/lod_2_bw2.msh", + "vehicle/truck/man_19_304/lod_2_bw1.msh" + }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + }, + { + wheels = { + + "vehicle/truck/man_19_304/lod_1_fw.msh", + }, + axles = { + "vehicle/truck/man_19_304/lod_1_bw2.msh", + "vehicle/truck/man_19_304/lod_1_bw1.msh" + }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + }, + { + wheels = { + + "vehicle/truck/man_19_304/lod_0_fw.msh", + }, + axles = { + "vehicle/truck/man_19_304/lod_0_bw2.msh", + "vehicle/truck/man_19_304/lod_0_bw1.msh" + }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + } + }, + soundSet = "truck_modern" + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "LOGS", capacity = 64 }, + { type = "LIVESTOCK", capacity = 64 }, + { type = "COAL", capacity = 64 }, + { type = "IRON_ORE", capacity = 64 }, + { type = "STONE", capacity = 64 }, + { type = "GRAIN", capacity = 64 }, + { type = "CRUDE", capacity = 64 }, + { type = "STEEL", capacity = 64 }, + { type = "PLANKS", capacity = 64 }, + { type = "PLASTIC", capacity = 64 }, + { type = "SLAG", capacity = 64 }, + { type = "OIL", capacity = 64 }, + { type = "CONSTRUCTION_MATERIALS", capacity = 64 }, + { type = "MACHINES", capacity = 64 }, + { type = "FUEL", capacity = 64 }, + { type = "TOOLS", capacity = 64 }, + { type = "FOOD", capacity = 64 }, + { type = "GOODS", capacity = 64 }, + }, + loadSpeed = 4, + seats = { + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.3, 0.42, 0.6)), crew = true}, + }, + }, + availability = { + yearFrom = 1995, + yearTo = 2003 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 35 + } + }, + +} +end diff --git a/res/models/model/vehicle/truck/opel_blitz_1930.mdl b/res/models/model/vehicle/truck/opel_blitz_1930.mdl new file mode 100755 index 0000000..044ede8 --- /dev/null +++ b/res/models/model/vehicle/truck/opel_blitz_1930.mdl @@ -0,0 +1,255 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 3.189001083374, 1.1996840238571, 3.0848240852356, + }, + bbMin = { + -3.0658431053162, -1.1996840238571, -0.47877499461174, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/truck/opel_blitz/lod_2_opelblitz.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/opel_blitz/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.4843, 0, 0.4757, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/opel_blitz/lod_2_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.2848, 0.8081, 0.4757, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/opel_blitz/lod_2_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.2848, -0.8081, 0.4757, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 180, + visibleTo = 860, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/truck/opel_blitz/lod_1_opelblitz.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/opel_blitz/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.4843, 0, 0.4757, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/opel_blitz/lod_1_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.2848, 0.8081, 0.4757, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/opel_blitz/lod_1_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.2848, -0.8081, 0.4757, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 80, + visibleTo = 180, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/truck/opel_blitz/lod_0_opelblitz.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/opel_blitz/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.4843, 0, 0.4757, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/opel_blitz/lod_0_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.2848, 0.8081, 0.4757, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/opel_blitz/lod_0_w2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 2.2848, -0.8081, 0.4757, 1, + }, + type = "MESH", + + }, { + id = "vehicle/truck/opel_blitz/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.0,1.0),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 2.9, 0.68, 1.06)), + type = "MESH", + },{ + id = "vehicle/asset/lod_0_light_round_white.msh", + --manual lights + transf = transf.scaleRotZYXTransl(vec3.new(1.0,1.0,1.0),transf.degToRad( 0.0, 0.0, 0.0), vec3.new( 2.9, -0.68, 1.06)), + type = "MESH", + }, + { + id = "vehicle/driver_static/lod_0_driver_static.msh", + transf = { + 1.0, 0, 0, 0, 0, 1.0, 0, 0, 0, 0, 1.0, 0, -2.9, -0.22, 0.15, 1, + }, + type = "MESH", + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0,0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 80, + + }, + }, + metadata = { + description = { + name = _("Opel Blitz"), + description = _("A very popular lorry from Opel, built in diverse variants.") + }, + roadVehicle = { + topSpeed = 60, + weight = 2.5, + power = 73.5, + tractiveEffort = 7, + configs = { + { + }, + { + axles = { "vehicle/truck/opel_blitz/lod_1_w1.msh" }, + wheels = { "vehicle/truck/opel_blitz/lod_1_w2.msh" }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + }, + { + axles = { "vehicle/truck/opel_blitz/lod_0_w1.msh" }, + wheels = { "vehicle/truck/opel_blitz/lod_0_w2.msh" }, + fakeBogies = { { group = 0, position = 0.0, offset = 0.0 } } + } + }, + soundSet = "truck_old" + }, + transportVehicle = { + carrier = "ROAD", + capacities = { + { type = "LOGS", capacity = 44 }, + { type = "LIVESTOCK", capacity = 44 }, + { type = "COAL", capacity = 44 }, + { type = "IRON_ORE", capacity = 44 }, + { type = "STONE", capacity = 44 }, + { type = "GRAIN", capacity = 44 }, + { type = "CRUDE", capacity = 44 }, + { type = "STEEL", capacity = 44 }, + { type = "PLANKS", capacity = 44 }, + { type = "PLASTIC", capacity = 44 }, + { type = "SLAG", capacity = 44 }, + { type = "OIL", capacity = 44 }, + { type = "CONSTRUCTION_MATERIALS", capacity = 44 }, + { type = "MACHINES", capacity = 44 }, + { type = "FUEL", capacity = 44 }, + { type = "TOOLS", capacity = 44 }, + { type = "FOOD", capacity = 44 }, + { type = "GOODS", capacity = 44 }, + }, + loadSpeed = 3 + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + }, + +} +end diff --git a/res/models/model/vehicle/waggon/3axes_person.mdl b/res/models/model/vehicle/waggon/3axes_person.mdl new file mode 100755 index 0000000..78352cb --- /dev/null +++ b/res/models/model/vehicle/waggon/3axes_person.mdl @@ -0,0 +1,473 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 5.826176071167, 1.4250220060349, 3.7648839950562, + }, + bbMin = { + -5.826176071167, -1.4250220060349, -0.55456000566483, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/3axes_person/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_2_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.4398, 0.3328, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_2_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4.4398, -0.3328, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0.5068, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.9806, 0, 0.5068, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.9806, 0, 0.5068, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + }, + close_all_doors = { + }, + open_doors_left = { + }, + close_doors_left = { + }, + open_doors_right = { + }, + close_doors_right = { + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, + 0, 0, + }, + }, + static = false, + visibleFrom = 450, + visibleTo = 1250, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/3axes_person/3axes_person_lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/3axes_person_lod_1_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.4398, 0.3328, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/3axes_person_lod_1_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4.4398, -0.3328, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/3axes_person_lod_1_d3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.2806, -0.9389, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/3axes_person_lod_1_d4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.2806, 0.9389, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/3axes_person_lod_1_d3.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -5.2806, 0.9389, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/3axes_person_lod_1_d4.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -5.2806, -0.9389, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/3axes_person_lod_1_w3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0.5068, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/3axes_person_lod_1_w3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.9806, 0, 0.5068, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/3axes_person_lod_1_w3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.9806, 0, 0.5068, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + [4] = { name = "opend3", forward = true }, + [5] = { name = "opend4", forward = true }, + [6] = { name = "opend3", forward = true }, + [7] = { name = "opend4", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + [4] = { name = "opend3", forward = false }, + [5] = { name = "opend4", forward = false }, + [6] = { name = "opend3", forward = false }, + [7] = { name = "opend4", forward = false }, + }, + open_doors_left = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + [5] = { name = "opend4", forward = true }, + [6] = { name = "opend3", forward = true }, + }, + close_doors_left = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + [5] = { name = "opend4", forward = false }, + [6] = { name = "opend3", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + [4] = { name = "opend3", forward = true }, + [7] = { name = "opend4", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + [4] = { name = "opend3", forward = false }, + [7] = { name = "opend4", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 80, + visibleTo = 450, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/3axes_person/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.4398, 0.3328, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_0_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4.4398, -0.3328, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_0_d3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.2806, -0.9389, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_0_d3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.2806, 0.9389, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_0_d3.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -5.2806, 0.9389, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_0_d3.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -5.2806, -0.9389, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0.5068, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.9806, 0, 0.5068, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.9806, 0, 0.5068, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/3axes_person/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + [4] = { name = "opend3", forward = true }, + [5] = { name = "opend4", forward = true }, + [6] = { name = "opend3", forward = true }, + [7] = { name = "opend4", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + [4] = { name = "opend3", forward = false }, + [5] = { name = "opend4", forward = false }, + [6] = { name = "opend3", forward = false }, + [7] = { name = "opend4", forward = false }, + }, + open_doors_left = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + [5] = { name = "opend4", forward = true }, + [6] = { name = "opend3", forward = true }, + }, + close_doors_left = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + [5] = { name = "opend4", forward = false }, + [6] = { name = "opend3", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + [4] = { name = "opend3", forward = true }, + [7] = { name = "opend4", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + [4] = { name = "opend3", forward = false }, + [7] = { name = "opend4", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 80, + + }, + }, + metadata = { + description = { + name = _("Three-axle car"), + description = _("Three-axle coach with open platforms on both sides, used in Germany.") + }, + railVehicle = { + topSpeed = 100, + weight = 15, + configs = { + { + axles = { "vehicle/waggon/3axes_person/lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/3axes_person/3axes_person_lod_1_w3.msh" } + }, + { + axles = { "vehicle/waggon/3axes_person/lod_0_w1.msh" } + } + }, + soundSet = "waggon_old" + }, + transportVehicle = { + capacities = { + { type = "PASSENGERS", capacity = 54 } + }, + carrier = "RAIL", + loadSpeed = 2, + seats = { + + + --passangers + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-4.15, 0.8, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-4.15, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(-4.15, -1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(-4.15, -0.6, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(-3.15, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(-3.15, -0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-160.0, 0.0, 0.0), vec3.new(-3.15, 1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(-3.15, -.8, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-2.65, 0.8, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-2.65, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(-2.65, -1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(-2.65, -0.6, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(-1.7, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(-1.7, -0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-160.0, 0.0, 0.0), vec3.new(-1.75, 1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(-1.7, -.8, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-1.2, 0.8, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(-1.2, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(-1.2, -1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(-1.2, -0.6, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(-0.3, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(-0.3, -0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-160.0, 0.0, 0.0), vec3.new(-0.3, 1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(-0.3, -.8, 1.15))}, + + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(3.15, 0.8, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(3.15, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(3.15, -1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(3.155, -0.6, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(4.15, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(4.15, -0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-160.0, 0.0, 0.0), vec3.new(4.15, 1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(4.15, -.8, 1.15))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(1.7, 0.8, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(1.7, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(1.7, -1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(1.7, -0.6, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(2.65, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(2.65, -0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-160.0, 0.0, 0.0), vec3.new(2.65, 1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(2.65, -.8, 1.15))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(0.3, 0.8, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-10.0, 0.0, 0.0), vec3.new(0.3, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(0.32, -1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(10.0, 0.0, 0.0), vec3.new(0.3, -0.6, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(1.2, 0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(1.2, -0.5, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-160.0, 0.0, 0.0), vec3.new(1.2, 1, 1.15))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(170.0, 0.0, 0.0), vec3.new(1.2, -.8, 1.15))}, + + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + + }, + +} +end diff --git a/res/models/model/vehicle/waggon/bc4.mdl b/res/models/model/vehicle/waggon/bc4.mdl new file mode 100755 index 0000000..fa2b147 --- /dev/null +++ b/res/models/model/vehicle/waggon/bc4.mdl @@ -0,0 +1,356 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 10.208726882935, 1.5492769479752, 4.0738768577576, + }, + bbMin = { + -10.208726882935, -1.5492769479752, -0.017165005207062, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/bc4/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/bc4_lod_2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.6043, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/waggon/bc4_lod_2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.6043, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/waggon/bc4/lod_2_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.1852, 0.9513, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/bc4/lod_2_d1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-9.1852, 0.9513, 0))), + + type = "MESH", + + }, { + id = "vehicle/waggon/bc4/lod_2_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 9.1852, -0.9513, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/bc4/lod_2_d1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(180,0,0), vec3.new(9.1852, -0.9513, 0))), + + type = "MESH", + + }, + }, + events = { + open_all_doors = { + }, + close_all_doors = { + }, + open_doors_left = { + }, + close_doors_left = { + }, + open_doors_right = { + }, + close_doors_right = { + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0 + }, + }, + static = false, + visibleFrom = 500, + visibleTo = 1700, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/bc4/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/bc4_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.6043, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/waggon/bc4_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.6043, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/waggon/bc4/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.1852, 0.9513, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/bc4/lod_0_d1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(0,0,0), vec3.new(-9.1852, 0.9513, 0))), + + type = "MESH", + + }, { + id = "vehicle/waggon/bc4/lod_0_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 9.1852, -0.9513, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/bc4/lod_0_d1.msh", + transf = transf.flipY(transf.rotZYXTransl(transf.degToRad(180,0,0), vec3.new(9.1852, -0.9513, 0))), + + type = "MESH", + + }, { + id = "vehicle/waggon/bc4/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/bc4/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [4] = { name = "opend1", forward = true }, + [5] = { name = "opend1", forward = true }, + [6] = { name = "opend1", forward = true }, + [7] = { name = "opend1", forward = true }, + }, + close_all_doors = { + [4] = { name = "opend1", forward = false }, + [5] = { name = "opend1", forward = false }, + [6] = { name = "opend1", forward = false }, + [7] = { name = "opend1", forward = false }, + }, + open_doors_left = { + [4] = { name = "opend1", forward = true }, + [7] = { name = "opend1", forward = true }, + }, + close_doors_left = { + [4] = { name = "opend1", forward = false }, + [7] = { name = "opend1", forward = false }, + }, + open_doors_right = { + [5] = { name = "opend1", forward = true }, + [6] = { name = "opend1", forward = true }, + }, + close_doors_right = { + [5] = { name = "opend1", forward = false }, + [6] = { name = "opend1", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0 + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 500, + + }, + }, + metadata = { + description = { + name = _("BC4"), + description = _("Four axle two bogie heavy coach for fast passenger service.") + }, + railVehicle = { + topSpeed = 120, + weight = 24, + configs = { + { + axles = { "vehicle/waggon/bc4/lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/bc4/lod_0_w1.msh" } + } + }, + soundSet = "waggon_modern" + }, + transportVehicle = { + capacities = { + { + type = "PASSENGERS", + capacity = 78, + } + }, + carrier = "RAIL", + loadSpeed = 2, + seats = { + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-8.0, 0.9, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-8.0, 0.3, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-8.0, -1.0, 1.2)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.85, 1.0, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.85, 0.4, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.85, -0.9, 1.2)) }, + + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-6.0, 0.9, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-6.0, 0.3, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-6.0, -1.0, 1.2)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.85, 1.0, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.85, 0.4, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.85, -0.9, 1.2)) }, + + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.05, 0.9, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.05, 0.3, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-4.05, -1.0, 1.2)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.9, 1.0, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.9, 0.4, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.9, -0.9, 1.2)) }, + + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.15, 0.9, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.15, 0.3, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.15, -1.0, 1.2)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.0, 1.0, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.0, 0.4, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.0, -0.9, 1.2)) }, + + + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.85, 0.9, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.85, 0.3, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.85, -1.0, 1.2)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(8.0, 1.0, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(8.0, 0.4, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(8.0, -0.9, 1.2)) }, + + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.85, 0.9, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.85, 0.3, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.85, -1.0, 1.2)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.0, 1.0, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.0, 0.4, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(6.0, -0.9, 1.2)) }, + + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.9, 0.9, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.9, 0.3, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.9, -1.0, 1.2)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.05, 1.0, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.05, 0.4, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(4.05, -0.9, 1.2)) }, + + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.0, 0.9, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.0, 0.3, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.0, -1.0, 1.2)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.15, 1.0, 1.2)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.15, 0.4, 1.2)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.15, -0.9, 1.2)) }, + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 35 + } + }, + +} +end diff --git a/res/models/model/vehicle/waggon/compartment_car.mdl b/res/models/model/vehicle/waggon/compartment_car.mdl new file mode 100755 index 0000000..2908d2b --- /dev/null +++ b/res/models/model/vehicle/waggon/compartment_car.mdl @@ -0,0 +1,779 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 6.1922078132629, 1.5036840438843, 4.171010017395, + }, + bbMin = { + -6.1944198608398, -1.5036840438843, -0.5939080119133, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/compartment_car/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_a_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.6192, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_a_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.9966, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_b_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.0771, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_b_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.4546, - 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_c_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.4611, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_c_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.8385, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_d_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.1143, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_d_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.7369, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_e_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.4177, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_e_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.0403, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_f_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.7411, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_f_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.3637, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_g_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.3901, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_d_g_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.0126, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.7123, 0, 0.5504, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.0505, 0, 0.5504, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.6329, 0, 0.5504, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend", forward = true }, + [3] = { name = "opend", forward = true }, + [4] = { name = "opend", forward = true }, + [5] = { name = "opend", forward = true }, + [6] = { name = "opend", forward = true }, + [7] = { name = "opend", forward = true }, + [8] = { name = "opend", forward = true }, + [9] = { name = "opend", forward = true }, + [10] = { name = "opend", forward = true }, + [11] = { name = "opend", forward = true }, + [12] = { name = "opend", forward = true }, + [13] = { name = "opend", forward = true }, + [14] = { name = "opend", forward = true }, + [15] = { name = "opend", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend", forward = false }, + [3] = { name = "opend", forward = false }, + [4] = { name = "opend", forward = false }, + [5] = { name = "opend", forward = false }, + [6] = { name = "opend", forward = false }, + [7] = { name = "opend", forward = false }, + [8] = { name = "opend", forward = false }, + [9] = { name = "opend", forward = false }, + [10] = { name = "opend", forward = false }, + [11] = { name = "opend", forward = false }, + [12] = { name = "opend", forward = false }, + [13] = { name = "opend", forward = false }, + [14] = { name = "opend", forward = false }, + [15] = { name = "opend", forward = false }, + }, + open_doors_left = { + [2] = { name = "opend", forward = true }, + [4] = { name = "opend", forward = true }, + [6] = { name = "opend", forward = true }, + [8] = { name = "opend", forward = true }, + [10] = { name = "opend", forward = true }, + [12] = { name = "opend", forward = true }, + [14] = { name = "opend", forward = true }, + }, + close_doors_left = { + [2] = { name = "opend", forward = false }, + [4] = { name = "opend", forward = false }, + [6] = { name = "opend", forward = false }, + [8] = { name = "opend", forward = false }, + [10] = { name = "opend", forward = false }, + [12] = { name = "opend", forward = false }, + [14] = { name = "opend", forward = false }, + }, + open_doors_right = { + [3] = { name = "opend", forward = true }, + [5] = { name = "opend", forward = true }, + [7] = { name = "opend", forward = true }, + [9] = { name = "opend", forward = true }, + [11] = { name = "opend", forward = true }, + [13] = { name = "opend", forward = true }, + [15] = { name = "opend", forward = true }, + }, + close_doors_right = { + [3] = { name = "opend", forward = false }, + [5] = { name = "opend", forward = false }, + [7] = { name = "opend", forward = false }, + [9] = { name = "opend", forward = false }, + [11] = { name = "opend", forward = false }, + [13] = { name = "opend", forward = false }, + [15] = { name = "opend", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 200, + visibleTo = 1350, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/compartment_car/lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_a_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.6192, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_a_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.9966, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_b_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.0771, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_b_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.4546, - 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_c_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.4611, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_c_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.8385, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_d_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.1143, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_d_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.7369, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_e_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.4177, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_e_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.0403, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_f_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.7411, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_f_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.3637, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_g_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.3901, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_d_g_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.0126, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.7123, 0, 0.5504, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.0505, 0, 0.5504, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.6329, 0, 0.5504, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend", forward = true }, + [3] = { name = "opend", forward = true }, + [4] = { name = "opend", forward = true }, + [5] = { name = "opend", forward = true }, + [6] = { name = "opend", forward = true }, + [7] = { name = "opend", forward = true }, + [8] = { name = "opend", forward = true }, + [9] = { name = "opend", forward = true }, + [10] = { name = "opend", forward = true }, + [11] = { name = "opend", forward = true }, + [12] = { name = "opend", forward = true }, + [13] = { name = "opend", forward = true }, + [14] = { name = "opend", forward = true }, + [15] = { name = "opend", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend", forward = false }, + [3] = { name = "opend", forward = false }, + [4] = { name = "opend", forward = false }, + [5] = { name = "opend", forward = false }, + [6] = { name = "opend", forward = false }, + [7] = { name = "opend", forward = false }, + [8] = { name = "opend", forward = false }, + [9] = { name = "opend", forward = false }, + [10] = { name = "opend", forward = false }, + [11] = { name = "opend", forward = false }, + [12] = { name = "opend", forward = false }, + [13] = { name = "opend", forward = false }, + [14] = { name = "opend", forward = false }, + [15] = { name = "opend", forward = false }, + }, + open_doors_left = { + [2] = { name = "opend", forward = true }, + [4] = { name = "opend", forward = true }, + [6] = { name = "opend", forward = true }, + [8] = { name = "opend", forward = true }, + [10] = { name = "opend", forward = true }, + [12] = { name = "opend", forward = true }, + [14] = { name = "opend", forward = true }, + }, + close_doors_left = { + [2] = { name = "opend", forward = false }, + [4] = { name = "opend", forward = false }, + [6] = { name = "opend", forward = false }, + [8] = { name = "opend", forward = false }, + [10] = { name = "opend", forward = false }, + [12] = { name = "opend", forward = false }, + [14] = { name = "opend", forward = false }, + }, + open_doors_right = { + [3] = { name = "opend", forward = true }, + [5] = { name = "opend", forward = true }, + [7] = { name = "opend", forward = true }, + [9] = { name = "opend", forward = true }, + [11] = { name = "opend", forward = true }, + [13] = { name = "opend", forward = true }, + [15] = { name = "opend", forward = true }, + }, + close_doors_right = { + [3] = { name = "opend", forward = false }, + [5] = { name = "opend", forward = false }, + [7] = { name = "opend", forward = false }, + [9] = { name = "opend", forward = false }, + [11] = { name = "opend", forward = false }, + [13] = { name = "opend", forward = false }, + [15] = { name = "opend", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 120, + visibleTo = 200, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/compartment_car/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_a_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.6192, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_a_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.9966, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_b_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.0771, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_b_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.4546, - 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_c_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.4611, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_c_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.8385, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_d_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.1143, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_d_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.7369, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_e_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.4177, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_e_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.0403, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_f_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.7411, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_f_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.3637, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_g_l.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.3901, 1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_d_g_r.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.0126, -1.2791, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.7123, 0, 0.5504, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.0505, 0, 0.5504, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.6329, 0, 0.5504, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/compartment_car/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend", forward = true }, + [3] = { name = "opend", forward = true }, + [4] = { name = "opend", forward = true }, + [5] = { name = "opend", forward = true }, + [6] = { name = "opend", forward = true }, + [7] = { name = "opend", forward = true }, + [8] = { name = "opend", forward = true }, + [9] = { name = "opend", forward = true }, + [10] = { name = "opend", forward = true }, + [11] = { name = "opend", forward = true }, + [12] = { name = "opend", forward = true }, + [13] = { name = "opend", forward = true }, + [14] = { name = "opend", forward = true }, + [15] = { name = "opend", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend", forward = false }, + [3] = { name = "opend", forward = false }, + [4] = { name = "opend", forward = false }, + [5] = { name = "opend", forward = false }, + [6] = { name = "opend", forward = false }, + [7] = { name = "opend", forward = false }, + [8] = { name = "opend", forward = false }, + [9] = { name = "opend", forward = false }, + [10] = { name = "opend", forward = false }, + [11] = { name = "opend", forward = false }, + [12] = { name = "opend", forward = false }, + [13] = { name = "opend", forward = false }, + [14] = { name = "opend", forward = false }, + [15] = { name = "opend", forward = false }, + }, + open_doors_left = { + [2] = { name = "opend", forward = true }, + [4] = { name = "opend", forward = true }, + [6] = { name = "opend", forward = true }, + [8] = { name = "opend", forward = true }, + [10] = { name = "opend", forward = true }, + [12] = { name = "opend", forward = true }, + [14] = { name = "opend", forward = true }, + }, + close_doors_left = { + [2] = { name = "opend", forward = false }, + [4] = { name = "opend", forward = false }, + [6] = { name = "opend", forward = false }, + [8] = { name = "opend", forward = false }, + [10] = { name = "opend", forward = false }, + [12] = { name = "opend", forward = false }, + [14] = { name = "opend", forward = false }, + }, + open_doors_right = { + [3] = { name = "opend", forward = true }, + [5] = { name = "opend", forward = true }, + [7] = { name = "opend", forward = true }, + [9] = { name = "opend", forward = true }, + [11] = { name = "opend", forward = true }, + [13] = { name = "opend", forward = true }, + [15] = { name = "opend", forward = true }, + }, + close_doors_right = { + [3] = { name = "opend", forward = false }, + [5] = { name = "opend", forward = false }, + [7] = { name = "opend", forward = false }, + [9] = { name = "opend", forward = false }, + [11] = { name = "opend", forward = false }, + [13] = { name = "opend", forward = false }, + [15] = { name = "opend", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 120, + + }, + }, + metadata = { + description = { + name = _("Compartment car"), + description = _("This compartment coach had two doors for each compartment, one on each side of the car. Easy for the passengers in and out, but impossible for a conductor to check the tickets while driving.") + }, + railVehicle = { + topSpeed = 60, + weight = 10, + configs = { + { + axles = { "vehicle/waggon/compartment_car/lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/compartment_car/lod_1_w1.msh" } + }, + { + axles = { "vehicle/waggon/compartment_car/lod_0_w1.msh" } + } + }, + soundSet = "waggon_old" + }, + transportVehicle = { + capacities = { + { type = "PASSENGERS", capacity = 42 } + }, + carrier = "RAIL", + loadSpeed = 4, + seats = { + + + --passangers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, -0.8, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, -0.3, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, 0.1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-3.7, 0.6, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-3.7, 1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.1, -0.8, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.1, -0.3, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.1, 0.1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.1, 0.6, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-2.1, 1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.3, 0.8, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.3, 0.3, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.3, -0.1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.3, -0.6, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-3.3, -1, 1.2))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.55, -0.8, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.55, -0.3, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.55, 0.1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.55, 0.6, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-0.55, 1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, 0.8, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, 0.3, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, -0.1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, -0.6, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.8, -1, 1.2))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.95, -0.8, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.95, -0.3, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.95, 0.1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.95, 0.6, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(0.95, 1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.2, 0.8, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.2, 0.3, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.2, -0.1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.2, -0.6, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-0.2, -1, 1.2))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.6, -0.8, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.6, -0.3, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.6, 0.1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.6, 0.6, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(3.6, 1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.45, 0.8, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.45, 0.3, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.45, -0.1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.45, -0.6, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(2.45, -1, 1.2))}, + + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.1, 0.8, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.1, 0.3, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.1, -0.1, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.1, -0.6, 1.2))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(4.1, -1, 1.2))}, + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 35 + } + + }, + +} +end diff --git a/res/models/model/vehicle/waggon/d1_spanischb.mdl b/res/models/model/vehicle/waggon/d1_spanischb.mdl new file mode 100755 index 0000000..b24b66e --- /dev/null +++ b/res/models/model/vehicle/waggon/d1_spanischb.mdl @@ -0,0 +1,322 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/d1_spanischb/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_2_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3618, -0.2901, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_2_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.3618, 0.2901, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.5381, 0, 0.4328, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.536, 0, 0.4328, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + + }, + close_all_doors = { + + }, + open_doors_left = { + + }, + close_doors_left = { + + }, + open_doors_right = { + + }, + close_doors_right = { + + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 400, + visibleTo = 1000, + + },{ + animations = { + + }, + children = { + { + id = "vehicle/waggon/d1_spanischb/lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_1_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3618, -0.2901, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_1_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.3618, 0.2901, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.5381, 0, 0.4328, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.536, 0, 0.4328, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + open_doors_left = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 50, + visibleTo = 400, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/d1_spanischb/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3618, -0.2901, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.3618, 0.2901, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.5381, 0, 0.4328, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.536, 0, 0.4328, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/d1_spanischb/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + open_doors_left = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 50, + + }, + }, + metadata = { + description = { + name = _("D 1/3 car"), + description = _("This legendary railway was known as the Spanisch-Brötli-Bahn, named after a delicacy of Baden, Switzerland.") + }, + railVehicle = { + topSpeed = 40, + weight = 5, + configs = { + { + axles = { "vehicle/waggon/d1_spanischb/lod_2_w1.msh" } + },{ + axles = { "vehicle/waggon/d1_spanischb/lod_1_w1.msh" } + },{ + axles = { "vehicle/waggon/d1_spanischb/lod_0_w1.msh" } + } + }, + soundSet = "waggon_old" + }, + transportVehicle = { + capacities = { + { + type = "PASSENGERS", + capacity = 22, + } + }, + carrier = "RAIL", + loadSpeed = 2, + seats = { + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.1, 0.6, 1.1)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.1, -0.8, 1.1)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.0, 0.8, 1.1)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.0, -0.6, 1.1)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.55, 0.6, 1.1)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-0.55, -0.8, 1.1)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.55, 0.8, 1.1)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(0.55, -0.6, 1.1)) }, + + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.1, 0.8, 1.1)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.1, -0.6, 1.1)) }, + + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.0, 0.6, 1.1)) }, + { group = 1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.0, -0.8, 1.1)) }, + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 25 + } + + }, + +} +end \ No newline at end of file diff --git a/res/models/model/vehicle/waggon/donnerbuechse.mdl b/res/models/model/vehicle/waggon/donnerbuechse.mdl new file mode 100755 index 0000000..d4c4472 --- /dev/null +++ b/res/models/model/vehicle/waggon/donnerbuechse.mdl @@ -0,0 +1,343 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 6.7440481185913, 1.4809349775314, 3.9359591007233, + }, + bbMin = { + -6.7440481185913, -1.4809349775314, -0.49137100577354, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/donnerbuechse/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_2_door1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.3282, -0.4003, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_2_door2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.3873, 0.4003, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.0776, 0, 0.4702, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.0776, 0, 0.4702, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + }, + close_all_doors = { + }, + open_doors_left = { + }, + close_doors_left = { + }, + open_doors_right = { + }, + close_doors_right = { + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 400, + visibleTo = 1350, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/donnerbuechse/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_0_door1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.3282, -0.4003, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_0_door2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.3873, 0.4003, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_0_door3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.1203, -0.9306, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_0_door4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.1465, 0.9306, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_0_door3.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 6.2653, -0.9306, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_0_door4.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 6.2653, 0.9306, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.0776, 0, 0.4702, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.0776, 0, 0.4702, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/donnerbuechse/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + [4] = { name = "opend3", forward = true }, + [5] = { name = "opend4", forward = true }, + [6] = { name = "opend3inv", forward = true }, + [7] = { name = "opend4inv", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + [4] = { name = "opend3", forward = false }, + [5] = { name = "opend4", forward = false }, + [6] = { name = "opend3inv", forward = false }, + [7] = { name = "opend4inv", forward = false }, + }, + open_doors_left = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + [5] = { name = "opend4", forward = true }, + [7] = { name = "opend4inv", forward = true }, + }, + close_doors_left = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + [5] = { name = "opend4", forward = false }, + [7] = { name = "opend4inv", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + [4] = { name = "opend3", forward = true }, + [6] = { name = "opend3inv", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + [4] = { name = "opend3", forward = false }, + [6] = { name = "opend3inv", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 400, + + }, + }, + metadata = { + description = { + name = _("Donnerbüchse"), + description = _("Four-wheeled, standard, open coach made entirely of iron and steel. The lack of damping caused loud rumbling, hence the name \"Thunderbox\".") + }, + railVehicle = { + topSpeed = 100, + weight = 20, + configs = { + { + axles = { + "vehicle/waggon/donnerbuechse/lod_2_w1.msh", + "vehicle/waggon/donnerbuechse/lod_2_w1.msh" + } + }, + { + axles = { + "vehicle/waggon/donnerbuechse/lod_0_w1.msh", + "vehicle/waggon/donnerbuechse/lod_0_w1.msh" + } + } + }, + soundSet = "waggon_old" + }, + transportVehicle = { + capacities = { + { type = "PASSENGERS", capacity = 66 } + }, + carrier = "RAIL", + loadSpeed = 2, + seats = { + --passangers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5, -1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5, -0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5, 0.45, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4, 1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4, 0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4, -0.45, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.7, -1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.7, -0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.7, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.7, 0.45, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.7, 1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.7, 0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.7, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.7, -0.45, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.5, -1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.5, -0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.5, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.5, 0.45, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.5, 1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.5, 0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.5, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.5, -0.45, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, -1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, -0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.2, 0.45, 1))}, + + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.2, -1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.2, -0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.2, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.2, 0.45, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, 1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, 0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.2, -0.45, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.5, -1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.5, -0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.5, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.5, 0.45, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.5, 1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.5, 0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.5, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(2.5, -0.45, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.7, -1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.7, -0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.7, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.7, 0.45, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.7, 1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.7, 0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.7, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.7, -0.45, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4, -1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4, -0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4, 0.45, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5, 1.1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5, 0.65, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5, -0.45, 1))}, + + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + }, + +} +end diff --git a/res/models/model/vehicle/waggon/ew_ii.mdl b/res/models/model/vehicle/waggon/ew_ii.mdl new file mode 100755 index 0000000..635db7b --- /dev/null +++ b/res/models/model/vehicle/waggon/ew_ii.mdl @@ -0,0 +1,312 @@ +local vec3 = require "vec3" +local transf = require "transf" + +function data() +return { + boundingInfo = { + bbMax = { + 11.946655273438, 1.4136459827423, 3.7780799865723, + }, + bbMin = { + -11.946655273438, -1.4136459827423, -0.42713099718094, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/ew_ii_lod_2_doors.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.4496, -1.1212, 0, 1, + }, + type = "GROUP", + + }, + { + id = "vehicle/waggon/ew_ii_lod_2_doors2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.4496, 1.1212, 0, 1, + }, + type = "GROUP", + + }, + { + id = "vehicle/waggon/ew_ii_lod_2_doors.grp", + transf = transf.rotZYXTransl(transf.degToRad(180,0,0), vec3.new(9.4496, 1.1212, 0)), + type = "GROUP", + + }, + { + id = "vehicle/waggon/ew_ii_lod_2_doors2.grp", + transf = transf.rotZYXTransl(transf.degToRad(180,0,0), vec3.new(9.4496, -1.1212, 0)), + type = "GROUP", + + }, + { + id = "vehicle/waggon/ew_ii/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_ii_lod_2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/waggon/ew_ii_lod_2_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 9, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + }, + close_all_doors = { + }, + open_doors_right = { + }, + close_doors_right = { + }, + open_doors_left = { + }, + close_doors_left = { + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 400, + visibleTo = 1830, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/ew_ii_lod_0_doors.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.4496, -1.1212, 0, 1, + }, + type = "GROUP", + + }, + { + id = "vehicle/waggon/ew_ii_lod_0_doors2.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.4496, 1.1212, 0, 1, + }, + type = "GROUP", + + }, + { + id = "vehicle/waggon/ew_ii_lod_0_doors.grp", + transf = transf.rotZYXTransl(transf.degToRad(180,0,0), vec3.new(9.4496, 1.1212, 0)), + type = "GROUP", + + }, + { + id = "vehicle/waggon/ew_ii_lod_0_doors2.grp", + transf = transf.rotZYXTransl(transf.degToRad(180,0,0), vec3.new(9.4496, -1.1212, 0)), + type = "GROUP", + + }, + { + id = "vehicle/waggon/ew_ii/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_ii/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/waggon/ew_ii/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_ii_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/waggon/ew_ii_lod_0_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 9, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + [1] = { name = "open_doors", forward = true }, + [2] = { name = "open_doors", forward = true }, + [3] = { name = "open_doors", forward = true }, + [4] = { name = "open_doors", forward = true }, + }, + close_all_doors = { + [1] = { name = "open_doors", forward = false }, + [2] = { name = "open_doors", forward = false }, + [3] = { name = "open_doors", forward = false }, + [4] = { name = "open_doors", forward = false }, + }, + open_doors_right = { + [1] = { name = "open_doors", forward = true }, + [4] = { name = "open_doors", forward = true }, + }, + close_doors_right = { + [1] = { name = "open_doors", forward = false }, + [4] = { name = "open_doors", forward = false }, + }, + open_doors_left = { + [2] = { name = "open_doors", forward = true }, + [3] = { name = "open_doors", forward = true }, + }, + close_doors_left = { + [2] = { name = "open_doors", forward = false }, + [3] = { name = "open_doors", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 400, + + }, + }, + metadata = { + description = { + name = _("Einheitswagen II"), + description = _("This four axle, twin bogie \"Standard-Coach II\" for passenger service was built in big series.") + }, + railVehicle = { + topSpeed = 140, + weight = 30, + configs = { + { + axles = { "vehicle/waggon/ew_ii/lod_2_w1.msh" } + },{ + axles = { "vehicle/waggon/ew_ii/lod_0_w1.msh" } + } + }, + soundSet = "waggon_modern" + }, + transportVehicle = { + capacities = { + { type = "PASSENGERS", capacity = 82 } + }, + carrier = "RAIL", + loadSpeed = 2, + seats = { + --passangers + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.8, -1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.8, -0.4, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.8, 0.9, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.7, 1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.7, -0.2, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.7, -0.9, 1))}, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.8, -1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.8, -0.4, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.8, 0.9, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.7, 1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.7, -0.2, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.7, -0.9, 1))}, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.8, -1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.8, -0.4, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.8, 0.9, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.7, 1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.7, -0.2, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.7, -0.9, 1))}, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, -1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, -0.4, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, 0.9, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.7, 1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.7, -0.2, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.7, -0.9, 1))}, + + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.8, -1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.8, -0.4, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.8, 0.9, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(7.8, 1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(7.8, -0.2, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(7.8, -0.9, 1))}, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.7, -1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.7, -0.4, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.7, 0.9, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5.8, 1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5.8, -0.2, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5.8, -0.9, 1))}, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.7, -1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.7, -0.4, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.7, 0.9, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.8, 1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.8, -0.2, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.8, -0.9, 1))}, + + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.7, -1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.7, -0.4, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.7, 0.9, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.8, 1, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.8, -0.2, 1))}, + { group =13, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.8, -0.9, 1))}, + + + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + } + }, + +} +end diff --git a/res/models/model/vehicle/waggon/ew_iv.mdl b/res/models/model/vehicle/waggon/ew_iv.mdl new file mode 100755 index 0000000..d2b86c3 --- /dev/null +++ b/res/models/model/vehicle/waggon/ew_iv.mdl @@ -0,0 +1,326 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 13.285885810852, 1.4119000434875, 4.0756788253784, + }, + bbMin = { + -13.285887718201, -1.411003947258, -0.48102399706841, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/ew_iv/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_iv/lod_2_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -10.4973, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_iv/lod_2_d2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -10.4973, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_iv/lod_2_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 10.4973, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_iv/lod_2_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 10.4973, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_iv_lod_2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.2122, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/waggon/ew_iv_lod_2_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 9.2122, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + open_all_doors = { + }, + close_all_doors = { + }, + open_doors_left = { + }, + close_doors_left = { + }, + open_doors_right = { + }, + close_doors_right = { + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0 + }, + }, + static = false, + visibleFrom = 400, + visibleTo = 2010, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/ew_iv/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_iv/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -10.4973, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_iv/lod_0_d2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -10.4973, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_iv/lod_0_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 10.4973, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_iv/lod_0_d2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 10.4973, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/ew_iv_lod_0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -9.2122, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/waggon/ew_iv_lod_0_bogie.grp", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 9.2122, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/waggon/ew_iv/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/waggon/ew_iv/lod_0_logo_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + [4] = { name = "opend1", forward = true }, + [5] = { name = "opend2", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + [4] = { name = "opend1", forward = false }, + [5] = { name = "opend2", forward = false }, + }, + open_doors_left = { + [4] = { name = "opend1", forward = true }, + [3] = { name = "opend2", forward = true }, + }, + close_doors_left = { + [4] = { name = "opend1", forward = false }, + [3] = { name = "opend2", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + [5] = { name = "opend2", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + [5] = { name = "opend2", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0 + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 400, + + }, + }, + metadata = { + description = { + name = _("Einheitswagen IV"), + description = _("The four axle, twin bogie \"Standard-Coach IV\" was built on the experience with \"Standard-Coach II\" and had an improved interior, and, a first, air-conditioning.") + }, + railVehicle = { + topSpeed = 200, + weight = 42, + configs = { + { + axles = { "vehicle/waggon/ew_iv/lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/ew_iv/lod_0_w1.msh" } + } + }, + soundSet = "waggon_modern" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "PASSENGERS", capacity = 86 } + }, + loadSpeed = 2, + seats = { + --passangers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-10, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-10, 0.9, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-8.8, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-8.8, 0.4, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-8.8, -0.9, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.8, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.8, 0.25, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-7.8, 0.9, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.7, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.7, 0.4, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-6.7, -0.9, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.8, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.8, 0.25, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-5.8, 0.9, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.7, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.7, 0.4, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-4.7, -0.9, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.8, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.8, 0.25, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-3.8, 0.9, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.7, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.7, 0.4, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-2.7, -0.9, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, 0.25, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.8, 0.9, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.7, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.7, 0.4, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.7, -0.9, 1))}, + + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.8, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.8, 0.25, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(6.8, 0.9, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(7.8, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(7.8, 0.4, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(7.8, -0.9, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.7, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.7, 0.25, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(4.7, 0.9, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5.8, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5.8, 0.4, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(5.8, -0.9, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.7, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.7, 0.5, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(2.7, 0.9, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.8, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.8, 0.4, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(3.8, -0.9, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.7, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.7, 0.25, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(0.7, 0.9, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.8, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.8, 0.4, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.8, -0.9, 1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(8.8, -1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(8.8, 0.9, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(10, 1, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(10, 0.4, 1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(10, -0.9, 1))}, + + + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + } + }, + +} +end diff --git a/res/models/model/vehicle/waggon/goods_1850_v2.mdl b/res/models/model/vehicle/waggon/goods_1850_v2.mdl new file mode 100755 index 0000000..e174cb1 --- /dev/null +++ b/res/models/model/vehicle/waggon/goods_1850_v2.mdl @@ -0,0 +1,192 @@ +function data() +return { + boundingInfo = { + bbMax = { + 3.7555150985718, 1.5256500244141, 3.6031980514526, + }, + bbMin = { + -3.7555150985718, -1.5256500244141, -0.53295797109604, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/goods_1850/goods_1850_lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/goods_1850/goods_1850_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.6429, 0, 0.4803, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/goods_1850/goods_1850_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6429, 0, 0.4803, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 250, + visibleTo = 1030, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/goods_1850/goods_1850_lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/goods_1850/goods_1850_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.6429, 0, 0.4803, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/goods_1850/goods_1850_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6429, 0, 0.4803, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 120, + visibleTo = 250, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/goods_1850/goods_1850_lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/goods_1850/goods_1850_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.6429, 0, 0.4803, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/goods_1850/goods_1850_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6429, 0, 0.4803, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 120, + + }, + }, + metadata = { + description = { + name = _("Goods wagon"), + description = _("Common used boxcar.") + }, + railVehicle = { + topSpeed = 80, + weight = 5, + configs = { + { + axles = { "vehicle/waggon/goods_1850/goods_1850_lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/goods_1850/goods_1850_lod_1_w1.msh" } + }, + { + axles = { "vehicle/waggon/goods_1850/goods_1850_lod_0_w1.msh" } + } + }, + soundSet = "waggon_freight_old" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "LIVESTOCK", capacity = 16 }, + { type = "PLASTIC", capacity = 16 }, + { type = "MACHINES", capacity = 16 }, + { type = "TOOLS", capacity = 16 }, + { type = "FOOD", capacity = 16 }, + { type = "GOODS", capacity = 16 }, + }, + loadSpeed = 1 + }, + availability = { + yearFrom = 1850, + yearTo = 1859 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 50 + } + + }, + +} +end diff --git a/res/models/model/vehicle/waggon/hbi1_v2.mdl b/res/models/model/vehicle/waggon/hbi1_v2.mdl new file mode 100755 index 0000000..93c954d --- /dev/null +++ b/res/models/model/vehicle/waggon/hbi1_v2.mdl @@ -0,0 +1,185 @@ +function data() +return { + boundingInfo = { + bbMax = { + 7.9388990402222, 1.7026489973068, 4.6074352264404, + }, + bbMin = { + -8.4486074447632, -1.7026489973068, -0.0088170170783997, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/hbi1/lod_2_hbi.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/hbi1/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.3857002258301, 0, 0.51899999380112, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/hbi1/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.3857002258301, 0, 0.51899999380112, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 300, + visibleTo = 1610, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/hbi1/lod_1_hbi.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/hbi1/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.3857002258301, 0, 0.51899999380112, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/hbi1/lod_1_w2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.3857002258301, 0, 0.51899999380112, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 150, + visibleTo = 300, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/hbi1/lod_0_hbi.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/hbi1/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.3857002258301, 0, 0.51899999380112, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/hbi1/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.3857002258301, 0, 0.51899999380112, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 150, + + }, + }, + metadata = { + description = { + name = _("Goods wagon Hbi"), + description = _("Twin-axle boxcar with sliding doors, specially for sensitive goods on palettes.") + }, + railVehicle = { + topSpeed = 160, -- 160.0 + weight = 18, + configs = { + { }, + { }, + { + axles = { "vehicle/waggon/hbi1/lod_0_w1.msh" } + } + }, + soundSet = "waggon_freight_modern" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "LIVESTOCK", capacity = 52 }, + { type = "PLASTIC", capacity = 52 }, + { type = "MACHINES", capacity = 52 }, + { type = "TOOLS", capacity = 52 }, + { type = "FOOD", capacity = 52 }, + { type = "GOODS", capacity = 52 }, + }, + loadSpeed = 3 + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + } + }, + +} +end diff --git a/res/models/model/vehicle/waggon/kesselwagen_1860.mdl b/res/models/model/vehicle/waggon/kesselwagen_1860.mdl new file mode 100755 index 0000000..e550249 --- /dev/null +++ b/res/models/model/vehicle/waggon/kesselwagen_1860.mdl @@ -0,0 +1,189 @@ +function data() +return { + boundingInfo = { + bbMax = { + 3.3467490673065, 1.2839050292969, 4.0473217964172, + }, + bbMin = { + -3.3659648895264, -1.2839050292969, -0.58142900466919, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.498, 0, 0.5116, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.498, 0, 0.5116, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 350, + visibleTo = 1070, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.498, 0, 0.5116, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.498, 0, 0.5116, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 350, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.498, 0, 0.5116, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.498, 0, 0.5116, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + description = { + name = _("Tank wagon"), + description = _("Twin axle tank wagon.") + }, + railVehicle = { + topSpeed = 80, -- 120.0 + weight = 6, + configs = { + { + axles = { "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_1_w1.msh" } + }, + { + axles = { "vehicle/waggon/kesselwagen_1860/kesselwagen_1860_lod_0_w1.msh" } + } + }, + soundSet = "waggon_freight_old" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "CRUDE", capacity = 20 }, + { type = "OIL", capacity = 20 }, + { type = "FUEL", capacity = 20 }, + }, + loadSpeed = 1 + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + + }, + +} +end diff --git a/res/models/model/vehicle/waggon/kesselwagen_1910.mdl b/res/models/model/vehicle/waggon/kesselwagen_1910.mdl new file mode 100755 index 0000000..f8abf25 --- /dev/null +++ b/res/models/model/vehicle/waggon/kesselwagen_1910.mdl @@ -0,0 +1,189 @@ +function data() +return { + boundingInfo = { + bbMax = { + 3.7725789546967, 1.5062819719315, 4.7687492370605, + }, + bbMin = { + -4.5749650001526, -1.5062819719315, -0.58102601766586, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.9297, 0, 0.5112, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.9429, 0, 0.5112, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 400, + visibleTo = 1280, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.9297, 0, 0.5112, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.9429, 0, 0.5112, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 400, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.9297, 0, 0.5112, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.9429, 0, 0.5112, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + description = { + name = _("Tank wagon"), + description = _("Twin axle tank wagon.") + }, + railVehicle = { + topSpeed = 120, -- 120.0 + weight = 10, + configs = { + { + axles = { "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_1_w1.msh" } + }, + { + axles = { "vehicle/waggon/kesselwagen_1910/kesselwagen_1910_lod_0_w1.msh" } + } + }, + soundSet = "waggon_freight_old" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "CRUDE", capacity = 36 }, + { type = "OIL", capacity = 36 }, + { type = "FUEL", capacity = 36 }, + }, + loadSpeed = 2 + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + + }, + +} +end diff --git a/res/models/model/vehicle/waggon/kesselwagen_1950.mdl b/res/models/model/vehicle/waggon/kesselwagen_1950.mdl new file mode 100755 index 0000000..b7266f2 --- /dev/null +++ b/res/models/model/vehicle/waggon/kesselwagen_1950.mdl @@ -0,0 +1,263 @@ +function data() +return { + boundingInfo = { + bbMax = { + 7.414354801178, 1.6036590337753, 4.3081970214844, + }, + bbMin = { + -7.414354801178, -1.6036590337753, -0.54317998886108, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_3_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_3_b1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.8255, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_3_b1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.8255, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_3_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 5.7633, 0, 0.4801, 1, + }, + type = "MESH", + + },{ + id = "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_3_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -5.7633, 0, 0.4801, 1, + }, + type = "MESH", + + },{ + id = "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_3_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 3.8878, 0, 0.4801, 1, + }, + type = "MESH", + + },{ + id = "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_3_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -3.8878, 0, 0.4801, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, + }, + }, + static = false, + visibleFrom = 650, + visibleTo = 1490, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1950_lod2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.8255, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/waggon/kesselwagen_1950_lod2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.8255, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 400, + visibleTo = 650, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1950_lod1_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.8255, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/waggon/kesselwagen_1950_lod1_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.8255, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 400, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/kesselwagen_1950_lod0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.8255, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/waggon/kesselwagen_1950_lod0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.8255, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + description = { + name = _("Tank wagon"), + description = _("Double bogie, four axle tank wagon.") + }, + railVehicle = { + topSpeed = 160, + weight = 15, + configs = { + { + axles = { "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_3_w1.msh" } + }, + { + axles = { "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_1_w1.msh" } + }, + { + axles = { "vehicle/waggon/kesselwagen_1950/kesselwagen_1950_lod_0_w1.msh" } + } + }, + soundSet = "waggon_freight_modern" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "CRUDE", capacity = 60 }, + { type = "OIL", capacity = 60 }, + { type = "FUEL", capacity = 60 }, + }, + loadSpeed = 3 + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 60 + } + + }, + +} +end diff --git a/res/models/model/vehicle/waggon/open_1850.mdl b/res/models/model/vehicle/waggon/open_1850.mdl new file mode 100755 index 0000000..90420e0 --- /dev/null +++ b/res/models/model/vehicle/waggon/open_1850.mdl @@ -0,0 +1,296 @@ +function data() +return { + boundingInfo = { + bbMax = { + 3.3591649532318, 1.3326870203018, 2.737401008606, + }, + bbMin = { + -3.3591649532318, -1.3326870203018, -0.53216099739075, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/open_1850/open_1850_lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.5249, 0, 0.4915, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.5249, 0, 0.4915, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 1, 2, 3, 4, 0, 0 + }, + }, + static = false, + visibleFrom = 250, + visibleTo = 1010, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/open_1850/open_1850_lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.5249, 0, 0.4915, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.5249, 0, 0.4915, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 1, 2, 3, 4, 0, 0 + }, + }, + static = false, + visibleFrom = 120, + visibleTo = 250, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/open_1850/open_1850_lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.5249, 0, 0.4915, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1850/open_1850_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.5249, 0, 0.4915, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 1, 2, 3, 4, 0, 0 + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 120, + + }, + }, + metadata = { + description = { + name = _("Open wagon"), + description = _("Twin axle freight wagon.") + }, + railVehicle = { + topSpeed = 80, + weight = 5, + configs = { + { + axles = { "vehicle/waggon/open_1850/open_1850_lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/open_1850/open_1850_lod_1_w1.msh" } + }, + { + axles = { "vehicle/waggon/open_1850/open_1850_lod_0_w1.msh" } + } + }, + soundSet = "waggon_freight_old" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "COAL", capacity = 16, loadIndicator = { type = "LEVEL", params = { id = 2, maxHeight = 1.2 } } }, + { type = "IRON_ORE", capacity = 16, loadIndicator = { type = "LEVEL", params = { id = 3, maxHeight = 1.2 } } }, + { type = "STONE", capacity = 16, loadIndicator = { type = "LEVEL", params = { id = 4, maxHeight = 1.2 } } }, + { type = "GRAIN", capacity = 16, loadIndicator = { type = "LEVEL", params = { id = 5, maxHeight = 1.2 } } }, + { type = "SLAG", capacity = 16, loadIndicator = { type = "LEVEL", params = { id = 6, maxHeight = 1.2 } } }, + }, + loadSpeed = 1 + }, + availability = { + yearFrom = 1850, + yearTo = 1859 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + } + + }, + +} +end diff --git a/res/models/model/vehicle/waggon/open_1910.mdl b/res/models/model/vehicle/waggon/open_1910.mdl new file mode 100755 index 0000000..457c6cd --- /dev/null +++ b/res/models/model/vehicle/waggon/open_1910.mdl @@ -0,0 +1,296 @@ +function data() +return { + boundingInfo = { + bbMax = { + 4.9892120361328, 1.493842959404, 2.4498810768127, + }, + bbMin = { + -4.9892120361328, -1.493842959404, -0.58087199926376, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/open_1910/open_1910_lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.3848, 0, 0.511, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3848, 0, 0.511, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 1, 2, 3, 4, 0, 0 + }, + }, + static = false, + visibleFrom = 250, + visibleTo = 1010, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/open_1910/open_1910_lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.3848, 0, 0.511, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3848, 0, 0.511, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 1, 2, 3, 4, 0, 0 + }, + }, + static = false, + visibleFrom = 120, + visibleTo = 250, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/open_1910/open_1910_lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.3848, 0, 0.511, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1910/open_1910_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3848, 0, 0.511, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 1, 2, 3, 4, 0, 0 + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 120, + + }, + }, + metadata = { + description = { + name = _("Open wagon"), + description = _("Twin axle freight wagon.") + }, + railVehicle = { + topSpeed = 120, + weight = 10, + configs = { + { + axles = { "vehicle/waggon/open_1910/open_1910_lod_2_w1.msh"} + }, + { + axles = { "vehicle/waggon/open_1910/open_1910_lod_1_w1.msh"} + }, + { + axles = { "vehicle/waggon/open_1910/open_1910_lod_0_w1.msh"} + } + }, + soundSet = "waggon_freight_old" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "COAL", capacity = 32, loadIndicator = { type = "LEVEL", params = { id = 2, maxHeight = 0.88 } } }, + { type = "IRON_ORE", capacity = 32, loadIndicator = { type = "LEVEL", params = { id = 3, maxHeight = 0.88 } } }, + { type = "STONE", capacity = 32, loadIndicator = { type = "LEVEL", params = { id = 4, maxHeight = 0.88 } } }, + { type = "GRAIN", capacity = 32, loadIndicator = { type = "LEVEL", params = { id = 5, maxHeight = 0.88 } } }, + { type = "SLAG", capacity = 32, loadIndicator = { type = "LEVEL", params = { id = 6, maxHeight = 0.88 } } }, + }, + loadSpeed = 2 + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + } + + }, + +} +end diff --git a/res/models/model/vehicle/waggon/open_1975.mdl b/res/models/model/vehicle/waggon/open_1975.mdl new file mode 100755 index 0000000..24a4557 --- /dev/null +++ b/res/models/model/vehicle/waggon/open_1975.mdl @@ -0,0 +1,295 @@ +function data() +return { + boundingInfo = { + bbMax = { + 7.1124649047852, 1.6697959899902, 3.2351810932159, + }, + bbMin = { + -7.1124649047852, -1.6697959899902, -0.50375598669052, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/open_1975/open_1975_lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_2_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/waggon/open_1975_lod2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.566, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/waggon/open_1975_lod2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.566, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 1, 2, 3, 4, 0, 0 + }, + }, + static = false, + visibleFrom = 350, + visibleTo = 1280, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/open_1975/open_1975_lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_1_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/waggon/open_1975_lod1_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.566, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/waggon/open_1975_lod1_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.566, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 1, 2, 3, 4, 0, 0 + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 350, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/open_1975/open_1975_lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/open_1975/open_1975_lod_0_cargo_load.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/waggon/open_1975_lod0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.566, 0, 0, 1, + }, + type = "GROUP", + + },{ + id = "vehicle/waggon/open_1975_lod0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -4.566, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 1, 2, 3, 4, 0, 0 + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + description = { + name = _("Open wagon"), + description = _("Four axle freight wagon, particularly for mass transport.") + }, + railVehicle = { + topSpeed = 160, + weight = 15, + configs = { + { + axles = { "vehicle/waggon/open_1975/open_1975_lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/open_1975/open_1975_lod_1_w1.msh" } + }, + { + axles = { "vehicle/waggon/open_1975/open_1975_lod_0_w1.msh" } + } + }, + soundSet = "waggon_freight_modern" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "COAL", capacity = 52, loadIndicator = { type = "LEVEL", params = { id = 2, maxHeight = 1.88 } } }, + { type = "IRON_ORE", capacity = 52, loadIndicator = { type = "LEVEL", params = { id = 3, maxHeight = 1.88 } } }, + { type = "STONE", capacity = 52, loadIndicator = { type = "LEVEL", params = { id = 4, maxHeight = 1.88 } } }, + { type = "GRAIN", capacity = 52, loadIndicator = { type = "LEVEL", params = { id = 5, maxHeight = 1.88 } } }, + { type = "SLAG", capacity = 52, loadIndicator = { type = "LEVEL", params = { id = 6, maxHeight = 1.88 } } }, + }, + loadSpeed = 3 + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + } + }, + +} +end diff --git a/res/models/model/vehicle/waggon/rungenwagen_1850.mdl b/res/models/model/vehicle/waggon/rungenwagen_1850.mdl new file mode 100755 index 0000000..866e2d7 --- /dev/null +++ b/res/models/model/vehicle/waggon/rungenwagen_1850.mdl @@ -0,0 +1,731 @@ +function data() + +local sx1 = 5.6/7 +local sy1 = 2.63/4.13 +local sz1 = 2.2/12 +local tx1 = 0.00 +local tz1 = 1.2 +local dz1 = .35 + +local sx2 = 5.4/7.8 +local sy2 = 2.63/3.94 +local sz2 = 2.2/13 +local tx2 = 0.0 +local tz2 = 1.2 +local dz2 = .35 + +local sx3 = 5.4/7.05 +local sy3 = 2.63/4.0 +local sz3 = 2.2/8 +local tx3 = 0.0 +local tz3 = 1.2 +local dz3 = .35 + +return { + boundingInfo = { + bbMax = { + 3.4886469841003, 1.5378539562225, 3.2384350299835, + }, + bbMin = { + -3.4886469841003, -1.5378539562225, -0.070367991924286, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/rungenwagen_1850/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 2 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 3 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 4 * dz1, 1, + }, + type = "MESH", + + + + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 2 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 3 *dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 4 * dz2, 1, + }, + type = "MESH", + + + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 2 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 3 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 4 * dz3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1850/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6389000415802, 0, 0.5149000287056, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1850/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.6389000415802, 0, 0.5149000287056, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 240, + visibleTo = 950, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/rungenwagen_1850/lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 2 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 3 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 4 * dz1, 1, + }, + type = "MESH", + + + + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 2 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 3 *dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 4 * dz2, 1, + }, + type = "MESH", + + + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 2 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 3 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 4 * dz3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1850/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6389000415802, 0, 0.5149000287056, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1850/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.6389000415802, 0, 0.5149000287056, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 240, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/rungenwagen_1850/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + + { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + + }, + + { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 2 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 3 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 4 * dz1, 1, + }, + type = "MESH", + + + + + }, + { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 2 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 3 *dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 4 * dz2, 1, + }, + type = "MESH", + + }, + { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 2 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 3 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 4 * dz3, 1, + }, + type = "MESH", + + }, + + { + id = "vehicle/waggon/rungenwagen_1850/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6389000415802, 0, 0.5149000287056, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1850/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.6389000415802, 0, 0.5149000287056, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + availability = { + yearFrom = 1850, + yearTo = 1859, + + }, + cost = { + price = -1, + + }, + description = { + name = _("Stake car"), + description = _("Twin axle stake car.") + }, + maintenance = { + lifespan = 40, + runningCosts = -1, + + }, + railVehicle = { + configs = { + { + axles = { + "vehicle/waggon/rungenwagen_1850/lod_2_w1.msh", + }, + fakeBogies = { + + }, + + }, { + axles = { + "vehicle/waggon/rungenwagen_1850/lod_1_w1.msh", + }, + fakeBogies = { + + }, + + }, { + axles = { + "vehicle/waggon/rungenwagen_1850/lod_0_w1.msh", + }, + fakeBogies = { + + }, + + }, + }, + engines = { + + }, + soundSet = { + horn = "", + name = "waggon_freight_old", + + }, + topSpeed = 80, + weight = 5, + + }, + transportVehicle = { + capacities = { + { type = "LOGS", capacity = 16, loadIndicators = { + { + params = { + levels = { + { + 2, 3, 4, 5, 6, + }, { + 3, 4, 5, 6, + }, { + 4, 5, 6, + }, { + 5, 6, + }, { + 6, + }, { + + }, + }, + + }, + type = "DISCRETE", + + }, + }, + type = "LOGS", + }, + { type = "STEEL", capacity = 16, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 7, 8, 9, 10, 11, } + } + }, + } + }, + { type = "PLANKS", capacity = 16, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 12, 13, 14, 15, 16, } + } + }, + } + }, + { type = "CONSTRUCTION_MATERIALS", capacity = 16, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 17, 18, 19, 20, 21, } + } + }, + } + }, + }, + carrier = "RAIL", + loadSpeed = 1 + + }, + + }, + +} +end diff --git a/res/models/model/vehicle/waggon/rungenwagen_1890.mdl b/res/models/model/vehicle/waggon/rungenwagen_1890.mdl new file mode 100755 index 0000000..52af921 --- /dev/null +++ b/res/models/model/vehicle/waggon/rungenwagen_1890.mdl @@ -0,0 +1,1107 @@ +function data() + +local sx1 = .7 +local sy1 = 2.63/4.13 +local sz1 = .2 +local tx1 = 2.5 +local tz1 = 1.15 +local dz1 = .4 + +local sx2 = 5/7.85 +local sy2 = 2.63/3.94 +local sz2 = 0.2 +local tx2 = 2.5 +local tz2 = 1.15 +local dz2 = .4 + +local sx3 = 5/7.15 +local sy3 = 2.63/4.0 +local sz3 = 0.4 +local tx3 = 2.5 +local tz3 = 1.15 +local dz3 = .4 + +return { + boundingInfo = { + bbMax = { + 5.7000179290771, 1.5136979818344, 3.4331810474396, + }, + bbMin = { + -5.7000179290771, -1.5136979818344, -0.50028097629547, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/rungenwagen_1890/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1890/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.9696, 0, 0.4402, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1890/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9696, 0, 0.4402, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + },{ + id = "vehicle/waggon/_freight/lod_2_freight_wood_level1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level3.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level4.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_wood_level5.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 2 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 2* dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 3 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 3 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 4 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 4 * dz1, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 2 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 2* dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 3 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 3 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 4 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 4 * dz2, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 2 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 2* dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 3 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 3 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 4 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 4 * dz3, 1, + }, + type = "MESH", + + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, 0, + 0, 0, 0, + 0, 0, + }, + }, + static = false, + visibleFrom = 210, + visibleTo = 1170, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/rungenwagen_1890/lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1890/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.9696, 0, 0.4402, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1890/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9696, 0, 0.4402, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + + },{ + id = "vehicle/waggon/_freight/lod_1_freight_wood_level1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level3.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level4.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_wood_level5.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 2 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 2* dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 3 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 3 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 4 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 4 * dz1, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 2 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 2* dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 3 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 3 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 4 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 4 * dz2, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 2 * dz3, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 2* dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 3 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 3 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 4 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 4 * dz3, 1, + }, + type = "MESH", + + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, 0, + 0, 0, 0, + 0, 0, + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 210, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/rungenwagen_1890/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1890/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.9696, 0, 0.4402, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1890/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9696, 0, 0.4402, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level4.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level5.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.5, 0, 0, 1, + }, + type = "MESH", + + + },{ + id = "vehicle/waggon/_freight/lod_0_freight_wood_level1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level3.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level4.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_wood_level5.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.5, 0, 0, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 2 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 2* dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 3 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 3 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 4 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 4 * dz1, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 2 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 2* dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 3 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 3 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 4 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 4 * dz2, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 2 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 2* dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 3 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 3 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 4 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 4 * dz3, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, 0, + 0, 0, 0, + 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + + description = { + name = _("Stake car"), + description = _("Twin axle stake car.") + }, + railVehicle = { + topSpeed = 120, + weight = 10, + configs = { + { + axles = { "vehicle/waggon/rungenwagen_1890/lod_2_w1.msh"} + }, + { + axles = { "vehicle/waggon/rungenwagen_1890/lod_1_w1.msh"} + }, + { + axles = { "vehicle/waggon/rungenwagen_1890/lod_0_w1.msh"} + } + }, + soundSet = "waggon_freight_old" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "LOGS", capacity = 32, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 4, 9, 5, 10, 6, 11, 7, 12, 8, 13 } + } + }, + } + }, + { type = "STEEL", capacity = 32, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 } + } + }, + } + }, + { type = "PLANKS", capacity = 32, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 } + } + }, + } + }, + { type = "CONSTRUCTION_MATERIALS", capacity = 32, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 } + } + }, + } + }, + }, + loadSpeed = 2 + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 60 + } + }, + +} +end diff --git a/res/models/model/vehicle/waggon/rungenwagen_1950.mdl b/res/models/model/vehicle/waggon/rungenwagen_1950.mdl new file mode 100755 index 0000000..33d6fc5 --- /dev/null +++ b/res/models/model/vehicle/waggon/rungenwagen_1950.mdl @@ -0,0 +1,783 @@ +function data() + +local sx1 = 8/7 +local sy1 = 2.63/4.13 +local sz1 = .35 +local tx1 = 4.02 +local tz1 = 1.2 +local dz1 = .7 + +local sx2 = 8/7.8 +local sy2 = 2.63/3.94 +local sz2 = 0.35 +local tx2 = 4.02 +local tz2 = 1.2 +local dz2 = .7 + +local sx3 = 8/7.3 +local sy3 = 2.63/4.0 +local sz3 = 0.55 +local tx3 = 4.02 +local tz3 = 1.2 +local dz3 = .74 + + +return { + boundingInfo = { + bbMax = { + 8.7690124511719, 1.5262520313263, 3.6753621101379, + }, + bbMin = { + -9.1690120697021, -1.5262520313263, -0.56175297498703, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/rungenwagen_1950/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + -- wood needed for rungenwagen 1950 + { + id = "vehicle/waggon/_freight/lod_2_freight_bigwood_level1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_bigwood_level2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_bigwood_level3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/waggon/_freight/lod_2_freight_bigwood_level1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_bigwood_level2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_2_freight_bigwood_level3.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4, 0, 0, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 2 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 2* dz1, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 2 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 2* dz2, 1, + }, + type = "MESH", + + + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 2 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 2* dz3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1950_lod2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.1279, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/waggon/rungenwagen_1950_lod2_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.1279, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 220, + visibleTo = 1530, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/rungenwagen_1950/lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + -- wood needed for rungenwagen 1950 + { + id = "vehicle/waggon/_freight/lod_1_freight_bigwood_level1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_bigwood_level2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_bigwood_level3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/waggon/_freight/lod_1_freight_bigwood_level1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_bigwood_level2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_1_freight_bigwood_level3.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4, 0, 0, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 2 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 2* dz1, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 2 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 2* dz2, 1, + }, + type = "MESH", + + + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 2 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_1_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 2* dz3, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/rungenwagen_1950_lod1_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.1279, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/waggon/rungenwagen_1950_lod1_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.1279, 0, 0, 1, + }, + type = "GROUP", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 100, + visibleTo = 220, + + }, { + animations = { + + }, + children = { + { + id = "vehicle/waggon/rungenwagen_1950/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + -- wood needed for rungenwagen 1950 + { + id = "vehicle/waggon/_freight/lod_0_freight_bigwood_level1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_bigwood_level2.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_bigwood_level3.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4, 0, 0, 1, + }, + type = "MESH", + + }, + { + id = "vehicle/waggon/_freight/lod_0_freight_bigwood_level1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_bigwood_level2.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/_freight/lod_0_freight_bigwood_level3.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -4, 0, 0, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, tx1, 0, tz1 + 2 * dz1, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_steel_large.msh", + transf = { + sx1, 0, 0, 0, 0, sy1, 0, 0, 0, 0, sz1, 0, -tx1, 0, tz1 + 2* dz1, 1, + }, + type = "MESH", + + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, tx2, 0, tz2 + 2 * dz2, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_planks_large.msh", + transf = { + sx2, 0, 0, 0, 0, sy2, 0, 0, 0, 0, sz2, 0, -tx2, 0, tz2 + 2* dz2, 1, + }, + type = "MESH", + + + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, tx3, 0, tz3 + 2 * dz3, 1, + }, + type = "MESH", + + }, { + id = "industry/cargo/lod_0_cargo_construction_goods_large.msh", + transf = { + sx3, 0, 0, 0, 0, sy3, 0, 0, 0, 0, sz3, 0, -tx3, 0, tz3 + 2* dz3, 1, + }, + type = "MESH", + + + + }, { + id = "vehicle/waggon/rungenwagen_1950_lod0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 6.1279, 0, 0, 1, + }, + type = "GROUP", + + }, { + id = "vehicle/waggon/rungenwagen_1950_lod0_bogie.grp", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -6.1279, 0, 0, 1, + }, + type = "GROUP", + + }, + + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + 0, 0, 0, + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 100, + + }, + }, + metadata = { + + description = { + name = _("Stake car"), + description = _("Twin bogie stake car.") + }, + railVehicle = { + topSpeed = 160, + weight = 17, + configs = { + { + axles = { "vehicle/waggon/rungenwagen_1950/lod_2_w1.msh"} + }, + { + axles = { "vehicle/waggon/rungenwagen_1950/lod_1_w1.msh"} + }, + { + axles = { "vehicle/waggon/rungenwagen_1950/lod_0_w1.msh"} + } + }, + soundSet = "waggon_freight_modern" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "LOGS", capacity = 52, loadIndicators = { + { type = "DISCRETE", params = { levels = { + { 2, 3, 4, + 5, 6, 7, }, + { 3, 4, + 5, 6, 7, }, + { 3, 4, + 6, 7, }, + { 3, 4, + 7, }, + { 4, + 7, }, + { 7 }, + { }, + } } }, + --{ ... }, + --{ ... }, + } }, + { type = "STEEL", capacity = 52, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 8, 9, 10, 11, 12, 13 } + } + }, + } + }, + { type = "PLANKS", capacity = 52, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 14, 15, 16, 17, 18, 19, } + } + }, + } + }, + { type = "CONSTRUCTION_MATERIALS", capacity = 52, loadIndicators = { + { + type = "DISCRETE", + params = { + items = { 20, 21, 22, 23, 24, 25, } + } + }, + } + }, + }, + loadSpeed = 3 + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 60 + } + + }, + +} +end diff --git a/res/models/model/vehicle/waggon/verbandswagen_v2.mdl b/res/models/model/vehicle/waggon/verbandswagen_v2.mdl new file mode 100755 index 0000000..6e38763 --- /dev/null +++ b/res/models/model/vehicle/waggon/verbandswagen_v2.mdl @@ -0,0 +1,191 @@ +function data() +return { + boundingInfo = { + bbMax = { + 4.9708189964294, 1.5710370540619, 4.468316078186, + }, + bbMin = { + -5.0028338432312, -1.5710370540619, -0.58108800649643, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/verbandswagen/verbandswagen_lod_2_verbandswagen.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/verbandswagen/verbandswagen_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3704, 0, 0.5113, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/verbandswagen/verbandswagen_lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.3704, 0, 0.5113, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 250, + visibleTo = 1300, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/verbandswagen/verbandswagen_lod_1_verbandswagen.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/verbandswagen/verbandswagen_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3704, 0, 0.5113, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/verbandswagen/verbandswagen_lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.3704, 0, 0.5113, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 120, + visibleTo = 250, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/verbandswagen/verbandswagen_lod_0_verbandswagen.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/verbandswagen/verbandswagen_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.3704, 0, 0.5113, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/verbandswagen/verbandswagen_lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.3704, 0, 0.5113, 1, + }, + type = "MESH", + + }, + }, + events = { + + }, + matConfigs = { + { + 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 120, + + }, + }, + metadata = { + description = { + name = _("Verbandswagen"), + description = _("Twin-axle boxcar built to standardize the fleet of freight cars.") + }, + railVehicle = { + topSpeed = 120, -- 120.0 + weight = 11, + configs = { + { + axles = { "vehicle/waggon/verbandswagen/verbandswagen_lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/verbandswagen/verbandswagen_lod_1_w1.msh" } + }, + { + axles = { "vehicle/waggon/verbandswagen/verbandswagen_lod_0_w1.msh" } + } + }, + soundSet = "waggon_freight_old" + }, + transportVehicle = { + carrier = "RAIL", + capacities = { + { type = "LIVESTOCK", capacity = 32 }, + { type = "PLASTIC", capacity = 32 }, + { type = "MACHINES", capacity = 32 }, + { type = "TOOLS", capacity = 32 }, + { type = "FOOD", capacity = 32 }, + { type = "GOODS", capacity = 32 }, + }, + loadSpeed = 2 + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 40 + } + }, + +} +end diff --git a/res/models/model/vehicle/waggon/wagen_bayrisch_1865.mdl b/res/models/model/vehicle/waggon/wagen_bayrisch_1865.mdl new file mode 100755 index 0000000..c25f041 --- /dev/null +++ b/res/models/model/vehicle/waggon/wagen_bayrisch_1865.mdl @@ -0,0 +1,351 @@ +local vec3 = require "vec3" +local transf = require "transf" +function data() +return { + boundingInfo = { + bbMax = { + 4.2660808563232, 1.4711810350418, 3.5781519412994, + }, + bbMin = { + -4.2660808563232, -1.4711810350418, -0.55456000566483, + }, + + }, + collider = { + params = { + + }, + type = "MESH", + + }, + lods = { + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_2_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_2_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9509, 0.4053, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_2_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.9509, -0.4053, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.8019, 0, 0.5068, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_2_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.8019, 0, 0.5068, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + }, + open_doors_left = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + }, + close_doors_left = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 220, + visibleTo = 1070, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_1_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_1_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9509, 0.4053, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_1_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.9509, -0.4053, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.8019, 0, 0.5068, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_1_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.8019, 0, 0.5068, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + }, + open_doors_left = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + }, + close_doors_left = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 120, + visibleTo = 220, + + }, + { + animations = { + + }, + children = { + { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_0_body.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_0_d1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 2.9509, 0.4053, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_0_d1.msh", + transf = { + -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, -2.9509, -0.4053, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.8019, 0, 0.5068, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_0_w1.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1.8019, 0, 0.5068, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_0_interior.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, { + id = "vehicle/waggon/wagen_bayrisch_1865/lod_0_logos.msh", + transf = { + 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, + }, + type = "MESH", + + }, + }, + events = { + open_all_doors = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + }, + close_all_doors = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + }, + open_doors_left = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + }, + close_doors_left = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + }, + open_doors_right = { + [2] = { name = "opend1", forward = true }, + [3] = { name = "opend1", forward = true }, + }, + close_doors_right = { + [2] = { name = "opend1", forward = false }, + [3] = { name = "opend1", forward = false }, + }, + }, + matConfigs = { + { + 0, 0, 0, 0, 0, + }, + }, + static = false, + visibleFrom = 0, + visibleTo = 120, + + }, + }, + metadata = { + description = { + name = _("Bavarian car"), + description = _("Two-axle coach with open platforms on both sides.") + }, + railVehicle = { + topSpeed = 50, + weight = 7, + configs = { + { + axles = { "vehicle/waggon/wagen_bayrisch_1865/lod_2_w1.msh" } + }, + { + axles = { "vehicle/waggon/wagen_bayrisch_1865/lod_1_w1.msh" } + }, + { + axles = { "vehicle/waggon/wagen_bayrisch_1865/lod_0_w1.msh" } + } + }, + soundSet = "waggon_old" + }, + transportVehicle = { + capacities = { + { type = "PASSENGERS", capacity = 30 } + }, + carrier = "RAIL", + loadSpeed = 2, + seats = { + --passangers + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-2.65, -1.1, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.65, -0.65, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-2.65, 0.9, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-2.65, 0.5, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-1.55, 1.1, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.55, 0.65, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-190.0, 0.0, 0.0), vec3.new(-1.55, -0.9, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-1.55, -0.5, 1.1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(-1.05, -1.1, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.05, -0.65, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(-1.05, 0.9, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(-1.05, 0.5, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(-0.1, 1.1, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.1, 0.65, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-190.0, 0.0, 0.0), vec3.new(-0.1, -0.9, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(-0.1, -0.5, 1.1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(.4, -1.1, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(.4, -0.65, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(.4, 0.9, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(.4, 0.5, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(200.0, 0.0, 0.0), vec3.new(1.45, 1.1, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.45, 0.65, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-190.0, 0.0, 0.0), vec3.new(1.45, -0.9, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(180.0, 0.0, 0.0), vec3.new(1.45, -0.5, 1.1))}, + + { group =1, transf = transf.rotZYXTransl(transf.degToRad(20.0, 0.0, 0.0), vec3.new(1.9, -1.1, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, -0.65, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(-20.0, 0.0, 0.0), vec3.new(1.9, 0.9, 1.1))}, + { group =1, transf = transf.rotZYXTransl(transf.degToRad(0.0, 0.0, 0.0), vec3.new(1.9, 0.5, 1.1))}, + + + + } + }, + availability = { + yearFrom = 3000, + yearTo = 3000 + }, + cost = { + price = -1 + }, + maintenance = { + runningCosts = -1, + lifespan = 30 + } + + }, + +} +end diff --git a/workshop_preview.jpg b/workshop_preview.jpg new file mode 100644 index 0000000..96de6cf Binary files /dev/null and b/workshop_preview.jpg differ