Habe den Eintrag durch die Komentare ergänzt Danke dafür
Also die Wegfindung wird in der *.mdl Datei der Ladebucht hinterlegt und diese befinden sich in diesem Ordner: res\models\model\station\road\
Ich werde jetzt den Code des Orginal cargo_medium_old.mdl hier versuchen zu Beschreiben was wofür ist.
[code]local laneutil = require "laneutil"
function data()
return {
boundingInfo = {
bbMax = {
23, 17, 5.2159490585327, /Breite, Tiefe, Höhe/ eines Objektes vom Nullpunkt aus positive Werte
},
bbMin = {
-23, -15, -0.013722999952734, /Breite, Tiefe, Höhe/ eines Objektes vom Nullpunkt aus negative Werte
Der bbMin Wert der Tiefe "-15" ist die Kante zur Straße
},
},
collider = {
params = {
},
type = "MESH",
},
lods = {
{
animations = {
},
children = { /Hier werden alle Pfade zu den Mashdateien angegeben/
{
id = "station/road/cargo_medium_old_lod_0_floor.msh", /Untergrund/
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, /Hier könnt ihr die Position des Objektes verändern alle Angaben sind in Meter was jetzt genau für was ist weis ich grade leider nicht. Wenn ihr allerdings ein Objekt Spiegeln wollt einfach auf Pos 1 und 6 ein minus davor/
},
type = "MESH",
}, {
id = "station/road/cargo_medium_old_lod_0_lanes.msh", /Untergrund/
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,
},
type = "MESH",
}, {
id = "station/road/cargo_medium_old_lod_0_station.msh", /Gebäude/
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,
},
type = "MESH",
}, {
id = "asset/industry/pallet_01_lod_0_pallet_01.msh", /Deko/
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -2.8516, -4.5346, 0.2862, 1,
},
type = "MESH",
}, {
id = "asset/industry/pallet_01_lod_0_pallet_01.msh", /Deko/
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6516, -4.5346, 0.2862, 1,
},
type = "MESH",
}, {
id = "asset/industry/pallet_01_lod_0_pallet_01.msh", /Deko/
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1.6916, -4.5346, 0.432, 1,
},
type = "MESH",
}, {
id = "asset/industry/pallet_01_lod_0_pallet_01.msh", /Deko/
transf = {
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -0.5516, -4.5346, 0.4862, 1,
},
type = "MESH",
},
},
events = {
},
matConfigs = { /Hier müssen so viele 0, eingetragen werden wie oben *.msh Pfade Sonst Crasht das Game sofort/
{
0, 0, 0,
0, 0, 0,
0,
},
},
static = false,
visibleFrom = 0, /Sichtbar von "0m"/
visibleTo = 5410, /bis "5410m" Entfernung/
},
},
metadata = {
description = {
name = _("Truck station"),
--description = _("Description")
},
availability = {
},
streetTerminal = {
cargo = true
},
streetConnector = {
streetType = "old_medium.lua" /je nach dem welche *.lua hier angegeben wird ändert sich die max. Geschwindigkeit auf dem Platz/
},
transportNetworkProvider = {
laneLists = {
{
transportModes = { "TRUCK" },
nodes = laneutil.makeLanes({ /So nun zum eigentlichen Thema/
-- lane1
{ { Seitlicher Versatz von 0, tiefen Versatz von 0, höhen Versatz von 0 }, /beim nachvolgendem Teil handelt es sich um die Kurven Radien{ 7.0, -10.0, .0 }, { .0, 7.85, .0 }, { 7.85, .0, .0 }, 3.0 },
/hier habe ich mir jetz einmal den ersten Dreierblock genommen und zur Veranschaulichung bearbeitet
{ { S1, -T1, H1 }, { S2, -T2, H2 }, { KS1, KT1, KH1 }, { KS2, KT2, KH2 }, 3.0 },
{ { S2, -T2, H2 }, { S3, -T3, H3 }, { KS2, KT2, KH2 }, { KS3, KT3, KH3 }, 3.0 },
{ { S3, -T3, H3 }, { S4, -T4, H4 }, { KS3, KT3, KH3 }, { KS4, KT4, KH4 }, 3.0 },
/Man muss sich das wie folgt vorstellen
{ S1, -T1, H1 } ist der Startpunkt einer Linie { S2, -T2, H2 } ist der Endpunkt
der Startpunkt der nächsten Linie muss mit dem Endpunkt der ersten übereinstimmen
Genau das gleiche Pinzip ist auch bei den Kurven Radien
Soweit mir bekannt steht die 3.0 am Ende für die Breite der Linie, sie wäre also 3m breit/
/nun in Bezug auf die Orginal Daten
{ { 2.0, -15.0, .0 } dies ist der erste Punkt der Linie
er ist Seitlich 2m verschoben und -15m in der Raumtiefe an dieser Stelle befindet sich der
Anschluss zur Straße für die Einfahr d.h. die Ausfahrt befindet sich auf { -2.0, -15.0, .0 }
Einfahrt
{ { 2.0, -15.0, .0 }, { 7.0, -10.0, .0 }, { .0, 7.85, .0 }, { 7.85, .0, .0 }, 3.0 },
{ { 7.0, -10.0, .0 }, { 12.0, -5.0, .0 }, { 7.85, .0, .0 }, { .0, 7.85, .0 }, 3.0 },
{ { 12.0, -5.0, .0 }, { 12.0, 1.0, .0 }, { .0, 1.0, .0 }, { .0, 1.0, .0 }, 3.0 },
{ { 12.0, 1.0, .0 }, { 12.0, 7.0, .0 }, { .0, 1.0, .0 }, { .0, 1.0, .0 }, 3.0 },
{ { 12.0, 7.0, .0 }, { 7.0, 12.0, .0 }, { .0, 7.85, .0 }, { -7.85, .0, .0 }, 3.0 },
{ { 7.0, 12.0, .0 }, { 2.0, 12.0, .0 }, { -1.0, .0, .0 }, { -1.0, .0, .0 }, 3.0 },
{ { 2.0, 12.0, .0 }, { -2.0, 12.0, .0 }, { -1.0, .0, .0 }, { -1.0, .0, .0 }, 3.0 },
{ { -2.0, 12.0, .0 }, { -7.0, 12.0, .0 }, { -1.0, .0, .0 }, { -1.0, .0, .0 }, 3.0 },
{ { -7.0, 12.0, .0 }, { -12.0, 7.0, .0 }, { -7.85, .0, .0 }, { .0, -7.85, .0 }, 3.0 },
{ { -12.0, 7.0, .0 }, { -12.0, 1.0, .0 }, { .0, -1.0, .0 }, { .0, -1.0, .0 }, 3.0 },
{ { -12.0, 1.0, .0 }, { -12.0, -5.0, .0 }, { .0, -1.0, .0 }, { .0, -1.0, .0 }, 3.0 },
{ { -12.0, -5.0, .0 }, { -7.0, -10.0, .0 }, { .0, -7.85, .0 }, { 7.85, .0, .0 },3.0 },
{ { -7.0, -10.0, .0 }, { -2.0, -15.0, .0 }, { 7.85, .0, .0 }, { .0, -7.85, .0 }, 3.0 },
Ausfahrt
Alles was sich zwischen diesen beiden Werten befindet ist
quasi eine Linie
Bei den folgenden angaben handelt es sich um die Ausweichstrecken
Startpunkt der Ausweiche
{ { 2.0, -15.0, .0 }, { 7.0, -5.0, .0 }, { 0, 1, .0 }, { .0, 1, .0 }, 3.0 },
{ { 7.0, -5.0, .0 }, { 7.0, 7.0, .0 }, { 0, 1, .0 }, { .0, 1, .0 }, 3.0 },
{ { 7.0, 7.0, .0 }, { 2.0, 12.0, .0 }, { .0, 7.85, .0 }, { -7.85, .0, .0 }, 3.0 },
Endpunkt der Ausweiche
{ 2.0, 12.0, .0 } ist der Endpunkt der Ausweiche, dieser Punkt
ist auch oben in der Hauptlinie zu finden.
Die ausweiche dient dazu den Hin- bzw. Rückweg vom Halteplatz zur
Straße zu finden ohne dabei über einen anderen Halteplatz zu fahren
Startpunkt der Ausweiche
{ { -2.0, 12.0, .0 }, { -7.0, 7.0, .0 }, { -7.85, .0, .0 }, { .0, -7.85, .0 }, 3.0 },
{ { -7.0, 7.0, .0 }, { -7.0, -5.0, .0 }, { .0, -1, .0 }, { .0, -1, .0 }, 3.0 },
{ { -7.0, -5.0, .0 }, { -2.0, -15.0, .0 }, { 0, -1, .0 }, { .0, -1, .0 }, 3.0 },
Endpunkt der Ausweiche
Demnach, wie auch im Spiel zu sehen, hat die kleine Cargo Ladestation eine Hauptlinie die
über beide Ladeplätze führt und zwei Ausweichen woraus sich zwei getrennte Linien ergeben.
})
}, {
transportModes = { "CARGO" },
nodes = laneutil.makeLanes({ /Bei diesen Angaben handelt es sich um die Wegfindung für
das Cargo Overlay und gleichzeitig für die Abmaße des Bereichs der Lagerfläche
-- ped1
Straßenanschluss Bürgersteig
{ { 6.5, -15.0, .3 } , { 14.0, -13.0, .3 }, { 0, 1, .0 }, { 1, 1, .0 }, 3.0 },
{ { 14.0, -13.0, .3 }, { 18, -13.0, 1.0 } , { 1, 0, 1 }, { 1, 0, 1 }, 3.0 },
Startpunkt Lagerfläche /auf dieser höhe Stoppen auch die Fahrzeuge "siehe Nachtrag1 unten"
{ { 18, -13.0, 1.0 } , { 18.0, -7.0, 1.0 }, { 0, 1, 0 }, { 0, 1, 0 }, 3.0 },
{ { 18.0, -7.0, 1.0 }, { 18, 10.0, 1.0 } , { 0, 1, 0 }, { 0, 1, 0 }, 3.0 },
Endpunkt Lagerfläche
-- ped2
{ { -6.5, -15.0, .3 } , { -14.0, -13.0, .3 }, { 0, 1, .0 }, { -1, 1, .0 }, 3.0 },
{ { -14.0, -13.0, .3 }, { -18, -13.0, 1.0 } , { -1, 0, 1 }, { -1, 0, 1 }, 3.0 },
{ { -18, -13.0, 1.0 } , { -18.0, -7.0, 1.0 }, { 0, 1, 0 }, { 0, 1, 0 }, 3.0 },
{ { -18.0, -7.0, 1.0 }, { -18, 10.0, 1.0 } , { 0, 1, 0 }, { 0, 1, 0 }, 3.0 },
-- connection /Hierbei handelt es sich um eine Verbindung der beiden Lagerflächen.
Damit wenn die Linien einmal die Seiten Tauschen die Ware auf die richtige Seite
wechseln kann/
{ { -14.0, -13.0, .3 }, { 14.0, -13.0, .3 } , { 1, 0, 0 }, { 1, 0, 0 }, 3.0 },
})
}
},
terminals = { /vehicleNodes sind die Haltepunkte der Fahrzeuge und personNodes sind die Endpunkte für die Verladung/
{ vehicleNode = 6, personNodes = { 44 }, personEdges = { 22 } },
{ vehicleNode = 20, personNodes = { 52 }, personEdges = { 26 } },
}
},
cost = {
price = 7000
},
},
}
end
Display More
Nachtrag1
Die Linie auf der die Fahrzeuge halten sollen muss 100% Paralel zum Lagerplatz Liegen!
Was bei meinem Mod bedeutete das der LKW auf der rechten Seite quasi direkt nach der Einfahrt stehen blib.
Ich habe aber eine Möglichkeit gefunden das zu umgehen
"Beispiel"
{ { 6.0, 1.0, .0 }, { 12.0, 7.0, .0 },
{ { 12.0, 7.0, .0 }, { 12, 12.0, .0 }
{ { 12.0, 12.0, .0 }, { 12, 20.0, .0 }
Wir gehen jetzt davon aus das diese Linien Paralel zur Lagerfläche Liegen dann würde der LKW auf { 12.0, 7.0, .0 }
zum Stehen kommen weil { 12.0, 7.0, .0 }, { 12, 12.0, .0 } Paralel zum Lagerplatz liegt
Wenn wir aber hin gehen und eine minimale Änderung vornehmen z.B.
{ { 6.0, 1.0, .0 }, { 11.9, 7.0, .0 },
{ { 11.9, 7.0, .0 }, { 12, 12.0, .0 }
{ { 12.0, 12.0, .0 }, { 12, 20.0, .0 }
Läuft die Linie erst ab { 12.0, 12.0, .0 }, { 12, 20.0, .0 } paralel und der LKW würde erst auf { 12.0, 12.0, .0 } Stoppen[/code]
Das Prinzip der Bus und Tram Stationen, warscheinlich auch der Bahnhöfe, ist fast genau so aufgebaut
So ich hoffe ich habe es halbwegs Verständlich erklärt und Wünsche euch viel Erfolg beim Modden eurer eigenen Stationen
MfG Grimes
Edit:
Nach neusten Erkenntnissen muss für jeden Haltepunkt eine durchgehende Linie von der Ein- bis zur Ausfahrt gemacht werden die Kurzen Linien dienen nur zur Abkürzung um zum Haltepunkt zu gelangen oder ihn zu Verlassen
Wenn jemand neue Infos hat darf er diesen Beitrag gerne Editieren
MfG Grimes