Hallo zusammen,
ich suche mir mal etwas Hilfe. Ich bin an Konstruktionen dran, wo ich mir den Code aus einer Mischung aus meinen anderen Mods und der Dokumentation zusammengekratzt habe.
Aktuell geht es um eine Nachbildung an Anlehnung des Essener Hauptbahnhofs.
Hier einmal meine Construction:
local vec3 = require "vec3"
local transf = require "transf"
local trackutil = require "trackutil"
function data()
return {
type = "RAIL_STATION",
description = {
name = _("name_con_siri_essen_hbf"),
description = _("desc_con_siri_essen_hbf")
},
availability = {
yearFrom = 1955,
yearTo = 0,
},
cost = {
price = -1
},
params = {
trackutil.makeTrackCatenaryParam(),
trackutil.makeTrackTypeParam(),
},
buildMode = "MULTI",
--categories = { "siri" },
order = 100,
skipCollision = true,
autoRemovable = false,
updateFn = function(params)
local result = {}
local edges = {}
local trackedges = {}
local trackTypes = { "standard.lua", "high_speed.lua" }
result.terrainAlignmentLists = { }
result.models = { id = "essenhbf.mdl",transf = transf.scaleRotZYXTransl(vec3.new( 1, 1, 1 ), transf.degToRad(0, 0, 0), vec3.new(0, 0 , 0.01)) }
result.edgeLists = {
{
type = "TRACK",
params = { type = trackTypes[(params.trackType or 0) + 1], catenary = params.catenary == 1 },
edges = trackedges,
snapNodes = { 0, 5, 6, 11, 12, 17, 18, 23, 24, 29, 30, 35, 36, 41, 42, 47, 48, 53, 54, 59, 65, 71 }
}
}
--track
trackedges[#trackedges + 1] = { { -18.644, 61.112, 5.845-0.53 }, { 0, -180.112, 0.0 } } -- Gleis 1 Start rechts (0)
trackedges[#trackedges + 1] = { { -18.644, -119, 5.845-0.53 }, { 0, -180.112, 0.0 } } -- Gleis 1 Mitte rechts
trackedges[#trackedges + 1] = { { -18.644, -119, 5.845-0.53 }, { 0, -1.000, 0.0 } } -- Gleis 1 Mitte rechts
trackedges[#trackedges + 1] = { { -18.644, -120, 5.845-0.53 }, { 0, -1.000, 0.0 } } -- Gleis 1 Mitte links
trackedges[#trackedges + 1] = { { -18.644, -120, 5.845-0.53 }, { 0, -179.000, 0.0 } } -- Gleis 1 Mitte links
trackedges[#trackedges + 1] = { { -18.644, -299, 5.845-0.53 }, { 0, -179.000, 0.0 } } -- Gleis 1 Mitte rechts (5)
trackedges verkürzt fürs Forum!
--Terminals
--Configurations
local terminals = { }
local modelIndex = #result.models
result.terminalGroups = { }
terminals[#terminals + 1] = { #result.models, 0 }
--Main
result.models[#result.models + 1] = { id = "essenhbf.mdl", transf = transf.scaleRotZYXTransl(vec3.new( 1, 1, 1 ), transf.degToRad(0, 0, 0), vec3.new(0, 0, 0)) }
--Bahnsteig 1
result.terminalGroups[#result.terminalGroups + 1] = {
terminals = {{modelIndex, 0}},
vehicleNodeOverride = 3
}
--Bahnsteig 2
result.terminalGroups[#result.terminalGroups + 1] = {
terminals = {{modelIndex, 0}},
vehicleNodeOverride = 8
}
--Bahnsteig 3
result.terminalGroups[#result.terminalGroups + 1] = {
terminals = {{modelIndex, 0}},
vehicleNodeOverride = 15
}
... verkürzt für das Forum
result.groundFaces = {
{
face = {
{25.0, -13.24, 0.0},
{97.0, -13.24, 0.0},
{97.0, 13.24, 0.0},
{26.0, 13.24, 0.0},
},
modes = {
{
type = "FILL",
key = "baustelle_schotter.lua",
}
}
}
}
result.terrainAlignmentLists[#result.terrainAlignmentLists + 1] = {
type = "EQUAL",
faces = {
{
{-120.0, 10.24, 0.0},
{-120.0, 65.24, 0.0},
{-8.644, 65.24, 0.0},
{-8.644, 10.24, 0.0},
}
},
slopeLow = 0.67,
slopeHigh = 0.67,
optional = true,
}
return result
end
}
end
Alles anzeigen
Hierzu habe ich einmal eine Frage zu Zeile 40. Warum muss ich das Modell hier doppelt reinladen (wiederholt sich in Zeile 146). Bei entfernen der Zeile, gibt es einen Fehler im Spiel.
Dann habe ich noch eine Frage zu:
result.terminalGroups[#result.terminalGroups + 1] = {
terminals = {{modelIndex, 0}},
vehicleNodeOverride = 3
}
Hier stimmt was nicht. Ich kann die Terminals nicht definieren. Ändere ich die Null auf eine Zahlenreihenfolge, gibt es einen internen Fehler mit den Terminals.
Dann die mdl:
function data()
return {
boundingInfo = {
bbMax = { 35.72730255127, 277.24737548828, 33.150012969971, },
bbMin = { -110.14401245117, -299.11245727539, -0.039997339248657, },
},
collider = {
params = {
halfExtents = { 72.935653686523, 288.17993164063, 16.5950050354, },
},
transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, },
type = "BOX",
},
lods = {
{
node = {
children = {
{
materials = { "anbau_fenster.mtl", "anbau_fassade.mtl", "anbau_fassade2.mtl", "all_concrete_02_mat.mtl", "anbau_fenster1.mtl", "all_concrete_09_mat.mtl", "nieten.mtl", "all_roof_felt_01_mat.mtl", "haupt_fassade.mtl", "ind_wall_plastic_tiles_04_mat.mtl", "shared/windows/vannimed_fenster_g128.mtl", "shared/essenhbf/platformedge2.mtl", "shared/essenhbf/platform.mtl", },
mesh = "essenhbf_lod0.msh",
name = "Essen Hbf",
transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, },
},
{
materials = { "all_concrete_06_mat.mtl", },
mesh = "text_lod0.msh",
name = "Text",
transf = { 7.5497894158616e-08, 1, -3.9443045261051e-31, 0, 4.3711388286738e-08, -3.3001180777757e-15, 1, 0, 1, -7.5497894158616e-08, -4.3711388286738e-08, 0, 19.207302093506, -31.304368972778, 6.8544406890869, 1, },
},
},
name = "RootNode",
transf = { 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, },
},
static = false,
visibleFrom = 0,
visibleTo = 42846.546875,
},
},
metadata = {
availability = {
yearFrom = 0,
yearTo = 0,
},
cost = {
price = -1,
},
transportNetworkProvider = {
laneLists = {
Lane List verkürzt fürs Forum
},
terminals = {
{ personNodes = { 50 }, personEdges = { 25, 26 } },
{ personNodes = { 56 }, personEdges = { 28, 29 } },
{ personNodes = { 62 }, personEdges = { 31, 32 } },
{ personNodes = { 68 }, personEdges = { 34, 35 } },
{ personNodes = { 74 }, personEdges = { 37, 38 } },
{ personNodes = { 84 }, personEdges = { 42 } },
{ personNodes = { 88 }, personEdges = { 44, 45 } },
{ personNodes = { 94 }, personEdges = { 47, 48 } },
{ personNodes = { 100 }, personEdges = { 50, 51 } },
}
},
},
version = 1,
}
end
Alles anzeigen
Auch hier ist noch nicht alles perfekt. Es kann kein zweites Terminal definiert werden. Im Spiel werden diese nicht angezeigt. Gebe ich die personNodes und personEdges ist Terminal 1 an, läuft alles. Das ist aber falsch.
Ich würde mich freuen, wenn mal jemand mit drüber schaut und mir eventuell einen Tipp geben kann. Das ist meine zweite Construction für Transport Fever 2 und ich habe wirklich keine Ahnung von dem, was ich hier tue
.
Ein Überblick über das was ich hier eigentlich mache: