Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
92d2407fee
|
|||
|
41a93625f9
|
|||
|
2c4f43033f
|
|||
|
5542435cf2
|
|||
|
2af750f646
|
|||
|
8041039244
|
|||
|
58b0228838
|
|||
|
9fa64b95da
|
|||
|
c9132f472e
|
|||
|
b474a10da1
|
|||
|
cd4373cc61
|
|||
|
171ebc90fe
|
|||
|
40509c2db2
|
|||
|
4bec427289
|
|||
|
9002674718
|
|||
|
10bf990152
|
|||
|
b990fbef23
|
|||
|
2dcae51979
|
|||
|
c7f120c2ae
|
|||
|
fea10f58ff
|
|||
|
bd32631dba
|
|||
|
4e11da213e
|
|||
|
75e2ed34eb
|
|||
|
c5eb7a55db
|
|||
|
c4de9f79e0
|
|||
|
7874446a1f
|
|||
|
ce5802e97c
|
|||
|
0e02661382
|
|||
|
c1feb3c8d4
|
|||
|
d10304ebcc
|
|||
|
48a08f4b74
|
|||
|
d6152d88f0
|
|||
|
0fcacde7f2
|
3
.gitignore
vendored
@@ -5,6 +5,9 @@
|
|||||||
|
|
||||||
# Ignore dll cache files
|
# Ignore dll cache files
|
||||||
*.cache
|
*.cache
|
||||||
|
*.log
|
||||||
|
|
||||||
Settings.xml
|
Settings.xml
|
||||||
Railloader/ModSettings/*
|
Railloader/ModSettings/*
|
||||||
|
AlinasMapMod/Maps/*
|
||||||
|
TimeSync/*.json
|
||||||
|
|||||||
BIN
AlinasMapMod/AlinasMapMod.dll
Normal file
636
AlinasMapMod/AlinasMapMod.json
Normal file
@@ -0,0 +1,636 @@
|
|||||||
|
{
|
||||||
|
"items": {
|
||||||
|
"AN_Sylva_Interchange_Yard": {
|
||||||
|
"identifier": "AN_Sylva_Interchange_Yard",
|
||||||
|
"name": "Sylva Interchange Yard",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Sylva_Interchange_Yard"
|
||||||
|
],
|
||||||
|
"description": "A yard that can be useful for organizing west bound trains and storing cars if the Interchange is filled to capacity.",
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 4,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 12,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 8,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 6,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"prerequisiteSections": [
|
||||||
|
"s1"
|
||||||
|
],
|
||||||
|
"area": "sylva",
|
||||||
|
"trackSpans": [
|
||||||
|
"PAN_Sylva_Interchange_Yard_00"
|
||||||
|
],
|
||||||
|
"industryComponent": "AN_Sylva_Interchange_Yard.interchange-yard-site"
|
||||||
|
},
|
||||||
|
"AN_Sylva_Wye": {
|
||||||
|
"identifier": "AN_Sylva_Wye",
|
||||||
|
"name": "Sylva Wye",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Sylva_Wye"
|
||||||
|
],
|
||||||
|
"description": "Adds a Wye at the Sylva Interchange, great for turning around those massive Berks.",
|
||||||
|
"area": "sylva",
|
||||||
|
"trackSpans": [
|
||||||
|
"PAN_Sylva_Wye_00"
|
||||||
|
],
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM",
|
||||||
|
"count": 1,
|
||||||
|
"load": "mow-machinery",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB",
|
||||||
|
"count": 100,
|
||||||
|
"load": "debris",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM",
|
||||||
|
"count": 1,
|
||||||
|
"load": "mow-machinery",
|
||||||
|
"direction": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 6,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 5,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"prerequisiteSections": [
|
||||||
|
"s1",
|
||||||
|
"AN_Sylva_Interchange_Yard"
|
||||||
|
],
|
||||||
|
"industryComponent": "AN_Sylva_Wye.wye-site"
|
||||||
|
},
|
||||||
|
"AN_Sylva_Paper_Crossover": {
|
||||||
|
"identifier": "AN_Sylva_Paper_Crossover",
|
||||||
|
"name": "Sylva Paper Crossovers",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Sylva_Paper_Crossover"
|
||||||
|
],
|
||||||
|
"description": "Adds two Crossovers at Sylva Paperboard.",
|
||||||
|
"area": "sylva",
|
||||||
|
"trackSpans": [
|
||||||
|
"PAN_Sylva_Paper_Crossover_00"
|
||||||
|
],
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 1000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 1,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 1,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 1,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"prerequisiteSections": [
|
||||||
|
"s1"
|
||||||
|
],
|
||||||
|
"industryComponent": "AN_Sylva_Paper_Crossover.sylva-paper-crossover-site"
|
||||||
|
},
|
||||||
|
"AN_Sylva_Pax_Storage": {
|
||||||
|
"identifier": "AN_Sylva_Pax_Storage",
|
||||||
|
"name": "Sylva Pax Storage",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Sylva_Pax_Storage"
|
||||||
|
],
|
||||||
|
"description": "Adds two storage tracks to Sylva Station.",
|
||||||
|
"area": "sylva",
|
||||||
|
"trackSpans": [
|
||||||
|
"PAN_Sylva_Pax_Storage_00"
|
||||||
|
],
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"prerequisiteSections": [
|
||||||
|
"s1"
|
||||||
|
],
|
||||||
|
"industryComponent": "AN_Sylva_Pax_Storage.sylva-station-site"
|
||||||
|
},
|
||||||
|
"AN_Whittier_Yard_Sawmill": {
|
||||||
|
"identifier": "AN_Whittier_Yard_Sawmill",
|
||||||
|
"name": "Whittier Sawmill Connection",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Whittier_Yard_Sawmill"
|
||||||
|
],
|
||||||
|
"description": "Extend the sawmill track over to the interchange",
|
||||||
|
"trackSpans": [
|
||||||
|
"PAN_Whittier_Yard_00"
|
||||||
|
],
|
||||||
|
"area": "whittier",
|
||||||
|
"industryComponent": "AN_Whittier_Yard.sawmill-site",
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 4,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 1,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"AN_Whittier_Yard_1": {
|
||||||
|
"identifier": "AN_Whittier_Yard_1",
|
||||||
|
"name": "Whittier Yard ",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Whittier_Yard_Yard_Lead",
|
||||||
|
"AN_Whittier_Yard_Yard_Track_6",
|
||||||
|
"AN_Whittier_Yard_Yard_Track_7",
|
||||||
|
"AN_Whittier_Yard_Yard_Track_8"
|
||||||
|
],
|
||||||
|
"trackSpans": [
|
||||||
|
"PAN_Whittier_Yard_00"
|
||||||
|
],
|
||||||
|
"industryComponent": "AN_Whittier_Yard.yard-site-1",
|
||||||
|
"area": "whittier",
|
||||||
|
"description": "A yard that can be useful for organizing trains and storing cars.",
|
||||||
|
"prerequisiteSections": [
|
||||||
|
"AN_Whittier_Yard_Sawmill"
|
||||||
|
],
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 8,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 12,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 6,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 8,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 6,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"AN_Whittier_Yard_2": {
|
||||||
|
"identifier": "AN_Whittier_Yard_2",
|
||||||
|
"name": "Whittier Yard Extension 2",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Whittier_Yard_Yard_Track_3",
|
||||||
|
"AN_Whittier_Yard_Yard_Track_4",
|
||||||
|
"AN_Whittier_Yard_Yard_Track_5"
|
||||||
|
],
|
||||||
|
"trackSpans": [
|
||||||
|
"PAN_Whittier_Yard_00"
|
||||||
|
],
|
||||||
|
"industryComponent": "AN_Whittier_Yard.yard-site-2",
|
||||||
|
"area": "whittier",
|
||||||
|
"description": "An additional 3 tracks for the Whittier yard",
|
||||||
|
"prerequisiteSections": [
|
||||||
|
"AN_Whittier_Yard_Sawmill",
|
||||||
|
"AN_Whittier_Yard_1"
|
||||||
|
],
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 8,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 12,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 6,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 8,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 6,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"AN_Whittier_Yard_3": {
|
||||||
|
"identifier": "AN_Whittier_Yard_3",
|
||||||
|
"name": "Whittier Yard Extension 3",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Whittier_Yard_Yard_Track_0",
|
||||||
|
"AN_Whittier_Yard_Yard_Track_1",
|
||||||
|
"AN_Whittier_Yard_Yard_Track_2"
|
||||||
|
],
|
||||||
|
"trackSpans": [
|
||||||
|
"PAN_Whittier_Yard_00"
|
||||||
|
],
|
||||||
|
"industryComponent": "AN_Whittier_Yard.yard-site-3",
|
||||||
|
"area": "whittier",
|
||||||
|
"description": "An additional 3 tracks for the Whittier yard",
|
||||||
|
"prerequisiteSections": [
|
||||||
|
"AN_Whittier_Yard_Sawmill",
|
||||||
|
"AN_Whittier_Yard_1",
|
||||||
|
"AN_Whittier_Yard_2"
|
||||||
|
],
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 8,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 12,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 6,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 8,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 6,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"AN_Andrews_Interchange_Yard": {
|
||||||
|
"identifier": "AN_Andrews_Interchange_Yard",
|
||||||
|
"name": "Andrews Interchange Yard",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Andrews_Interchange_Yard"
|
||||||
|
],
|
||||||
|
"description": "A yard that can be useful for organizing east bound trains and storing cars if the Interchange is filled to capacity.",
|
||||||
|
"trackSpans": [
|
||||||
|
"PAN_Andrews_Interchange_Yard_00"
|
||||||
|
],
|
||||||
|
"industryComponent": "AN_Andrews_Interchange_Yard.interchange-yard-site",
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 4,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 12,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 8,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 6,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"prerequisiteSections": [
|
||||||
|
"s6"
|
||||||
|
],
|
||||||
|
"area": "andrews"
|
||||||
|
},
|
||||||
|
"AN_Alarka_Jct_Additional": {
|
||||||
|
"identifier": "AN_Alarka_Jct_Additional",
|
||||||
|
"name": "Alarka Jct Additional Tracks",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Alarka_Jct_Additional"
|
||||||
|
],
|
||||||
|
"description": "Additional tracks in Alarka Jct, currently just a bypass around the interchange.",
|
||||||
|
"prerequisiteSections": [
|
||||||
|
"alarka-jct"
|
||||||
|
],
|
||||||
|
"trackSpans": [
|
||||||
|
"Pevc"
|
||||||
|
],
|
||||||
|
"industryComponent": "AN_Alarka_Jct_Additional.alarka-bypass-site",
|
||||||
|
"area": "alarka-jct",
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 4,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 1,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"AN_Alarka_Pax_Storage": {
|
||||||
|
"identifier": "AN_Alarka_Pax_Storage",
|
||||||
|
"name": "Alarka Pax Storage",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Alarka_Pax_Storage"
|
||||||
|
],
|
||||||
|
"description": "Adds two storage tracks to Alarka Station.",
|
||||||
|
"area": "alarka",
|
||||||
|
"trackSpans": [
|
||||||
|
"PAN_Alarka_Pax_Storage_00"
|
||||||
|
],
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"prerequisiteSections": [
|
||||||
|
"alarka-branch"
|
||||||
|
],
|
||||||
|
"industryComponent": "AN_Alarka_Pax_Storage.alarka-station-site"
|
||||||
|
},
|
||||||
|
"AN_Alarka_Loop": {
|
||||||
|
"identifier": "AN_Alarka_Loop",
|
||||||
|
"name": "Alarka Balloon Loop",
|
||||||
|
"groupIds": [
|
||||||
|
"AN_Alarka_Loop"
|
||||||
|
],
|
||||||
|
"description": "Balloon loop in Alarka, no more fighting with a Wye.",
|
||||||
|
"prerequisiteSections": [
|
||||||
|
"alarka-branch"
|
||||||
|
],
|
||||||
|
"trackSpans": [
|
||||||
|
"PAN_Alarka_Loop_00"
|
||||||
|
],
|
||||||
|
"industryComponent": "AN_Alarka_Loop.alarka-bypass-site",
|
||||||
|
"area": "alarka",
|
||||||
|
"deliveryPhases": [
|
||||||
|
{
|
||||||
|
"cost": 2000,
|
||||||
|
"deliveries": [
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 4,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 2,
|
||||||
|
"load": "ties",
|
||||||
|
"direction": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "FM*",
|
||||||
|
"count": 1,
|
||||||
|
"load": "rails",
|
||||||
|
"direction": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
22
AlinasMapMod/Definition.json
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"manifestVersion": 5,
|
||||||
|
"id": "AlinaNova21.AlinasMapMod",
|
||||||
|
"name": "Alina's Map Mod",
|
||||||
|
"version": "1.7.25315.2154",
|
||||||
|
"assemblies": [ "AlinasMapMod" ],
|
||||||
|
"updateUrl": "https://railroader.alinanova.dev/update.json",
|
||||||
|
"requires": [
|
||||||
|
{
|
||||||
|
"id": "railroader",
|
||||||
|
"notBefore": "2024.6.10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "railloader",
|
||||||
|
"notBefore": "1.10.0.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "Zamu.StrangeCustoms",
|
||||||
|
"notBefore": "1.10.25017.313"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
8
AlinasMapMod/mapeditor_integration.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Map Editor Integration
|
||||||
|
|
||||||
|
There are new classes adding in AlinasMapMod that allows
|
||||||
|
itself and other mods to register their objects in MapEditor.
|
||||||
|
This allows MapEditor to edit and save these objects.
|
||||||
|
|
||||||
|
There not much documentation yet, but there is a few implementations in the Loaders, Map, and Station folders. The main interfaces are IEditableObject, ITransformableObject, and IObjectFactory. There is also ICustomHelper for custom helper objects.
|
||||||
|
|
||||||
36
AlinasMapMod/paxstations.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# Pax stations
|
||||||
|
|
||||||
|
Industry:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"barkers": {
|
||||||
|
"industries": {
|
||||||
|
"barkers-station": {
|
||||||
|
"name": "Barkers Station",
|
||||||
|
"localPosition": { "x": 0, "y": 0, "z": 0},
|
||||||
|
"usesContract": false,
|
||||||
|
"components": {
|
||||||
|
"ammBarkersStation": {
|
||||||
|
"name": "Barkers Station",
|
||||||
|
"type": "AlinasMapMod.PaxStationComponent",
|
||||||
|
"timetableCode": "BC",
|
||||||
|
// Reference values: Whittier: 30, Ela: 25, Bryson: 50
|
||||||
|
"basePopulation": 10,
|
||||||
|
"loadId": "passengers",
|
||||||
|
"trackSpans": [ // Spans for loading/unloading
|
||||||
|
"PAN_Test_Mod_00"
|
||||||
|
],
|
||||||
|
// Future support for custom branches, currently supported is "Main" and "Alarka Branch"
|
||||||
|
"branch": "Main",
|
||||||
|
// List of ids of other passenger stations.
|
||||||
|
// Unsure of exact impact
|
||||||
|
"neighborIds": [],
|
||||||
|
"carTypeFilter": "*",
|
||||||
|
"sharedStorage": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
88
AlinasMapMod/progressions.md
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
# Progressions
|
||||||
|
|
||||||
|
```json
|
||||||
|
// progressions json format
|
||||||
|
{
|
||||||
|
"mapFeatures": {
|
||||||
|
"sampleMapFeature": {
|
||||||
|
"displayName": "Sample MapFeature",
|
||||||
|
"name": "Sample MapFeature",
|
||||||
|
"description": "Description",
|
||||||
|
"prerequisites": {
|
||||||
|
"anotherMapFeature": true
|
||||||
|
},
|
||||||
|
"areasEnableOnUnlock": {
|
||||||
|
"sampleArea": true
|
||||||
|
},
|
||||||
|
"defaultEnableInSandbox": false,
|
||||||
|
"gameObjectsEnableOnUnlock": {
|
||||||
|
// Existing object in world, primary here for dumps.
|
||||||
|
"path://scene/world/path/to/gameObject/in/tree": true,
|
||||||
|
// Requires scenery to be defined in a game-graph
|
||||||
|
"scenery://sampleSceneryId": true
|
||||||
|
},
|
||||||
|
"trackGroupsAvailableOnUnlock": {
|
||||||
|
"sampleGroup": true
|
||||||
|
},
|
||||||
|
"trackGroupsEnableOnUnlock": {
|
||||||
|
"sampleGroup": true
|
||||||
|
},
|
||||||
|
"unlockExcludeIndustries": {
|
||||||
|
"sampleIndustry": true
|
||||||
|
},
|
||||||
|
"unlockIncludeIndustries": {
|
||||||
|
// Includes components by default
|
||||||
|
"sampleIndustry": true
|
||||||
|
},
|
||||||
|
"unlockIncludeIndustryComponents": {
|
||||||
|
"sampleIndustryComponent": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"progressions": {
|
||||||
|
"ewh": { // ewh is the only current progression tree.
|
||||||
|
"sections": {
|
||||||
|
"sampleSection": {
|
||||||
|
"displayName": "sample milestone",
|
||||||
|
"description": "Description here",
|
||||||
|
"prerequisiteSections": {
|
||||||
|
"anotherSampleSection": true
|
||||||
|
},
|
||||||
|
"deliveryPhases": [
|
||||||
|
// Can have as many phases as you want here.
|
||||||
|
{
|
||||||
|
"cost": 1234,
|
||||||
|
"industryComponent": "sampleIndustryId.componentId",
|
||||||
|
"deliveries": [
|
||||||
|
// Can be empty for cost only milestones.
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 8,
|
||||||
|
"load": "ballast",
|
||||||
|
"direction": 0 // 0 = LoadToIndustry, 1 = LoadFromIndustry
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"carTypeFilter": "GB*",
|
||||||
|
"count": 12,
|
||||||
|
"load": "gravel",
|
||||||
|
"direction": 0 // 0 = LoadToIndustry, 1 = LoadFromIndustry
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// Important note: You cannot both disable and enable the same feature, not even in seperate sections.
|
||||||
|
"disableFeaturesOnUnlock": {
|
||||||
|
"sampleMapFeature": true
|
||||||
|
},
|
||||||
|
"enableFeaturesOnUnlock": {
|
||||||
|
"sampleMapFeature": true
|
||||||
|
},
|
||||||
|
"enableFeaturesOnAvailable": {
|
||||||
|
"sampleMapFeature": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
158
AlinasMapMod/splineys.md
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
# Splineys
|
||||||
|
|
||||||
|
All listed values are defaults, and may usually be omitted unless otherwise noted
|
||||||
|
|
||||||
|
- [Prefab Formats](#prefab-formats)
|
||||||
|
- [Telegraph Poles](#telegraph-poles)
|
||||||
|
- [Turntables](#turntables)
|
||||||
|
- [Loaders](#loaders)
|
||||||
|
- [Passenger Station Agent](#passenger-station-agent-includes-building)]
|
||||||
|
- [Passenger Stations](#passenger-stations)
|
||||||
|
- [Map Labels](#map-labels)
|
||||||
|
|
||||||
|
|
||||||
|
## Prefab formats
|
||||||
|
All prefabs use the following formats:
|
||||||
|
- Path based: `path://scene/world/path/to/gameObject/in/tree`
|
||||||
|
- Scenery: `scenery://sampleSceneryId`
|
||||||
|
- Vanilla: `vanilla://vanillaObjectid`
|
||||||
|
This is a special one for specific structures,
|
||||||
|
as of 05/10/2025, it has the following:
|
||||||
|
- roundhouseStall
|
||||||
|
- roundhouseStart
|
||||||
|
- roundhouseEnd
|
||||||
|
- coalConveyor
|
||||||
|
- coalTower
|
||||||
|
- dieselFuelingStand
|
||||||
|
- waterTower
|
||||||
|
- waterColumn
|
||||||
|
- flagStopStation
|
||||||
|
- brysonDepot
|
||||||
|
- dillsboroStation
|
||||||
|
- southernCombinationDepot
|
||||||
|
|
||||||
|
## Telegraph poles
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"handler": "AlinasMapMod.TelegraphPoleBuilder",
|
||||||
|
"polesToRaise": [1,2,3]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"handler": "AlinasMapMod.TelegraphPoleMover",
|
||||||
|
"polesToMove": [1,2,3],
|
||||||
|
"poleMovement": [
|
||||||
|
[0,1,2],
|
||||||
|
[22,2,0],
|
||||||
|
[33,3,5],
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
## Turntables
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"handler":"AlinasMapMod.Turntable.TurntableBuilder",
|
||||||
|
"radius": 15,
|
||||||
|
"subdivisions": 32,
|
||||||
|
"position": { "x": 0, "y": 0, "z": 0 },
|
||||||
|
"rotation": { "x": 0, "y": 0, "z": 0 },
|
||||||
|
"roundhouseStalls": 0,
|
||||||
|
"roundhouseTrackLength": 46,
|
||||||
|
"stallPrefab": "vanilla://roundhouseStall",
|
||||||
|
"startPrefab": "vanilla://roundhouseStart",
|
||||||
|
"endPrefab": "vanilla://roundhouseEnd"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Loaders
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"handler": "AlinasMapMod.LoaderBuilder",
|
||||||
|
"position": { "x": 0, "y": 0, "z": 0 },
|
||||||
|
"rotation": { "x": 0, "y": 0, "z": 0 },
|
||||||
|
// Must be set to one of the coal, diesel, or water prefabs
|
||||||
|
"prefab": "empty://",
|
||||||
|
// Required for coal and diesel, see example industry below
|
||||||
|
"industry": "",
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Example industry:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"loader-industry-example": {
|
||||||
|
"name": "Example industry for loaders",
|
||||||
|
"localPosition": { "x": -271.6577, "y": 0.0, "z": -22.8286133 },
|
||||||
|
"usesContract": false,
|
||||||
|
"components": {
|
||||||
|
"coaling": {
|
||||||
|
"type": "Model.Ops.IndustryUnloader",
|
||||||
|
"name": "Example Coaling Tower",
|
||||||
|
"trackSpans": [ "PExampleSpan" ],
|
||||||
|
"carTypeFilter": "HM,HT",
|
||||||
|
"sharedStorage": true,
|
||||||
|
"loadId": "coal",
|
||||||
|
"storageChangeRate": 0.0,
|
||||||
|
"maxStorage": 300000.0,
|
||||||
|
"orderAroundEmpties": false,
|
||||||
|
"carTransferRate": 1E+07,
|
||||||
|
"orderAroundLoaded": false
|
||||||
|
},
|
||||||
|
"diesel": {
|
||||||
|
"type": "Model.Ops.IndustryUnloader",
|
||||||
|
"name": "Example Diesel Stand",
|
||||||
|
"trackSpans": [ "PExampleSpan" ],
|
||||||
|
"carTypeFilter": "TM",
|
||||||
|
"sharedStorage": true,
|
||||||
|
"loadId": "diesel-fuel",
|
||||||
|
"storageChangeRate": 0.0,
|
||||||
|
"maxStorage": 16000.0,
|
||||||
|
"orderAroundEmpties": false,
|
||||||
|
"carTransferRate": 32000.0,
|
||||||
|
"orderAroundLoaded": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Passenger Station Agent (Includes building)
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"handler": "AlinasMapMod.StationAgentBuilder",
|
||||||
|
"position": {
|
||||||
|
"x": 12886,
|
||||||
|
"y": 562,
|
||||||
|
"z": 4703
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"z": 0
|
||||||
|
},
|
||||||
|
"prefab": "vanilla://flagStopStation",
|
||||||
|
"passengerStop": "whittier"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Passenger Stations
|
||||||
|
|
||||||
|
### <span style="color:red">***DEPRECATED: Use the industry component instead***
|
||||||
|
|
||||||
|
## Map Labels
|
||||||
|
### Note that live editing may have ssizing issues, these are usually resolved on a save reload.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"handler": "AlinasMapMod.Map.MapLabelBuilder",
|
||||||
|
"position": { "x": 0, "y": 0, "z": 0 },
|
||||||
|
"text": "Map Label",
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
861
AlinasMapMod/validation_framework.md
Normal file
@@ -0,0 +1,861 @@
|
|||||||
|
# Validation Framework Documentation
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The AlinasMapMod validation framework provides a standardized approach to validating spliney builder components and serialized objects. This framework uses a field-based validation system with fluent API extensions and comprehensive error reporting.
|
||||||
|
|
||||||
|
## Core Architecture
|
||||||
|
|
||||||
|
### ValidationBuilder<T> (Field-Based Validation)
|
||||||
|
|
||||||
|
The validation system is built around `ValidationBuilder<T>` which requires a field name for context:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// Create a validation builder for a specific field
|
||||||
|
var builder = new ValidationBuilder<string>("PrefabUri");
|
||||||
|
|
||||||
|
// Add validation rules using fluent API
|
||||||
|
builder.AsUri()
|
||||||
|
.AsVanillaPrefab(allowedPrefabs);
|
||||||
|
|
||||||
|
// Validate a value
|
||||||
|
var result = builder.Validate("vanilla://locomotive_steam_small");
|
||||||
|
```
|
||||||
|
|
||||||
|
### ValidationResult System
|
||||||
|
|
||||||
|
The framework provides detailed validation feedback with manual result creation:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public class ValidationResult
|
||||||
|
{
|
||||||
|
public bool IsValid { get; set; } = true;
|
||||||
|
public List<ValidationError> Errors { get; set; } = new List<ValidationError>();
|
||||||
|
public List<ValidationWarning> Warnings { get; set; } = new List<ValidationWarning>();
|
||||||
|
|
||||||
|
public void ThrowIfInvalid(); // Throws ValidationException if invalid
|
||||||
|
|
||||||
|
// Combines multiple validation results with null handling
|
||||||
|
public static ValidationResult Combine(params ValidationResult[] results);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### ValidationError and ValidationWarning
|
||||||
|
|
||||||
|
Detailed error information with context:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public class ValidationError
|
||||||
|
{
|
||||||
|
public string Field { get; set; } // Field name being validated
|
||||||
|
public string Message { get; set; } // Human-readable error message
|
||||||
|
public string Code { get; set; } // Machine-readable error code
|
||||||
|
public object Value { get; set; } // The invalid value
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ValidationWarning
|
||||||
|
{
|
||||||
|
public string Field { get; set; }
|
||||||
|
public string Message { get; set; }
|
||||||
|
public object Value { get; set; }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Validation Rules
|
||||||
|
|
||||||
|
### Core Validation Rules
|
||||||
|
|
||||||
|
- **RequiredRule<T>**: Validates non-null/non-empty values with whitespace control
|
||||||
|
- **WhitelistRule<T>**: Validates values against allowed lists (includes null validation)
|
||||||
|
- **MinValueRule<T>**: Validates minimum values for comparable types
|
||||||
|
- **EnumValidationRule<TEnum>**: Validates enum values are defined
|
||||||
|
- **CustomRule<T>**: Allows custom validation logic
|
||||||
|
|
||||||
|
### URI Validation Rules
|
||||||
|
|
||||||
|
#### Basic URI Rules
|
||||||
|
- **UriFormatRule**: Validates URI format (contains "://")
|
||||||
|
- **UriSchemeValidationRule**: Validates supported schemes (case-insensitive: path, scenery, vanilla, empty)
|
||||||
|
|
||||||
|
#### Scheme-Specific Rules (Restrictive)
|
||||||
|
- **VanillaPrefabRule**: Only allows `vanilla://` URIs, validates prefab names with path extraction
|
||||||
|
- **PathUriRule**: Only allows `path://` URIs, validates scene path format
|
||||||
|
- **SceneryUriRule**: Only allows `scenery://` URIs, rejects identifiers with paths
|
||||||
|
- **EmptyUriRule**: Only allows `empty://` URIs or null/empty values
|
||||||
|
|
||||||
|
#### Comprehensive Rules (Permissive)
|
||||||
|
- **GameObjectUriRule**: Allows multiple URI schemes, validates each according to its rules
|
||||||
|
|
||||||
|
### Cache Validation Rules
|
||||||
|
|
||||||
|
- **CacheValidationRule<T>**: Validates cache key existence with null handling and exception safety
|
||||||
|
- **CacheTypeValidationRule<TExpected>**: Validates cached object types with comprehensive error handling
|
||||||
|
|
||||||
|
## Builder Standardization
|
||||||
|
|
||||||
|
### SplineyBuilderBase Class
|
||||||
|
|
||||||
|
All builders inherit from `SplineyBuilderBase` which provides standardized patterns for logging, error handling, validation, and object creation:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public abstract class SplineyBuilderBase : StrangeCustoms.ISplineyBuilder
|
||||||
|
{
|
||||||
|
protected static readonly Serilog.ILogger Logger = Log.ForContext<SplineyBuilderBase>();
|
||||||
|
|
||||||
|
// Main build method with standardized error handling
|
||||||
|
public GameObject BuildSpliney(string id, Transform parentTransform, JObject data)
|
||||||
|
{
|
||||||
|
return SafeBuildSpliney(id, parentTransform, data, () => BuildSplineyInternal(id, parentTransform, data));
|
||||||
|
}
|
||||||
|
|
||||||
|
// To be implemented by derived classes
|
||||||
|
protected abstract GameObject BuildSplineyInternal(string id, Transform parentTransform, JObject data);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Core Builder Features
|
||||||
|
|
||||||
|
#### Input Validation
|
||||||
|
```csharp
|
||||||
|
protected virtual void ValidateInput(string id, JObject data)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(id))
|
||||||
|
throw new ValidationException("ID cannot be null or empty");
|
||||||
|
|
||||||
|
if (data == null)
|
||||||
|
throw new ValidationException("Data cannot be null");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### GameObject Creation
|
||||||
|
```csharp
|
||||||
|
protected virtual GameObject CreateGameObject(string id, Transform parentTransform, string objectTypeName = null)
|
||||||
|
{
|
||||||
|
var gameObject = new GameObject(id);
|
||||||
|
|
||||||
|
if (parentTransform != null)
|
||||||
|
{
|
||||||
|
gameObject.transform.SetParent(parentTransform);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var parent = Utils.GetParent(objectTypeName ?? "Unknown");
|
||||||
|
if (parent != null)
|
||||||
|
gameObject.transform.SetParent(parent.transform);
|
||||||
|
}
|
||||||
|
|
||||||
|
return gameObject;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Standardized Error Handling
|
||||||
|
|
||||||
|
Safe execution with structured logging and error handling:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
protected GameObject SafeBuildSpliney(string id, Transform parentTransform, JObject data, Func<GameObject> buildAction)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ValidateInput(id, data);
|
||||||
|
Logger.Information("Building {BuilderType} with ID {Id}", GetType().Name, id);
|
||||||
|
|
||||||
|
var result = buildAction();
|
||||||
|
|
||||||
|
Logger.Information("Successfully built {BuilderType} with ID {Id}", GetType().Name, id);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
catch (ValidationException ex)
|
||||||
|
{
|
||||||
|
Logger.Error(ex, "Validation failed for {BuilderType} {Id}", GetType().Name, id);
|
||||||
|
throw new ValidationException($"Validation failed for {GetType().Name} {id}: {ex.Message}", ex);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.Error(ex, "Failed to create {BuilderType} {Id}", GetType().Name, id);
|
||||||
|
throw new InvalidOperationException($"Failed to create {GetType().Name} {id}", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Transactional Building with Cleanup
|
||||||
|
|
||||||
|
For builders that need cleanup on failure:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
protected GameObject SafeBuildSplineyWithCleanup(string id, Transform parentTransform, JObject data, Func<IBuilderTransaction, GameObject> buildAction)
|
||||||
|
{
|
||||||
|
var transaction = new BuilderTransaction();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ValidateInput(id, data);
|
||||||
|
Logger.Information("Building {BuilderType} with ID {Id}", GetType().Name, id);
|
||||||
|
|
||||||
|
var result = buildAction(transaction);
|
||||||
|
transaction.Commit();
|
||||||
|
|
||||||
|
Logger.Information("Successfully built {BuilderType} with ID {Id}", GetType().Name, id);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
transaction.Rollback();
|
||||||
|
Logger.Error(ex, "Failed to create {BuilderType} {Id}", GetType().Name, id);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Deserialization and Validation
|
||||||
|
|
||||||
|
Helper method for deserializing and validating data objects:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
protected TData DeserializeAndValidate<TData>(JObject data) where TData : IValidatable
|
||||||
|
{
|
||||||
|
var deserializedData = data.ToObject<TData>();
|
||||||
|
if (deserializedData == null)
|
||||||
|
throw new ValidationException($"Failed to deserialize data as {typeof(TData).Name}");
|
||||||
|
|
||||||
|
// Use rich validation for detailed error reporting
|
||||||
|
var validationResult = deserializedData.ValidateWithDetails();
|
||||||
|
if (!validationResult.IsValid)
|
||||||
|
{
|
||||||
|
foreach (var error in validationResult.Errors)
|
||||||
|
{
|
||||||
|
Logger.Error("Validation error in {Field}: {Message}", error.Field, error.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Log warnings but continue
|
||||||
|
foreach (var warning in validationResult.Warnings)
|
||||||
|
{
|
||||||
|
Logger.Warning("Validation warning in {Field}: {Message}", warning.Field, warning.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
validationResult.ThrowIfInvalid();
|
||||||
|
return deserializedData;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Component Building Pattern
|
||||||
|
|
||||||
|
For building from serialized components that implement `ICreatableComponent`:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
protected virtual GameObject BuildFromCreatableComponent<TComponent, TSerialized>(string id, JObject data)
|
||||||
|
where TComponent : Component
|
||||||
|
where TSerialized : ICreatableComponent<TComponent>, IValidatable
|
||||||
|
{
|
||||||
|
var serialized = DeserializeAndValidate<TSerialized>(data);
|
||||||
|
Logger.Information("Creating {ObjectType} {Id} using serialized component", typeof(TComponent).Name, id);
|
||||||
|
return serialized.Create(id).gameObject;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Serialized Component Framework
|
||||||
|
|
||||||
|
### SerializedComponentBase<T>
|
||||||
|
|
||||||
|
Serialized components can inherit from `SerializedComponentBase<T>` for standardized validation functionality:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public abstract class SerializedComponentBase<T> : ISerializedPatchableComponent<T>, IValidatable
|
||||||
|
where T : Component
|
||||||
|
{
|
||||||
|
private readonly Dictionary<string, Func<ValidationResult>> _validators = new Dictionary<string, Func<ValidationResult>>();
|
||||||
|
private bool _validationConfigured = false;
|
||||||
|
|
||||||
|
// Override to configure validation rules
|
||||||
|
protected virtual void ConfigureValidation() { }
|
||||||
|
|
||||||
|
// Abstract methods to be implemented by derived classes
|
||||||
|
public abstract T Create(string id);
|
||||||
|
public abstract void Write(T comp);
|
||||||
|
public abstract void Read(T comp);
|
||||||
|
|
||||||
|
// IValidatable implementation
|
||||||
|
public virtual void Validate() => ValidateWithDetails().ThrowIfInvalid();
|
||||||
|
public virtual ValidationResult ValidateWithDetails() { /* implementation */ }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Property-Based Validation Rules
|
||||||
|
|
||||||
|
Use the `RuleFor` method to create validation rules for properties:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
protected ValidationBuilder<TValue> RuleFor<TValue>(Expression<Func<TValue>> propertyExpression)
|
||||||
|
{
|
||||||
|
// Creates a ValidationBuilder for the specified property
|
||||||
|
var propertyName = GetPropertyName(propertyExpression);
|
||||||
|
var builder = new ValidationBuilder<TValue>(propertyName);
|
||||||
|
|
||||||
|
// Store validator function for later execution
|
||||||
|
_validators[propertyName] = () => {
|
||||||
|
var propertyValue = GetPropertyValue<TValue>(propertyExpression);
|
||||||
|
var context = new ValidationContext { Owner = this };
|
||||||
|
return builder.Validate(propertyValue, context);
|
||||||
|
};
|
||||||
|
|
||||||
|
return builder;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Example Implementation
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public class SerializedLoader : SerializedComponentBase<LoaderInstance>
|
||||||
|
{
|
||||||
|
public string Prefab { get; set; }
|
||||||
|
public int Capacity { get; set; }
|
||||||
|
public Vector3 Position { get; set; }
|
||||||
|
|
||||||
|
protected override void ConfigureValidation()
|
||||||
|
{
|
||||||
|
RuleFor(() => Prefab)
|
||||||
|
.Required()
|
||||||
|
.AsUri()
|
||||||
|
.AsVanillaPrefab(VanillaPrefabs.AvailableLoaderPrefabs);
|
||||||
|
|
||||||
|
RuleFor(() => Capacity)
|
||||||
|
.GreaterThan(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override LoaderInstance Create(string id)
|
||||||
|
{
|
||||||
|
// Create and configure the component
|
||||||
|
var gameObject = new GameObject(id);
|
||||||
|
var loader = gameObject.AddComponent<LoaderInstance>();
|
||||||
|
|
||||||
|
// Apply configuration
|
||||||
|
loader.SetPrefab(Prefab);
|
||||||
|
loader.SetCapacity(Capacity);
|
||||||
|
gameObject.transform.position = Position;
|
||||||
|
|
||||||
|
return loader;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Write(LoaderInstance comp)
|
||||||
|
{
|
||||||
|
Prefab = comp.GetPrefab();
|
||||||
|
Capacity = comp.GetCapacity();
|
||||||
|
Position = comp.transform.position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Read(LoaderInstance comp)
|
||||||
|
{
|
||||||
|
comp.SetPrefab(Prefab);
|
||||||
|
comp.SetCapacity(Capacity);
|
||||||
|
comp.transform.position = Position;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Fluent Validation API
|
||||||
|
|
||||||
|
The framework provides a fluent API through extension methods on `ValidationBuilder<T>`:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var builder = new ValidationBuilder<string>("PrefabField");
|
||||||
|
|
||||||
|
// Basic validation
|
||||||
|
builder.Required() // Value must not be null/empty
|
||||||
|
.AsUri(); // Must contain "://"
|
||||||
|
|
||||||
|
// URI scheme validation
|
||||||
|
builder.AsUriScheme() // Must be supported scheme
|
||||||
|
.AsVanillaPrefab(allowedPrefabs) // Specific to vanilla:// URIs
|
||||||
|
.AsPathUri() // Specific to path:// URIs
|
||||||
|
.AsSceneryUri() // Specific to scenery:// URIs
|
||||||
|
.AsEmptyUri() // Specific to empty:// URIs
|
||||||
|
.AsGameObjectUri(allowedPrefabs); // Multiple URI forms allowed
|
||||||
|
|
||||||
|
// Numeric validation
|
||||||
|
builder.GreaterThan(0) // Value > minimum
|
||||||
|
.GreaterThanOrEqual(0); // Value >= minimum
|
||||||
|
|
||||||
|
// Enum validation
|
||||||
|
builder.AsValidEnum<MyEnum>(); // Must be defined enum value
|
||||||
|
|
||||||
|
// Custom validation
|
||||||
|
builder.Custom((value, context) => { // Custom validation logic
|
||||||
|
var result = new ValidationResult { IsValid = true };
|
||||||
|
if (/* custom condition */) {
|
||||||
|
result.IsValid = false;
|
||||||
|
result.Errors.Add(new ValidationError {
|
||||||
|
Field = context.FieldName,
|
||||||
|
Message = "Custom validation failed",
|
||||||
|
Code = "CUSTOM_ERROR",
|
||||||
|
Value = value
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
## Complete Builder Implementation Example
|
||||||
|
|
||||||
|
### Creating a New Builder
|
||||||
|
|
||||||
|
Here's how to implement a complete builder following the standardized patterns:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public class MyCustomBuilder : SplineyBuilderBase, IObjectFactory
|
||||||
|
{
|
||||||
|
public string Name => "My Custom Component";
|
||||||
|
public bool Enabled => true;
|
||||||
|
public Type ObjectType => typeof(MyCustomComponent);
|
||||||
|
|
||||||
|
protected override GameObject BuildSplineyInternal(string id, Transform parentTransform, JObject data)
|
||||||
|
{
|
||||||
|
// Use the standardized pattern for building from serialized components
|
||||||
|
return BuildFromCreatableComponent<MyCustomComponent, SerializedMyCustomComponent>(id, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEditableObject CreateObject(PatchEditor editor, string id)
|
||||||
|
{
|
||||||
|
// Create a default instance for the editor
|
||||||
|
return new SerializedMyCustomComponent
|
||||||
|
{
|
||||||
|
Prefab = "vanilla://default_prefab",
|
||||||
|
Scale = 1.0f
|
||||||
|
}.Create(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Corresponding Serialized Component
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public class SerializedMyCustomComponent : SerializedComponentBase<MyCustomComponent>
|
||||||
|
{
|
||||||
|
public string Prefab { get; set; }
|
||||||
|
public float Scale { get; set; } = 1.0f;
|
||||||
|
public bool IsActive { get; set; } = true;
|
||||||
|
|
||||||
|
protected override void ConfigureValidation()
|
||||||
|
{
|
||||||
|
RuleFor(() => Prefab)
|
||||||
|
.Required()
|
||||||
|
.AsUri()
|
||||||
|
.AsVanillaPrefab(VanillaPrefabs.AvailableComponentPrefabs);
|
||||||
|
|
||||||
|
RuleFor(() => Scale)
|
||||||
|
.GreaterThan(0.1f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override MyCustomComponent Create(string id)
|
||||||
|
{
|
||||||
|
var gameObject = CreateGameObject(id);
|
||||||
|
var component = GetOrAddComponent<MyCustomComponent>(gameObject);
|
||||||
|
|
||||||
|
ConfigureWithActivation(gameObject, () => {
|
||||||
|
component.SetPrefab(Prefab);
|
||||||
|
component.SetScale(Scale);
|
||||||
|
component.SetActive(IsActive);
|
||||||
|
});
|
||||||
|
|
||||||
|
return component;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Write(MyCustomComponent comp)
|
||||||
|
{
|
||||||
|
Prefab = comp.GetPrefab();
|
||||||
|
Scale = comp.GetScale();
|
||||||
|
IsActive = comp.IsActive();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Read(MyCustomComponent comp)
|
||||||
|
{
|
||||||
|
comp.SetPrefab(Prefab);
|
||||||
|
comp.SetScale(Scale);
|
||||||
|
comp.SetActive(IsActive);
|
||||||
|
}
|
||||||
|
|
||||||
|
private GameObject CreateGameObject(string id)
|
||||||
|
{
|
||||||
|
var gameObject = new GameObject(id);
|
||||||
|
return gameObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
private TComponent GetOrAddComponent<TComponent>(GameObject gameObject) where TComponent : Component
|
||||||
|
{
|
||||||
|
return gameObject.GetComponent<TComponent>() ?? gameObject.AddComponent<TComponent>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ConfigureWithActivation(GameObject gameObject, System.Action configureAction)
|
||||||
|
{
|
||||||
|
var wasActive = gameObject.activeSelf;
|
||||||
|
gameObject.SetActive(false);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
configureAction();
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
gameObject.SetActive(wasActive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Migration Guide
|
||||||
|
|
||||||
|
### Updating Existing Builders
|
||||||
|
|
||||||
|
1. **Inherit from SplineyBuilderBase**: Replace custom base classes with `SplineyBuilderBase`
|
||||||
|
2. **Use BuildFromCreatableComponent**: Replace manual deserialization with the standardized pattern
|
||||||
|
3. **Implement IObjectFactory**: Add `CreateObject` method for editor integration
|
||||||
|
4. **Remove custom logging**: Use the inherited `Logger` instance
|
||||||
|
|
||||||
|
**Before:**
|
||||||
|
```csharp
|
||||||
|
public class OldBuilder : ISplineyBuilder
|
||||||
|
{
|
||||||
|
public GameObject BuildSpliney(string id, Transform parent, JObject data)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var serialized = data.ToObject<SerializedComponent>();
|
||||||
|
serialized.Validate(); // Simple validation
|
||||||
|
return serialized.Create(id).gameObject;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**After:**
|
||||||
|
```csharp
|
||||||
|
public class NewBuilder : SplineyBuilderBase, IObjectFactory
|
||||||
|
{
|
||||||
|
public string Name => "My Component";
|
||||||
|
public bool Enabled => true;
|
||||||
|
public Type ObjectType => typeof(MyComponent);
|
||||||
|
|
||||||
|
protected override GameObject BuildSplineyInternal(string id, Transform parentTransform, JObject data)
|
||||||
|
{
|
||||||
|
return BuildFromCreatableComponent<MyComponent, SerializedComponent>(id, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEditableObject CreateObject(PatchEditor editor, string id) =>
|
||||||
|
new SerializedComponent().Create(id);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Updating Serialized Components
|
||||||
|
|
||||||
|
1. **Inherit from SerializedComponentBase<T>**: Replace custom validation with the standardized framework
|
||||||
|
2. **Override ConfigureValidation**: Use `RuleFor` to set up validation rules
|
||||||
|
3. **Use ValidationBuilder**: Replace manual validation with fluent API
|
||||||
|
|
||||||
|
**Before:**
|
||||||
|
```csharp
|
||||||
|
public class OldSerializedComponent : IValidatable
|
||||||
|
{
|
||||||
|
public string Prefab { get; set; }
|
||||||
|
|
||||||
|
public void Validate()
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(Prefab))
|
||||||
|
throw new ValidationException("Prefab is required");
|
||||||
|
}
|
||||||
|
|
||||||
|
public ValidationResult ValidateWithDetails()
|
||||||
|
{
|
||||||
|
// Manual validation result creation
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**After:**
|
||||||
|
```csharp
|
||||||
|
public class NewSerializedComponent : SerializedComponentBase<MyComponent>
|
||||||
|
{
|
||||||
|
public string Prefab { get; set; }
|
||||||
|
|
||||||
|
protected override void ConfigureValidation()
|
||||||
|
{
|
||||||
|
RuleFor(() => Prefab)
|
||||||
|
.Required()
|
||||||
|
.AsUri()
|
||||||
|
.AsVanillaPrefab(allowedPrefabs);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implement Create, Write, Read methods
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Builder Helper Methods
|
||||||
|
|
||||||
|
The `SplineyBuilderBase` class provides additional helper methods for common builder tasks:
|
||||||
|
|
||||||
|
### Finding Existing Components
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// Find existing components by ID using caches
|
||||||
|
protected virtual TComponent FindExistingComponent<TComponent>(string id) where TComponent : Component
|
||||||
|
{
|
||||||
|
// Uses type-specific caches for performance
|
||||||
|
if (typeof(TComponent) == typeof(PaxStationAgent))
|
||||||
|
{
|
||||||
|
StationAgentCache.Instance.TryGetValue(id, out var stationAgent);
|
||||||
|
return stationAgent as TComponent;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback to GameObject.FindObjectsOfType
|
||||||
|
return GameObject.FindObjectsOfType<TComponent>(true)
|
||||||
|
.FirstOrDefault(c => GetComponentId(c) == id);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Component ID Resolution
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// Gets component ID using common patterns
|
||||||
|
protected virtual string GetComponentId(Component component)
|
||||||
|
{
|
||||||
|
// Try common identifier patterns
|
||||||
|
var identifiableProperty = component.GetType().GetProperty("identifier");
|
||||||
|
if (identifiableProperty != null)
|
||||||
|
return identifiableProperty.GetValue(component)?.ToString();
|
||||||
|
|
||||||
|
var idProperty = component.GetType().GetProperty("Id");
|
||||||
|
if (idProperty != null)
|
||||||
|
return idProperty.GetValue(component)?.ToString();
|
||||||
|
|
||||||
|
return component.name;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Safe Component Configuration
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// Safely configure GameObject by disabling during configuration
|
||||||
|
protected virtual void ConfigureWithActivation(GameObject gameObject, System.Action configureAction)
|
||||||
|
{
|
||||||
|
var wasActive = gameObject.activeSelf;
|
||||||
|
gameObject.SetActive(false);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
configureAction();
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
gameObject.SetActive(wasActive);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Validation Patterns
|
||||||
|
|
||||||
|
#### Field-Based Validation
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// Validate a URI field
|
||||||
|
var uriBuilder = new ValidationBuilder<string>("PrefabUri");
|
||||||
|
uriBuilder.Required()
|
||||||
|
.AsUri()
|
||||||
|
.AsVanillaPrefab(VanillaPrefabs.AvailableLoaderPrefabs);
|
||||||
|
|
||||||
|
var uriResult = uriBuilder.Validate("vanilla://locomotive_steam_small");
|
||||||
|
if (!uriResult.IsValid)
|
||||||
|
{
|
||||||
|
// Handle validation errors
|
||||||
|
foreach (var error in uriResult.Errors)
|
||||||
|
{
|
||||||
|
Logger.Error("Validation error in {Field}: {Message}", error.Field, error.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate numeric values
|
||||||
|
var numberBuilder = new ValidationBuilder<int>("Subdivisions");
|
||||||
|
numberBuilder.GreaterThan(2);
|
||||||
|
|
||||||
|
var numberResult = numberBuilder.Validate(subdivisions);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Creating Validation Rules
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// Create a custom validation rule
|
||||||
|
public class PositiveNumberRule : ValidationRule<int>
|
||||||
|
{
|
||||||
|
public override ValidationResult Validate(int value, ValidationContext context)
|
||||||
|
{
|
||||||
|
var result = new ValidationResult { IsValid = true };
|
||||||
|
|
||||||
|
if (value <= 0)
|
||||||
|
{
|
||||||
|
result.IsValid = false;
|
||||||
|
result.Errors.Add(new ValidationError
|
||||||
|
{
|
||||||
|
Field = context.FieldName,
|
||||||
|
Message = $"Value must be positive, got {value}",
|
||||||
|
Code = "MUST_BE_POSITIVE",
|
||||||
|
Value = value
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use the custom rule
|
||||||
|
var builder = new ValidationBuilder<int>("MyNumber");
|
||||||
|
builder.AddRule(new PositiveNumberRule());
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Working with ValidationContext
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var context = new ValidationContext { FieldName = "PrefabField" };
|
||||||
|
var rule = new RequiredRule<string>();
|
||||||
|
var result = rule.Validate(value, context);
|
||||||
|
|
||||||
|
// The context provides field information for error messages
|
||||||
|
```
|
||||||
|
|
||||||
|
## URI Validation Architecture
|
||||||
|
|
||||||
|
### Two Types of URI Rules
|
||||||
|
|
||||||
|
The validation framework supports two distinct approaches to URI validation:
|
||||||
|
|
||||||
|
#### Restrictive Rules (Single Scheme)
|
||||||
|
These rules only accept their specific URI scheme and reject all others:
|
||||||
|
|
||||||
|
- **VanillaPrefabRule**: Only accepts `vanilla://` URIs
|
||||||
|
- **PathUriRule**: Only accepts `path://` URIs
|
||||||
|
- **SceneryUriRule**: Only accepts `scenery://` URIs
|
||||||
|
- **EmptyUriRule**: Only accepts `empty://` URIs
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// This will ONLY accept vanilla:// URIs
|
||||||
|
var vanillaBuilder = new ValidationBuilder<string>("VanillaPrefab");
|
||||||
|
vanillaBuilder.AsVanillaPrefab(allowedPrefabs);
|
||||||
|
|
||||||
|
// VALID: "vanilla://locomotive_steam_small"
|
||||||
|
// INVALID: "path://scene/SomeObject"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Permissive Rules (Multiple Schemes)
|
||||||
|
These rules accept multiple URI schemes and validate each according to its rules:
|
||||||
|
|
||||||
|
- **GameObjectUriRule**: Accepts path://, scenery://, vanilla://, empty:// schemes
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// This will accept multiple URI forms
|
||||||
|
var gameObjectBuilder = new ValidationBuilder<string>("GameObjectUri");
|
||||||
|
gameObjectBuilder.AsGameObjectUri(allowedVanillaPrefabs);
|
||||||
|
|
||||||
|
// VALID: "vanilla://locomotive_steam_small"
|
||||||
|
// VALID: "path://scene/SomeObject"
|
||||||
|
// VALID: "scenery://tree_oak"
|
||||||
|
// VALID: "empty://"
|
||||||
|
```
|
||||||
|
|
||||||
|
### URI Parsing Details
|
||||||
|
|
||||||
|
#### Vanilla Prefab Extraction
|
||||||
|
The `VanillaPrefabRule` extracts prefab names from URIs with paths:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// Input: "vanilla://Locomotive/part"
|
||||||
|
// Extracted prefab: "Locomotive"
|
||||||
|
// Validation: Check if "Locomotive" is in allowed prefabs list
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Path URI Format
|
||||||
|
Path URIs must follow the format `path://scene/GameObject1/GameObject2/...`:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// VALID: "path://scene/SomeGameObject"
|
||||||
|
// VALID: "path://scene/Parent/Child"
|
||||||
|
// INVALID: "path://notscene/SomeObject"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Scenery URI Format
|
||||||
|
Scenery URIs must be simple identifiers without paths:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// VALID: "scenery://tree_oak"
|
||||||
|
// INVALID: "scenery://category/tree_oak" // Contains path separator
|
||||||
|
```
|
||||||
|
|
||||||
|
### Case Sensitivity
|
||||||
|
URI scheme validation is case-insensitive:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
// All of these are equivalent:
|
||||||
|
// "PATH://scene/Object"
|
||||||
|
// "path://scene/Object"
|
||||||
|
// "Path://scene/Object"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Common Error Codes
|
||||||
|
|
||||||
|
The validation framework uses standardized error codes for consistent error handling:
|
||||||
|
|
||||||
|
### Core Validation Errors
|
||||||
|
- `REQUIRED`: Value is required but null/empty
|
||||||
|
- `REQUIRED_NOT_WHITESPACE`: Value cannot be whitespace-only
|
||||||
|
- `INVALID_VALUE`: Value not in allowed whitelist
|
||||||
|
- `MIN_VALUE_VIOLATION`: Value below minimum threshold
|
||||||
|
- `INVALID_ENUM_VALUE`: Enum value not defined
|
||||||
|
|
||||||
|
### URI Validation Errors
|
||||||
|
- `INVALID_URI_FORMAT`: URI missing "://" separator
|
||||||
|
- `INVALID_URI_SCHEME`: Unsupported URI scheme
|
||||||
|
- `NON_VANILLA_URI_NOT_ALLOWED`: Non-vanilla URI in vanilla-only context
|
||||||
|
- `NON_PATH_URI_NOT_ALLOWED`: Non-path URI in path-only context
|
||||||
|
- `NON_SCENERY_URI_NOT_ALLOWED`: Non-scenery URI in scenery-only context
|
||||||
|
- `NON_EMPTY_URI_NOT_ALLOWED`: Non-empty URI in empty-only context
|
||||||
|
- `INVALID_VANILLA_PREFAB`: Vanilla prefab not in allowed list
|
||||||
|
- `INVALID_PATH_URI_FORMAT`: Path URI format incorrect
|
||||||
|
- `MISSING_PATH_COMPONENTS`: Path URI missing GameObject path
|
||||||
|
- `MISSING_SCENERY_IDENTIFIER`: Scenery URI missing identifier
|
||||||
|
- `SCENERY_IDENTIFIER_CONTAINS_PATH`: Scenery identifier contains path separators
|
||||||
|
- `VALUE_MUST_BE_EMPTY`: Value must be empty or null
|
||||||
|
|
||||||
|
### Cache Validation Errors
|
||||||
|
- `CACHE_KEY_NULL_OR_EMPTY`: Cache key cannot be null or empty
|
||||||
|
- `CACHE_NOT_FOUND`: Cache key not found
|
||||||
|
- `CACHE_ACCESS_ERROR`: Error accessing cache
|
||||||
|
- `CACHE_OBJECT_NULL`: Cached object is null
|
||||||
|
- `INVALID_CACHE_OBJECT_TYPE`: Cached object has wrong type
|
||||||
|
|
||||||
|
## Benefits
|
||||||
|
|
||||||
|
1. **Field-Based Context**: Validation tied to specific fields provides clear error context
|
||||||
|
2. **Comprehensive Error Reporting**: Detailed error messages with codes, fields, and values
|
||||||
|
3. **Flexible Architecture**: Support for both restrictive and permissive validation patterns
|
||||||
|
4. **URI Scheme Awareness**: Intelligent handling of different URI schemes and formats
|
||||||
|
5. **Exception Safety**: Proper null handling and exception management
|
||||||
|
6. **Extensibility**: Easy to add new validation rules through inheritance
|
||||||
|
7. **Performance**: Efficient validation with early returns and minimal overhead
|
||||||
|
8. **Testability**: Comprehensive test coverage ensures reliability
|
||||||
|
|
||||||
|
## Migration Notes
|
||||||
|
|
||||||
|
When updating validation code:
|
||||||
|
|
||||||
|
1. **ValidationBuilder Constructor**: Always provide a field name
|
||||||
|
2. **Manual ValidationResult Creation**: No static `Valid`/`Invalid` properties
|
||||||
|
3. **URI Rule Selection**: Choose restrictive vs permissive rules based on requirements
|
||||||
|
4. **Null Handling**: Validation rules now properly handle null values
|
||||||
|
5. **Error Codes**: Use standardized error codes for consistent error handling
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
1. **Use Descriptive Field Names**: `"PrefabUri"` instead of `"field1"`
|
||||||
|
2. **Chain Validation Rules**: Use fluent API for multiple validation rules
|
||||||
|
3. **Handle ValidationResult**: Always check `IsValid` before proceeding
|
||||||
|
4. **Log Validation Errors**: Use structured logging with error context
|
||||||
|
5. **Choose Appropriate URI Rules**: Restrictive for specific schemes, permissive for flexibility
|
||||||
|
6. **Test Validation Logic**: Write tests for both valid and invalid cases
|
||||||
18
C_L_B.ASSETS/Definition.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"manifestVersion": 5,
|
||||||
|
"id": "C_L_B.ASSETS01",
|
||||||
|
"name": "C_L_B's ASSETS01",
|
||||||
|
"version": "3.1.1",
|
||||||
|
"requires": [
|
||||||
|
{
|
||||||
|
"id": "railloader",
|
||||||
|
"notBefore": "1.9.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "Zamu.StrangeCustoms",
|
||||||
|
"notBefore": "1.9.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"assemblies": [ "ModularScenery" ]
|
||||||
|
}
|
||||||
BIN
C_L_B.ASSETS/ModularScenery.dll
Normal file
BIN
C_L_B.ASSETS/ModularScenery.pdb
Normal file
BIN
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_01/Bundle
LFS
Normal file
1
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_01/Catalog.json
Normal file
2045
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_01/Definitions.json
Normal file
BIN
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_Buildings/Bundle
LFS
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"identifier":"CLB_ASSETS_Buildings","name":"CLB_ASSETS_Buildings","shared":false,"assets":{"CLB_GrainElevator01_black":{"name":"CLB_GrainElevator01_black","type":"prefab","filename":"CLB_GrainElevator01_black.prefab"},"CLB_GrainElevator01":{"name":"CLB_GrainElevator01","type":"prefab","filename":"CLB_GrainElevator01.prefab"},"CLB_Factory03_Wall80":{"name":"CLB_Factory03_Wall80","type":"prefab","filename":"CLB_Factory03_Wall80.prefab"},"CLB_Factory03_Wall40":{"name":"CLB_Factory03_Wall40","type":"prefab","filename":"CLB_Factory03_Wall40.prefab"},"CLB_Factory03_Sidewall7":{"name":"CLB_Factory03_Sidewall7","type":"prefab","filename":"CLB_Factory03_Sidewall7.prefab"},"CLB_Factory03_Sidewall6":{"name":"CLB_Factory03_Sidewall6","type":"prefab","filename":"CLB_Factory03_Sidewall6.prefab"},"CLB_Factory03_Sidewall5":{"name":"CLB_Factory03_Sidewall5","type":"prefab","filename":"CLB_Factory03_Sidewall5.prefab"},"CLB_Factory03_Sidewall4W":{"name":"CLB_Factory03_Sidewall4W","type":"prefab","filename":"CLB_Factory03_Sidewall4W.prefab"},"CLB_Factory03_Sidewall4":{"name":"CLB_Factory03_Sidewall4","type":"prefab","filename":"CLB_Factory03_Sidewall4.prefab"},"CLB_Factory03_Sidewall3W":{"name":"CLB_Factory03_Sidewall3W","type":"prefab","filename":"CLB_Factory03_Sidewall3W.prefab"},"CLB_Factory03_Sidewall3":{"name":"CLB_Factory03_Sidewall3","type":"prefab","filename":"CLB_Factory03_Sidewall3.prefab"},"CLB_Factory03_Sidewall2W":{"name":"CLB_Factory03_Sidewall2W","type":"prefab","filename":"CLB_Factory03_Sidewall2W.prefab"},"CLB_Factory03_Sidewall2":{"name":"CLB_Factory03_Sidewall2","type":"prefab","filename":"CLB_Factory03_Sidewall2.prefab"},"CLB_Factory03_Sidewall1":{"name":"CLB_Factory03_Sidewall1","type":"prefab","filename":"CLB_Factory03_Sidewall1.prefab"},"CLB_Factory03_Sidewall0":{"name":"CLB_Factory03_Sidewall0","type":"prefab","filename":"CLB_Factory03_Sidewall0.prefab"},"CLB_Factory03_Frame":{"name":"CLB_Factory03_Frame","type":"prefab","filename":"CLB_Factory03_Frame.prefab"},"CLB_Factory02":{"name":"CLB_Factory02","type":"prefab","filename":"CLB_Factory02.prefab"},"CLB_Factory01":{"name":"CLB_Factory01","type":"prefab","filename":"CLB_Factory01.prefab"},"CLB_Shed02":{"name":"CLB_Shed02","type":"prefab","filename":"CLB_Shed02.prefab"},"CLB_Shed01":{"name":"CLB_Shed01","type":"prefab","filename":"CLB_Shed01.prefab"},"CLB_Shop01_EndA_Closed":{"name":"CLB_Shop01_EndA_Closed","type":"prefab","filename":"CLB_Shop01_EndA_Closed.prefab"},"CLB_Shop01_EndA_Door":{"name":"CLB_Shop01_EndA_Door","type":"prefab","filename":"CLB_Shop01_EndA_Door.prefab"},"CLB_Shop01_EndA_Gates":{"name":"CLB_Shop01_EndA_Gates","type":"prefab","filename":"CLB_Shop01_EndA_Gates.prefab"},"CLB_Shop01_EndA_Gates_Door":{"name":"CLB_Shop01_EndA_Gates_Door","type":"prefab","filename":"CLB_Shop01_EndA_Gates_Door.prefab"},"CLB_Shop01_EndB_Closed":{"name":"CLB_Shop01_EndB_Closed","type":"prefab","filename":"CLB_Shop01_EndB_Closed.prefab"},"CLB_Shop01_EndB_Door":{"name":"CLB_Shop01_EndB_Door","type":"prefab","filename":"CLB_Shop01_EndB_Door.prefab"},"CLB_Shop01_EndB_Gates":{"name":"CLB_Shop01_EndB_Gates","type":"prefab","filename":"CLB_Shop01_EndB_Gates.prefab"},"CLB_Shop01_EndB_Gates_Door":{"name":"CLB_Shop01_EndB_Gates_Door","type":"prefab","filename":"CLB_Shop01_EndB_Gates_Door.prefab"},"CLB_Shop01_Middle":{"name":"CLB_Shop01_Middle","type":"prefab","filename":"CLB_Shop01_Middle.prefab"},"CLB_Shop01_Middle_Gate":{"name":"CLB_Shop01_Middle_Gate","type":"prefab","filename":"CLB_Shop01_Middle_Gate.prefab"},"CLB_Shop01_Crane_Bridge":{"name":"CLB_Shop01_Crane_Bridge","type":"prefab","filename":"CLB_Shop01_Crane_Bridge.prefab"},"CLB_Shop01_Crane_Trolly":{"name":"CLB_Shop01_Crane_Trolly","type":"prefab","filename":"CLB_Shop01_Crane_Trolly.prefab"},"CLB_Shop01_PreAssembled01":{"name":"CLB_Shop01_PreAssembled01","type":"prefab","filename":"CLB_Shop01_PreAssembled01.prefab"},"CLB_Shop02":{"name":"CLB_Shop02","type":"prefab","filename":"CLB_Shop02.prefab"},"CLB_Shop01_GateA":{"name":"CLB_Shop01_GateA","type":"prefab","filename":"CLB_Shop01_GateA.prefab"},"MaterialBackpack":{"name":"MaterialBackpack","type":"prefab","filename":"MaterialBackpack.prefab"},"CLB_Shop02_Gate":{"name":"CLB_Shop02_Gate","type":"prefab","filename":"CLB_Shop02_Gate.prefab"}}}
|
||||||
1565
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_Buildings/Definitions.json
Normal file
BIN
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_Text/Bundle
LFS
Normal file
1
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_Text/Catalog.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"identifier":"CLB_ASSETS_Text","name":"CLB_ASSETS_Text","shared":false,"assets":{"CLB_Text_MidsBakCo":{"name":"CLB_Text_MidsBakCo","type":"prefab","filename":"CLB_Text_MidsBakCo.prefab"},"CLB_Text_MurTex":{"name":"CLB_Text_MurTex","type":"prefab","filename":"CLB_Text_MurTex.prefab"},"CLB_Text_TucRivFurCo":{"name":"CLB_Text_TucRivFurCo","type":"prefab","filename":"CLB_Text_TucRivFurCo.prefab"},"CLB_Text_RagCabCo":{"name":"CLB_Text_RagCabCo","type":"prefab","filename":"CLB_Text_RagCabCo.prefab"},"CLB_Text_MillElec":{"name":"CLB_Text_MillElec","type":"prefab","filename":"CLB_Text_MillElec.prefab"},"CLB_Text_SmoMounSup":{"name":"CLB_Text_SmoMounSup","type":"prefab","filename":"CLB_Text_SmoMounSup.prefab"},"CLB_Text_SoutChem":{"name":"CLB_Text_SoutChem","type":"prefab","filename":"CLB_Text_SoutChem.prefab"},"CLB_Text_BrySteElec":{"name":"CLB_Text_BrySteElec","type":"prefab","filename":"CLB_Text_BrySteElec.prefab"},"CLB_Text_AppTex":{"name":"CLB_Text_AppTex","type":"prefab","filename":"CLB_Text_AppTex.prefab"},"CLB_Text_Whittier":{"name":"CLB_Text_Whittier","type":"prefab","filename":"CLB_Text_Whittier.prefab"},"CLB_Text_Whittier&WP":{"name":"CLB_Text_Whittier&WP","type":"prefab","filename":"CLB_Text_Whittier&WP.prefab"},"CLB_Text_WP&Yukon":{"name":"CLB_Text_WP&Yukon","type":"prefab","filename":"CLB_Text_WP&Yukon.prefab"},"CLB_Text_WPRepairShops":{"name":"CLB_Text_WPRepairShops","type":"prefab","filename":"CLB_Text_WPRepairShops.prefab"},"CLB_Text_SteamShop":{"name":"CLB_Text_SteamShop","type":"prefab","filename":"CLB_Text_SteamShop.prefab"},"MaterialBackpack":{"name":"MaterialBackpack","type":"prefab","filename":"MaterialBackpack.prefab"}}}
|
||||||
326
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_Text/Definitions.json
Normal file
@@ -0,0 +1,326 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_AppTex",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_AppTex",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_AppTex",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_BrySteElec",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_BrySteElec",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_BrySteElec",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_MillElec",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_MillElec",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_MillElec",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_SoutChem",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_SoutChem",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_SoutChem",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_SmoMounSup",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_SmoMounSup",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_SmoMounSup",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_MidsBakCo",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_MidsBakCo",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_MidsBakCo",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_RagCabCo",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_RagCabCo",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_RagCabCo",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_TucRivFurCo",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_TucRivFurCo",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_TucRivFurCo",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_MurTex",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_MurTex",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_MurTex",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_Whittier",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_Whittier",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_Whittier",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_Whittier&WP",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_Whittier&WP",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_Whittier&WP",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_WP&Yukon",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_WP&Yukon",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_WP&Yukon",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_WPRepairShops",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_WPRepairShops",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_WPRepairShops",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Text_SteamShop",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Text_SteamShop",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"text"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: C_L_B",
|
||||||
|
"clb-materials": {
|
||||||
|
"Main": [
|
||||||
|
"Black",
|
||||||
|
"White",
|
||||||
|
"Red"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Text_SteamShop",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_colliery/Bundle
LFS
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"identifier":"CLB_ASSETS_colliery","name":"CLB_ASSETS_colliery","shared":false,"assets":{"CLB_colliery_WashingTank01":{"name":"CLB_colliery_WashingTank01","type":"prefab","filename":"CLB_colliery_WashingTank01.prefab"},"CLB_colliery_Silo01":{"name":"CLB_colliery_Silo01","type":"prefab","filename":"CLB_colliery_Silo01.prefab"},"CLB_colliery_FanHouse01":{"name":"CLB_colliery_FanHouse01","type":"prefab","filename":"CLB_colliery_FanHouse01.prefab"},"CLB_colliery_BoilerHouse01":{"name":"CLB_colliery_BoilerHouse01","type":"prefab","filename":"CLB_colliery_BoilerHouse01.prefab"},"CLB_colliery_ConveyorPillar12A":{"name":"CLB_colliery_ConveyorPillar12A","type":"prefab","filename":"CLB_colliery_ConveyorPillar12A.prefab"},"CLB_colliery_ConveyorPillar8S":{"name":"CLB_colliery_ConveyorPillar8S","type":"prefab","filename":"CLB_colliery_ConveyorPillar8S.prefab"},"CLB_colliery_ConveyorPillar5.4S":{"name":"CLB_colliery_ConveyorPillar5.4S","type":"prefab","filename":"CLB_colliery_ConveyorPillar5.4S.prefab"},"CLB_colliery_ConveyorPillar5.4A":{"name":"CLB_colliery_ConveyorPillar5.4A","type":"prefab","filename":"CLB_colliery_ConveyorPillar5.4A.prefab"},"CLB_colliery_ConveyorPillar4.3S":{"name":"CLB_colliery_ConveyorPillar4.3S","type":"prefab","filename":"CLB_colliery_ConveyorPillar4.3S.prefab"},"CLB_colliery_Conveyor_Short":{"name":"CLB_colliery_Conveyor_Short","type":"prefab","filename":"CLB_colliery_Conveyor_Short.prefab"},"CLB_colliery_Conveyor_Ramp":{"name":"CLB_colliery_Conveyor_Ramp","type":"prefab","filename":"CLB_colliery_Conveyor_Ramp.prefab"},"CLB_colliery_Conveyor_Long":{"name":"CLB_colliery_Conveyor_Long","type":"prefab","filename":"CLB_colliery_Conveyor_Long.prefab"},"CLB_colliery_WashingPlant01":{"name":"CLB_colliery_WashingPlant01","type":"prefab","filename":"CLB_colliery_WashingPlant01.prefab"},"CLB_colliery_Headframe01":{"name":"CLB_colliery_Headframe01","type":"prefab","filename":"CLB_colliery_Headframe01.prefab"},"CLB_colliery_ConveyorTower01":{"name":"CLB_colliery_ConveyorTower01","type":"prefab","filename":"CLB_colliery_ConveyorTower01.prefab"},"CLB_colliery_Baths01":{"name":"CLB_colliery_Baths01","type":"prefab","filename":"CLB_colliery_Baths01.prefab"}}}
|
||||||
264
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_colliery/Definitions.json
Normal file
@@ -0,0 +1,264 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_Baths01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_Baths01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"industry",
|
||||||
|
"brick"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_Baths01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_ConveyorTower01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_ConveyorTower01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"industry"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_ConveyorTower01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_Headframe01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_Headframe01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"industry",
|
||||||
|
"brick"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_Headframe01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_WashingPlant01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_WashingPlant01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"industry",
|
||||||
|
"brick"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_WashingPlant01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_Conveyor_Long",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_Conveyor_Long",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"structure"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_Conveyor_Long",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_Conveyor_Ramp",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_Conveyor_Ramp",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"structure"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_Conveyor_Ramp",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_Conveyor_Short",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_Conveyor_Short",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"structure"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_Conveyor_Short",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_ConveyorPillar4.3S",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_ConveyorPillar4.3S",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"structure"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_ConveyorPillar4.3S",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_ConveyorPillar5.4A",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_ConveyorPillar5.4A",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"structure"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_ConveyorPillar5.4A",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_ConveyorPillar5.4S",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_ConveyorPillar5.4S",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"structure"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_ConveyorPillar5.4S",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_ConveyorPillar8S",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_ConveyorPillar8S",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"structure"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_ConveyorPillar8S",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_ConveyorPillar12A",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_ConveyorPillar12A",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"structure"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_ConveyorPillar12A",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_BoilerHouse01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_BoilerHouse01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"industry",
|
||||||
|
"brick"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_BoilerHouse01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_FanHouse01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_FanHouse01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"industry"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_FanHouse01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_Silo01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_Silo01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"industry"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_Silo01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_colliery_WashingTank01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_colliery_WashingTank01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"industry"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: CommonSpence"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_colliery_WashingTank01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_deko/Bundle
LFS
Normal file
1
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_deko/Catalog.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"identifier":"CLB_ASSETS_deko","name":"CLB_ASSETS_deko","shared":false,"assets":{"CLB_HydraulicPress01":{"name":"CLB_HydraulicPress01","type":"prefab","filename":"CLB_HydraulicPress01.prefab"},"CLB_Welder01":{"name":"CLB_Welder01","type":"prefab","filename":"CLB_Welder01.prefab"},"CLB_Lathe01":{"name":"CLB_Lathe01","type":"prefab","filename":"CLB_Lathe01.prefab"},"CLB_DrillPress01":{"name":"CLB_DrillPress01","type":"prefab","filename":"CLB_DrillPress01.prefab"}}}
|
||||||
72
C_L_B.ASSETS/SCAssetPacks/CLB_ASSETS_deko/Definitions.json
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"identifier": "CLB_HydraulicPress01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_HydraulicPress01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"shop",
|
||||||
|
"object"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: Scarecrow_original"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_HydraulicPress01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Welder01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Welder01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"shop",
|
||||||
|
"object"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: Yevhen Avramenko"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Welder01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_Lathe01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_Lathe01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"shop",
|
||||||
|
"object"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: ridhobahri"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_Lathe01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "CLB_DrillPress01",
|
||||||
|
"metadata": {
|
||||||
|
"name": "CLB_DrillPress01",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [
|
||||||
|
"shop",
|
||||||
|
"object"
|
||||||
|
],
|
||||||
|
"credits": "Model & Texture: xplanepilot"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "CLB_DrillPress01",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
15
EMBPiggyBackBase/Definition.json
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"manifestVersion": 5,
|
||||||
|
"id": "Embedded.PiggyBackBase",
|
||||||
|
"name": "Embeddeds Piggyback trailers and LoadID",
|
||||||
|
"version": "1.5",
|
||||||
|
"requires": [
|
||||||
|
"Zamu.StrangeCustoms"
|
||||||
|
],
|
||||||
|
"mixintos": {
|
||||||
|
"game-graph": [
|
||||||
|
"file(PBLoadID.json)"
|
||||||
|
],
|
||||||
|
"container:fm-flatcar01": ["file(PiggyBack1.json)", "file(PiggyBack2.json)", "file(PiggyBack3.json)"]
|
||||||
|
}
|
||||||
|
}
|
||||||
13
EMBPiggyBackBase/PBLoadID.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"loads": {
|
||||||
|
"PiggyBack-Trailers": {
|
||||||
|
"description": "PiggyBack-Trailers",
|
||||||
|
"units": "Pounds",
|
||||||
|
"density": 62.4,
|
||||||
|
"unitWeightInPounds": 30.0,
|
||||||
|
"importable": true,
|
||||||
|
"payPerQuantity": 0.00495,
|
||||||
|
"costPerUnit": 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
105
EMBPiggyBackBase/PiggyBack1.json
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "identifier",
|
||||||
|
"value": "fm-flatcar01"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"$clone": true,
|
||||||
|
"identifier": "PRR-PiggyBack1",
|
||||||
|
"metadata": {
|
||||||
|
"name": "PRR 1954 Piggyback Trailer",
|
||||||
|
"description": "1954 Piggyback Trailer from the PRR"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"carType": "PBF",
|
||||||
|
"basePrice": 1150,
|
||||||
|
"weightEmpty": 58000,
|
||||||
|
"loadSlots": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "loadUnits",
|
||||||
|
"value": "Pounds"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"maximumCapacity": 100000.0,
|
||||||
|
"loadUnits": "Pounds",
|
||||||
|
"requiredLoadIdentifier": ""
|
||||||
|
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "kind",
|
||||||
|
"value": "LoadModel",
|
||||||
|
"comp": "equals"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"models": {
|
||||||
|
"$replace": [
|
||||||
|
{
|
||||||
|
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
|
||||||
|
"assetIdentifier": "EMBPRR26PB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
|
||||||
|
"assetIdentifier": "EMBPRRStands"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"instances": {
|
||||||
|
"$replace":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"position": [0.0,1,0.0],
|
||||||
|
"rotation": [0,0.0,0.0,1],
|
||||||
|
"scale": [1.0,1.0,1.0]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": [0.0,1,0.0],
|
||||||
|
"rotation": [0,0.0,0.0,1],
|
||||||
|
"scale": [1.0,1.0,1.0]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "LoadModel 1",
|
||||||
|
"transform": {
|
||||||
|
"$replace":{
|
||||||
|
"position": [0.0,1.145,0.0],
|
||||||
|
"rotation": [0.0,0.0,0.0,1],
|
||||||
|
"scale": [1.0,1.0,1.0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parent": null,
|
||||||
|
"enabled": true
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$add": {
|
||||||
|
"kind": "DetailModel",
|
||||||
|
"model": {
|
||||||
|
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
|
||||||
|
"assetIdentifier": "EMBPBSupports"
|
||||||
|
},
|
||||||
|
"offset": [0.0, 0.0, 0.0],
|
||||||
|
"count": 1,
|
||||||
|
"name": "Piggy Back Car Rails/poles",
|
||||||
|
"transform": {
|
||||||
|
"position": [0, 2.231352, 0.0],
|
||||||
|
"rotation": [0.0, 0.0, 0.0, 1.0],
|
||||||
|
"scale": [1.0, 1.0, 1.0]
|
||||||
|
},
|
||||||
|
"parent": null,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
105
EMBPiggyBackBase/PiggyBack2.json
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "identifier",
|
||||||
|
"value": "fm-flatcar01"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"$clone": true,
|
||||||
|
"identifier": "SP-PiggyBack1",
|
||||||
|
"metadata": {
|
||||||
|
"name": "SP 1950s Piggyback Trailer",
|
||||||
|
"description": "1954 Piggyback Trailer from the Southern Pacific"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"carType": "PBF",
|
||||||
|
"basePrice": 1150,
|
||||||
|
"weightEmpty": 58000,
|
||||||
|
"loadSlots": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "loadUnits",
|
||||||
|
"value": "Pounds"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"maximumCapacity": 100000.0,
|
||||||
|
"loadUnits": "Pounds",
|
||||||
|
"requiredLoadIdentifier": ""
|
||||||
|
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "kind",
|
||||||
|
"value": "LoadModel",
|
||||||
|
"comp": "equals"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"models": {
|
||||||
|
"$replace": [
|
||||||
|
{
|
||||||
|
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
|
||||||
|
"assetIdentifier": "EMBSP22PB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
|
||||||
|
"assetIdentifier": "EMBSPStands"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"instances": {
|
||||||
|
"$replace":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"position": [0.0,1.15,0.0],
|
||||||
|
"rotation": [0,0.0,0.0,1],
|
||||||
|
"scale": [1.0,1.0,1.0]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": [0.0,1.15,0.0],
|
||||||
|
"rotation": [0,0.0,0.0,1],
|
||||||
|
"scale": [1.0,1.0,1.0]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "LoadModel 1",
|
||||||
|
"transform": {
|
||||||
|
"$replace":{
|
||||||
|
"position": [0.0,0,0.0],
|
||||||
|
"rotation": [0.0,0.0,0.0,1],
|
||||||
|
"scale": [1.0,1.0,1.0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parent": null,
|
||||||
|
"enabled": true
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$add": {
|
||||||
|
"kind": "DetailModel",
|
||||||
|
"model": {
|
||||||
|
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
|
||||||
|
"assetIdentifier": "EMBPBSupports"
|
||||||
|
},
|
||||||
|
"offset": [0.0, 0.0, 0.0],
|
||||||
|
"count": 1,
|
||||||
|
"name": "Piggy Back Car Rails/poles",
|
||||||
|
"transform": {
|
||||||
|
"position": [0, 2.231352, 0.0],
|
||||||
|
"rotation": [0.0, 0.0, 0.0, 1.0],
|
||||||
|
"scale": [1.0, 1.0, 1.0]
|
||||||
|
},
|
||||||
|
"parent": null,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
105
EMBPiggyBackBase/PiggyBack3.json
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "identifier",
|
||||||
|
"value": "fm-flatcar01"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"$clone": true,
|
||||||
|
"identifier": "SF-PiggyBack1",
|
||||||
|
"metadata": {
|
||||||
|
"name": "SF 1950s Piggyback Trailer",
|
||||||
|
"description": "1956 Piggyback Trailer from the Atchison Topeka & Santa Fe"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"carType": "PBF",
|
||||||
|
"basePrice": 1150,
|
||||||
|
"weightEmpty": 58000,
|
||||||
|
"loadSlots": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "loadUnits",
|
||||||
|
"value": "Pounds"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"maximumCapacity": 100000.0,
|
||||||
|
"loadUnits": "Pounds",
|
||||||
|
"requiredLoadIdentifier": ""
|
||||||
|
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "kind",
|
||||||
|
"value": "LoadModel",
|
||||||
|
"comp": "equals"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"models": {
|
||||||
|
"$replace": [
|
||||||
|
{
|
||||||
|
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
|
||||||
|
"assetIdentifier": "EMBATSF24PB"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
|
||||||
|
"assetIdentifier": "EMBATSFStands"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"instances": {
|
||||||
|
"$replace":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"position": [0.0,1.185,0.0],
|
||||||
|
"rotation": [-0.00654493831,0.0,0.0,1],
|
||||||
|
"scale": [1.0,1.0,1.0]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": [0.0,1.17,0.0],
|
||||||
|
"rotation": [0,0.0,0.0,1],
|
||||||
|
"scale": [1.0,1.0,1.0]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"name": "LoadModel 1",
|
||||||
|
"transform": {
|
||||||
|
"$replace":{
|
||||||
|
"position": [0.0,0,0.0],
|
||||||
|
"rotation": [0.0,0.0,0.0,1],
|
||||||
|
"scale": [1.0,1.0,1.0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parent": null,
|
||||||
|
"enabled": true
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$add": {
|
||||||
|
"kind": "DetailModel",
|
||||||
|
"model": {
|
||||||
|
"assetPackIdentifier": "zsc://EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets",
|
||||||
|
"assetIdentifier": "EMBPBSupports"
|
||||||
|
},
|
||||||
|
"offset": [0.0, 0.0, 0.0],
|
||||||
|
"count": 1,
|
||||||
|
"name": "Piggy Back Car Rails/poles",
|
||||||
|
"transform": {
|
||||||
|
"position": [0, 2.231352, 0.0],
|
||||||
|
"rotation": [0.0, 0.0, 0.0, 1.0],
|
||||||
|
"scale": [1.0, 1.0, 1.0]
|
||||||
|
},
|
||||||
|
"parent": null,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets/Bundle
LFS
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"identifier":"PiggyBackAssets","name":"PiggyBackAssets","shared":false,"assets":{"EMBPBSupports":{"name":"EMBPBSupports","type":"prefab","filename":"EMBPBSupports.prefab"},"EMBSPStands":{"name":"EMBSPStands","type":"prefab","filename":"EMBSPStands.prefab"},"EMBPRRStands":{"name":"EMBPRRStands","type":"prefab","filename":"EMBPRRStands.prefab"},"EMBATSFStands":{"name":"EMBATSFStands","type":"prefab","filename":"EMBATSFStands.prefab"},"EMBSP22PB":{"name":"EMBSP22PB","type":"prefab","filename":"EMBSP22PB.prefab"},"EMBPRR26PB":{"name":"EMBPRR26PB","type":"prefab","filename":"EMBPRR26PB.prefab"},"EMB10MPlatform":{"name":"EMB10MPlatform","type":"prefab","filename":"EMB10MPlatform.prefab"},"EMBEndPlatform":{"name":"EMBEndPlatform","type":"prefab","filename":"EMBEndPlatform.prefab"},"EMBMidPlatform":{"name":"EMBMidPlatform","type":"prefab","filename":"EMBMidPlatform.prefab"},"EMBPBRamp3":{"name":"EMBPBRamp3","type":"prefab","filename":"EMBPBRamp3.prefab"},"EMBPBRamp2":{"name":"EMBPBRamp2","type":"prefab","filename":"EMBPBRamp2.prefab"},"EMBPBRamp1":{"name":"EMBPBRamp1","type":"prefab","filename":"EMBPBRamp1.prefab"},"EMBATSF24PB":{"name":"EMBATSF24PB","type":"prefab","filename":"EMBATSF24PB.prefab"}}}
|
||||||
186
EMBPiggyBackBase/SCAssetPacks/PiggyBackAssets/Definitions.json
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"identifier": "EMBPBSupports",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBPBSupports",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBPBSupports",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBSPStands",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBSPStands",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBSPStands",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBATSFStands",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBATSFStands",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBATSFStands",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBPRRStands",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBPRRStands",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBPRRStands",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBSP22PB",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBSP22PB",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBSP22PB",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBPRR26PB",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBPRR26PB",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBPRR26PB",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBATSF24PB",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBATSF24PB",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBATSF24PB",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMB10MPlatform",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMB10MPlatform",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMB10MPlatform",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBEndPlatform",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBEndPlatform",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBEndPlatform",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBMidPlatform",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBMidPlatform",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBMidPlatform",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBPBRamp3",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBPBRamp3",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBPBRamp3",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBPBRamp2",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBPBRamp2",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBPBRamp2",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBPBRamp1",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBPBRamp1",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBPBRamp1",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
9
EMB_Asset_Pack/Definition.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"manifestVersion": 5,
|
||||||
|
"id": "Embedded.BuildingBlocks",
|
||||||
|
"name": "Embeddeds Non specific asset pack",
|
||||||
|
"version": "1.0",
|
||||||
|
"requires": [
|
||||||
|
"Zamu.StrangeCustoms"
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
EMB_Asset_Pack/SCAssetPacks/EmbeddedsBuildingBlocks/Bundle
LFS
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"identifier":"EmbeddedsBuildingBlocks","name":"EmbeddedsBuildingBlocks","shared":false,"assets":{"EMBPlatformRamp":{"name":"EMBPlatformRamp","type":"prefab","filename":"EMBPlatformRamp.prefab"},"EMB_PlatHalf05":{"name":"EMB_PlatHalf05","type":"prefab","filename":"EMB_PlatHalf05.prefab"},"EMB_PlatHalf10":{"name":"EMB_PlatHalf10","type":"prefab","filename":"EMB_PlatHalf10.prefab"},"EMB_PlatHalf25":{"name":"EMB_PlatHalf25","type":"prefab","filename":"EMB_PlatHalf25.prefab"},"EMB_PlatPlain10":{"name":"EMB_PlatPlain10","type":"prefab","filename":"EMB_PlatPlain10.prefab"},"EMB_PlatPlain25":{"name":"EMB_PlatPlain25","type":"prefab","filename":"EMB_PlatPlain25.prefab"},"EMB_PlatPlainCube10":{"name":"EMB_PlatPlainCube10","type":"prefab","filename":"EMB_PlatPlainCube10.prefab"},"EMB_PlatPlainCube25":{"name":"EMB_PlatPlainCube25","type":"prefab","filename":"EMB_PlatPlainCube25.prefab"},"EMB_TriangleP90d":{"name":"EMB_TriangleP90d","type":"prefab","filename":"EMB_TriangleP90d.prefab"}}}
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"identifier": "EMB_PlatHalf05",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMB_PlatHalf05",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMB_PlatHalf05",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMB_PlatPlainCube25",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMB_PlatPlainCube25",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMB_PlatPlainCube25",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMB_PlatPlainCube10",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMB_PlatPlainCube10",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMB_PlatPlainCube10",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMB_PlatPlain10",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMB_PlatPlain10",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMB_PlatPlain10",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMB_PlatPlain25",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMB_PlatPlain25",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMB_PlatPlain25",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMB_TriangleP90d",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMB_TriangleP90d",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMB_TriangleP90d",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMB_PlatHalf25",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMB_PlatHalf25",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMB_PlatHalf25",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMB_PlatHalf10",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMB_PlatHalf10",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMB_PlatHalf10",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": "EMBPlatformRamp",
|
||||||
|
"metadata": {
|
||||||
|
"name": "EMBPlatformRamp",
|
||||||
|
"description": "A new item",
|
||||||
|
"tags": [],
|
||||||
|
"credits": ""
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"kind": "Scenery",
|
||||||
|
"modelIdentifier": "EMBPlatformRamp",
|
||||||
|
"components": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
4
ForYourConvenience/Definition.Stable.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"assemblies": [ "ForYourConvenience" ],
|
||||||
|
"updateUrl": "https://railroader.stelltis.ch/updates.json"
|
||||||
|
}
|
||||||
27
ForYourConvenience/Definition.json
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"manifestVersion": 5,
|
||||||
|
"id": "Zamu.ForYourConvenience",
|
||||||
|
"name": "For Your Convenience",
|
||||||
|
"version": "1.2.24366.2200",
|
||||||
|
"requires": [
|
||||||
|
{
|
||||||
|
"id": "railloader",
|
||||||
|
"notBefore": "1.9.6.8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"redirects": [
|
||||||
|
{
|
||||||
|
"definition": "Definition.Stable.json",
|
||||||
|
"requires": [
|
||||||
|
{
|
||||||
|
"id": "railroader",
|
||||||
|
"notAfter": "2024.5.9999"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"definition": "Experimental/Definition.Experimental.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"updateUrl": "https://railroader.stelltis.ch/updates.json"
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"assemblies": [ "ForYourConvenience" ],
|
||||||
|
"updateUrl": "https://railroader.stelltis.ch/updates.json"
|
||||||
|
}
|
||||||
BIN
ForYourConvenience/Experimental/ForYourConvenience.dll
Normal file
BIN
ForYourConvenience/ForYourConvenience.dll
Normal file
32
LegosBetterLoans/LICENSE
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
By downloading, installing, or using the mod this file is included with ("the Mod"), you agree to the following terms:
|
||||||
|
|
||||||
|
1) No Redistribution:
|
||||||
|
|
||||||
|
- You may not reupload, distribute, or share the Mod on any website, platform, or service without prior written permission from the Mod's author, legotrainman ("the Author").
|
||||||
|
- Inclusion of the Mod in modpacks, compilations, or zip files intended for redistribution is strictly prohibited without explicit authorization from the Author.
|
||||||
|
2) No Modification or Reverse Engineering:
|
||||||
|
|
||||||
|
- You may not open, decompile, reverse engineer, or modify any part of the Mod, including but not limited to its .dll files or Unity Bundle files.
|
||||||
|
|
||||||
|
3) No Commercial Use:
|
||||||
|
|
||||||
|
- You may not use the Mod for any commercial purpose. This includes but is not limited to:
|
||||||
|
- Selling or monetizing access to the Mod.
|
||||||
|
- Using the Mod as part of any paid service, product, or content.
|
||||||
|
- Generating revenue through advertisements, donations, or other means directly tied to the Mod’s distribution or use.
|
||||||
|
|
||||||
|
4) Personal Use Only:
|
||||||
|
|
||||||
|
- You are granted a non-exclusive, non-transferable license to use the Mod for personal, non-commercial purposes only.
|
||||||
|
|
||||||
|
5) Liability and Warranty:
|
||||||
|
|
||||||
|
- The Mod is provided "as is" without warranty of any kind. The Author is not responsible for any damage, data loss, or other issues arising from the use of the Mod.
|
||||||
|
|
||||||
|
6) Termination:
|
||||||
|
|
||||||
|
- Failure to comply with these terms will result in the immediate termination of your right to use the Mod.
|
||||||
|
Contact:
|
||||||
|
|
||||||
|
For permissions, inquiries, or requests, contact the Author on Discord (legotrainman), or on Nexus mods (https://next.nexusmods.com/profile/legotrainman).
|
||||||
|
By using the Mod, you acknowledge that you have read, understood, and agreed to these terms.
|
||||||
BIN
LegosBetterLoans/LegosBetterLoans.dll
Normal file
8
LegosBetterLoans/info.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"Id": "LegosBetterLoans",
|
||||||
|
"Version": "1.0.0",
|
||||||
|
"DisplayName": "Legos Better Loans",
|
||||||
|
"Author": "legotrainman",
|
||||||
|
"EntryMethod": "LegosBetterLoans.Main.Load",
|
||||||
|
"ManagerVersion": "0.27.3"
|
||||||
|
}
|
||||||
32
LegosScrapalachia/LICENSE
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
By downloading, installing, or using the mod this file is included with ("the Mod"), you agree to the following terms:
|
||||||
|
|
||||||
|
1) No Redistribution:
|
||||||
|
|
||||||
|
- You may not reupload, distribute, or share the Mod on any website, platform, or service without prior written permission from the Mod's author, legotrainman ("the Author").
|
||||||
|
- Inclusion of the Mod in modpacks, compilations, or zip files intended for redistribution is strictly prohibited without explicit authorization from the Author.
|
||||||
|
2) No Modification or Reverse Engineering:
|
||||||
|
|
||||||
|
- You may not open, decompile, reverse engineer, or modify any part of the Mod, including but not limited to its .dll files or Unity Bundle files.
|
||||||
|
|
||||||
|
3) No Commercial Use:
|
||||||
|
|
||||||
|
- You may not use the Mod for any commercial purpose. This includes but is not limited to:
|
||||||
|
- Selling or monetizing access to the Mod.
|
||||||
|
- Using the Mod as part of any paid service, product, or content.
|
||||||
|
- Generating revenue through advertisements, donations, or other means directly tied to the Mod’s distribution or use.
|
||||||
|
|
||||||
|
4) Personal Use Only:
|
||||||
|
|
||||||
|
- You are granted a non-exclusive, non-transferable license to use the Mod for personal, non-commercial purposes only.
|
||||||
|
|
||||||
|
5) Liability and Warranty:
|
||||||
|
|
||||||
|
- The Mod is provided "as is" without warranty of any kind. The Author is not responsible for any damage, data loss, or other issues arising from the use of the Mod.
|
||||||
|
|
||||||
|
6) Termination:
|
||||||
|
|
||||||
|
- Failure to comply with these terms will result in the immediate termination of your right to use the Mod.
|
||||||
|
Contact:
|
||||||
|
|
||||||
|
For permissions, inquiries, or requests, contact the Author on Discord (legotrainman), or on Nexus mods (https://next.nexusmods.com/profile/legotrainman).
|
||||||
|
By using the Mod, you acknowledge that you have read, understood, and agreed to these terms.
|
||||||
BIN
LegosScrapalachia/LegosScrapalachia.dll
Normal file
8
LegosScrapalachia/info.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"Id": "LegosScrapalachia",
|
||||||
|
"Version": "1.0.3",
|
||||||
|
"DisplayName": "Lego's Scrapalachia",
|
||||||
|
"Author": "legotrainman",
|
||||||
|
"EntryMethod": "LegosScrapalachia.Main.Load",
|
||||||
|
"ManagerVersion": "0.27.3"
|
||||||
|
}
|
||||||
32
LegosUsedLocos/LICENSE
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
By downloading, installing, or using the mod this file is included with ("the Mod"), you agree to the following terms:
|
||||||
|
|
||||||
|
1) No Redistribution:
|
||||||
|
|
||||||
|
- You may not reupload, distribute, or share the Mod on any website, platform, or service without prior written permission from the Mod's author, legotrainman ("the Author").
|
||||||
|
- Inclusion of the Mod in modpacks, compilations, or zip files intended for redistribution is strictly prohibited without explicit authorization from the Author.
|
||||||
|
2) No Modification or Reverse Engineering:
|
||||||
|
|
||||||
|
- You may not open, decompile, reverse engineer, or modify any part of the Mod, including but not limited to its .dll files or Unity Bundle files.
|
||||||
|
|
||||||
|
3) No Commercial Use:
|
||||||
|
|
||||||
|
- You may not use the Mod for any commercial purpose. This includes but is not limited to:
|
||||||
|
- Selling or monetizing access to the Mod.
|
||||||
|
- Using the Mod as part of any paid service, product, or content.
|
||||||
|
- Generating revenue through advertisements, donations, or other means directly tied to the Mod’s distribution or use.
|
||||||
|
|
||||||
|
4) Personal Use Only:
|
||||||
|
|
||||||
|
- You are granted a non-exclusive, non-transferable license to use the Mod for personal, non-commercial purposes only.
|
||||||
|
|
||||||
|
5) Liability and Warranty:
|
||||||
|
|
||||||
|
- The Mod is provided "as is" without warranty of any kind. The Author is not responsible for any damage, data loss, or other issues arising from the use of the Mod.
|
||||||
|
|
||||||
|
6) Termination:
|
||||||
|
|
||||||
|
- Failure to comply with these terms will result in the immediate termination of your right to use the Mod.
|
||||||
|
Contact:
|
||||||
|
|
||||||
|
For permissions, inquiries, or requests, contact the Author on Discord (legotrainman), or on Nexus mods (https://next.nexusmods.com/profile/legotrainman).
|
||||||
|
By using the Mod, you acknowledge that you have read, understood, and agreed to these terms.
|
||||||
BIN
LegosUsedLocos/LegosUsedLocos.dll
Normal file
8
LegosUsedLocos/info.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"Id": "LegosUsedLocos",
|
||||||
|
"Version": "1.2.1",
|
||||||
|
"DisplayName": "Lego's Used Locomotive Market",
|
||||||
|
"Author": "legotrainman",
|
||||||
|
"EntryMethod": "LegosUsedLocos.Main.Load",
|
||||||
|
"ManagerVersion": "0.27.3"
|
||||||
|
}
|
||||||
21
MapEnhancer/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2023 Michael Richer a.k.a. Vanguard
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
BIN
MapEnhancer/MapEnhancer.dll
Normal file
BIN
MapEnhancer/arrow.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
MapEnhancer/flare.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
11
MapEnhancer/info.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"Id": "MapEnhancer",
|
||||||
|
"DisplayName": "Map Enhancer",
|
||||||
|
"Author": "Vanguard",
|
||||||
|
"Version": "1.5.4.2",
|
||||||
|
"AssemblyName": "MapEnhancer.dll",
|
||||||
|
"EntryMethod": "MapEnhancer.UMM.Loader.Load",
|
||||||
|
"ManagerVersion": "0.32.4",
|
||||||
|
"HomePage": "https://www.nexusmods.com/railroader/mods/18/",
|
||||||
|
"Repository": "https://raw.githubusercontent.com/Refizar08/rr-mapenhancer-fix/master/repository.json"
|
||||||
|
}
|
||||||
BIN
MapEnhancer/traincar.png
Normal file
|
After Width: | Height: | Size: 763 B |
604
R.GBBL/ConcreteBridge.json
Normal file
@@ -0,0 +1,604 @@
|
|||||||
|
{
|
||||||
|
"tracks": {
|
||||||
|
"nodes": {},
|
||||||
|
"segments": {},
|
||||||
|
"spans": {}
|
||||||
|
},
|
||||||
|
"scenery": {
|
||||||
|
"_01": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 1.321,
|
||||||
|
"y": -2.980,
|
||||||
|
"z": 1.366
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 2.000,
|
||||||
|
"z": 2.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_02": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 50.778,
|
||||||
|
"y": -2.980,
|
||||||
|
"z": 52.584
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 2.000,
|
||||||
|
"z": 2.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_03": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 4.100,
|
||||||
|
"y": -3.330,
|
||||||
|
"z": 4.243
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 2.000,
|
||||||
|
"z": 2.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_04": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 47.999,
|
||||||
|
"y": -3.330,
|
||||||
|
"z": 49.707
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 2.000,
|
||||||
|
"z": 2.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_05": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 6.183,
|
||||||
|
"y": -0.170,
|
||||||
|
"z": 6.402
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 0.125,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_06": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 45.914,
|
||||||
|
"y": -0.170,
|
||||||
|
"z": 47.550
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 0.125,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_07": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 13.061,
|
||||||
|
"y": -0.170,
|
||||||
|
"z": 13.523
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 0.125,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_08": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 39.036,
|
||||||
|
"y": -0.170,
|
||||||
|
"z": 40.429
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 0.125,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_09": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 19.939,
|
||||||
|
"y": -0.170,
|
||||||
|
"z": 20.644
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 0.125,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_10": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 32.158,
|
||||||
|
"y": -0.170,
|
||||||
|
"z": 33.308
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 0.125,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_11": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 26.052,
|
||||||
|
"y": -0.170,
|
||||||
|
"z": 26.974
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 0.125,
|
||||||
|
"z": 4.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_12": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 2.687,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 8.251
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_13": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 9.564,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 15.372
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_14": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 16.441,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 22.493
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_15": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 23.318,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 29.614
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_16": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 30.195,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 36.735
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_17": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 37.072,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 43.856
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_18": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 43.949,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 50.977
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_19": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 8.153,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 2.969
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_20": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 15.030,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 10.090
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_21": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 21.907,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 17.211
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_22": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 28.784,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 24.332
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_23": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 35.661,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 31.453
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_24": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 42.538,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 38.574
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_25": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 49.415,
|
||||||
|
"y": 0.330,
|
||||||
|
"z": 45.695
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.250,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 5.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_26": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": -2.591,
|
||||||
|
"y": -1.440,
|
||||||
|
"z": 2.784
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": -30.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.245,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 4.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_27": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 2.876,
|
||||||
|
"y": -1.440,
|
||||||
|
"z": -2.495
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": -30.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.245,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 4.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_28": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 54.695,
|
||||||
|
"y": -1.440,
|
||||||
|
"z": 51.164
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": -30.000,
|
||||||
|
"y": 224.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.245,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 4.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_29": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": {
|
||||||
|
"x": 49.228,
|
||||||
|
"y": -1.440,
|
||||||
|
"z": 56.443
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": -30.000,
|
||||||
|
"y": 224.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 0.245,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 4.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_Lamp_01": {
|
||||||
|
"modelIdentifier": "CLB_Lamppost01",
|
||||||
|
"position": {
|
||||||
|
"x": 2.687,
|
||||||
|
"y": 1.330,
|
||||||
|
"z": 8.251
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 1.000,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 1.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_Lamp_02": {
|
||||||
|
"modelIdentifier": "CLB_Lamppost01",
|
||||||
|
"position": {
|
||||||
|
"x": 28.784,
|
||||||
|
"y": 1.330,
|
||||||
|
"z": 24.332
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 224.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 1.000,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 1.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_Lamp_03": {
|
||||||
|
"modelIdentifier": "CLB_Lamppost01",
|
||||||
|
"position": {
|
||||||
|
"x": 43.949,
|
||||||
|
"y": 1.330,
|
||||||
|
"z": 50.977
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 1.000,
|
||||||
|
"y": 1.000,
|
||||||
|
"z": 1.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"_Mask_01": {
|
||||||
|
"modelIdentifier": "AR-RF_objectmask",
|
||||||
|
"position": {
|
||||||
|
"x": 26.052,
|
||||||
|
"y": -0.170,
|
||||||
|
"z": 26.974
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 44.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
"scale": {
|
||||||
|
"x": 4.000,
|
||||||
|
"y": 0.125,
|
||||||
|
"z": 4.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"splineys": {}
|
||||||
|
}
|
||||||
57
R.GBBL/Definition.json
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
{
|
||||||
|
"manifestVersion": 5,
|
||||||
|
"id": "RTM.AR_Branchline",
|
||||||
|
"name": "RTM Appalachian Railway Branchline",
|
||||||
|
"version": "0.5.7",
|
||||||
|
"requires": [
|
||||||
|
{
|
||||||
|
"id": "railloader",
|
||||||
|
"notBefore": "1.9.6.8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "Zamu.StrangeCustoms",
|
||||||
|
"notBefore": "1.10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "AlinaNova21.AlinasMapMod",
|
||||||
|
"notBefore": "1.7.25315.2154"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "NickB.TheStandardCatalogofLoadIDs",
|
||||||
|
"notBefore": "6.2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "RTM_Objects_Pack",
|
||||||
|
"notBefore": "5.7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "C_L_B.ASSETS01",
|
||||||
|
"notBefore": "3.1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "Embedded.PiggyBackBase",
|
||||||
|
"notBefore": "1.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "Embedded.BuildingBlocks",
|
||||||
|
"notBefore": "1.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mixintos": {
|
||||||
|
"game-graph": [
|
||||||
|
"file(game-graph.json)",
|
||||||
|
"file(buildings.json)",
|
||||||
|
"file(buildings2.json)",
|
||||||
|
"file(buildings3.json)",
|
||||||
|
"file(industries.json)",
|
||||||
|
"file(REXB1.json)",
|
||||||
|
"file(REXB2.json)",
|
||||||
|
"file(REXB3.Json)",
|
||||||
|
"file(Telegraph_Poles.json)",
|
||||||
|
"file(JamesonAnimals.json)",
|
||||||
|
"file(OC_River.json)"
|
||||||
|
],
|
||||||
|
"container:cbs-baggage01": "file(baggage_car.json)",
|
||||||
|
"progressions": "file(progressions.json)"
|
||||||
|
}
|
||||||
|
}
|
||||||
46
R.GBBL/EULA A.R BRANCHLINE.json
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
A.R. Branchline End User License Agreement (EULA)
|
||||||
|
|
||||||
|
Version 1.0 — Effective October 2025
|
||||||
|
|
||||||
|
1. Ownership and Rights
|
||||||
|
|
||||||
|
All files, assets, tracks, industries, configurations, and any other content included in the A.R. Branchline package (collectively, “the Mod”) are the intellectual property of the RTM Development Team and its contributors.
|
||||||
|
The Mod is provided for personal, non-commercial use only within supported Railroader-related projects.
|
||||||
|
|
||||||
|
You are granted a limited, non-exclusive, revocable license to install and use the Mod solely for entertainment purposes.
|
||||||
|
|
||||||
|
2. Restrictions
|
||||||
|
|
||||||
|
Without prior written permission from the RTM Development Team, you may not:
|
||||||
|
|
||||||
|
Modify, alter, or edit any of the Mod’s track layouts, industries, assets, or core files.
|
||||||
|
|
||||||
|
Redistribute, reupload, or repackage any part of the Mod under a different name or branding.
|
||||||
|
|
||||||
|
Extract or reuse individual files (models, textures, scripts, or configuration data) for unrelated projects.
|
||||||
|
|
||||||
|
Circumvent or modify any internal file structure or systems that define the Mod’s core operation.
|
||||||
|
|
||||||
|
Any unauthorized modification or redistribution will result in revocation of usage rights and may lead to content takedown or reporting through appropriate community channels.
|
||||||
|
|
||||||
|
3. Adaptation and Integration
|
||||||
|
|
||||||
|
The A.R. Branchline may be adapted or extended for use within other track mods or expansion projects only under the following conditions:
|
||||||
|
|
||||||
|
The A.R. Branchline must remain installed as the base file dependency.
|
||||||
|
|
||||||
|
Any adaptation or modification must clearly credit the RTM Development Team and link back to the original project.
|
||||||
|
|
||||||
|
Modders must not alter or redistribute original core assets without prior approval.
|
||||||
|
|
||||||
|
Failure to meet these terms constitutes a breach of this agreement.
|
||||||
|
|
||||||
|
4. Liability
|
||||||
|
|
||||||
|
The Mod is provided “as is” without any warranties or guarantees of performance. The RTM Development Team is not liable for any damage, corruption, or malfunction resulting from installation or use of this Mod.
|
||||||
|
|
||||||
|
5. Agreement
|
||||||
|
|
||||||
|
By downloading, installing, or using the A.R. Branchline, you acknowledge that you have read, understood, and agreed to this EULA.
|
||||||
|
|
||||||
|
For permissions, inquiries, or collaboration requests, please contact the RTM Development Team via the RTM Discord.
|
||||||
5531
R.GBBL/JamesonAnimals.json
Normal file
5002
R.GBBL/OC_River.json
Normal file
3432
R.GBBL/REXB1.json
Normal file
881
R.GBBL/REXB2.json
Normal file
@@ -0,0 +1,881 @@
|
|||||||
|
{
|
||||||
|
"tracks": {
|
||||||
|
"nodes": {
|
||||||
|
},
|
||||||
|
"segments": {
|
||||||
|
},
|
||||||
|
"spans": {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"areas": {
|
||||||
|
},
|
||||||
|
"loads": {
|
||||||
|
},
|
||||||
|
"texts": {
|
||||||
|
},
|
||||||
|
"scenery": {
|
||||||
|
"CHEROKEE_COAL_S_LOADER": {
|
||||||
|
"modelIdentifier": "freight_depot_2",
|
||||||
|
"position": { "x": 17603.000, "y": 618.000, "z": 6980.000 },
|
||||||
|
"rotation": { "x": -90.000, "y": 272.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_COAL_S_BUILD_01": {
|
||||||
|
"modelIdentifier": "roadmaster-office",
|
||||||
|
"position": { "x": 17538.000, "y": 620.000, "z": 6988.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 102.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_COAL_S_BUILD_02": {
|
||||||
|
"modelIdentifier": "switchmen-shanty",
|
||||||
|
"position": { "x": 17557.562, "y": 620.000, "z": 6983.842 },
|
||||||
|
"rotation": { "x": 0.000, "y": 102.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_COAL_S_BUILD_03": {
|
||||||
|
"modelIdentifier": "depot-ridgeville",
|
||||||
|
"position": { "x": 17563.185, "y": 620.000, "z": 6962.201 },
|
||||||
|
"rotation": { "x": 0.000, "y": 102.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_COAL_S_BUILD_05": {
|
||||||
|
"modelIdentifier": "oil-supply-house",
|
||||||
|
"position": { "x": 17560.066, "y": 620.000, "z": 6947.529 },
|
||||||
|
"rotation": { "x": 0.000, "y": 102.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_COAL_S_BUILD_06": {
|
||||||
|
"modelIdentifier": "power-house-large",
|
||||||
|
"position": { "x": 17624.685, "y": 620.000, "z": 6938.905 },
|
||||||
|
"rotation": { "x": 0.000, "y": 192.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_COAL_S_BUILD_07": {
|
||||||
|
"modelIdentifier": "power-house-stack",
|
||||||
|
"position": { "x": 17628.721, "y": 620.000, "z": 6948.271 },
|
||||||
|
"rotation": { "x": 0.000, "y": 192.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_COAL_S_BUILD_08": {
|
||||||
|
"modelIdentifier": "power-house-stack",
|
||||||
|
"position": { "x": 17623.830, "y": 620.000, "z": 6949.311 },
|
||||||
|
"rotation": { "x": 0.000, "y": 192.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADER": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17596.995, "y": 618.200, "z": 7047.459 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADER01": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17587.382, "y": 618.200, "z": 7050.215 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADER02": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17577.769, "y": 618.200, "z": 7052.971 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADER03": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17568.156, "y": 618.200, "z": 7055.727 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADER04": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17558.543, "y": 618.200, "z": 7058.483 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADER05": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17548.930, "y": 618.200, "z": 7061.239 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADER06": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17539.317, "y": 618.200, "z": 7063.995 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADER07": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17529.704, "y": 618.200, "z": 7066.751 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADER08": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17520.091, "y": 618.200, "z": 7069.507 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADER09": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17510.478, "y": 618.200, "z": 7072.263 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 2.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER": {
|
||||||
|
"modelIdentifier": "fuel_oil_dock",
|
||||||
|
"position": { "x": 17587.106, "y": 618.600, "z": 7049.254 },
|
||||||
|
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER_PIPE": {
|
||||||
|
"modelIdentifier": "CLB_Pipe02",
|
||||||
|
"position": { "x": 17578.371, "y": 623.700, "z": 7051.448 },
|
||||||
|
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 0.500, "y": 1.000, "z": 0.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER_02": {
|
||||||
|
"modelIdentifier": "fuel_oil_dock",
|
||||||
|
"position": { "x": 17567.882, "y": 618.600, "z": 7054.766 },
|
||||||
|
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER_03": {
|
||||||
|
"modelIdentifier": "fuel_oil_dock",
|
||||||
|
"position": { "x": 17558.270, "y": 618.600, "z": 7057.522 },
|
||||||
|
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER_PIPE_02": {
|
||||||
|
"modelIdentifier": "CLB_Pipe02",
|
||||||
|
"position": { "x": 17549.535, "y": 623.700, "z": 7059.716 },
|
||||||
|
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 0.500, "y": 1.000, "z": 0.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER_04": {
|
||||||
|
"modelIdentifier": "fuel_oil_dock",
|
||||||
|
"position": { "x": 17539.046, "y": 618.600, "z": 7063.034 },
|
||||||
|
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER_05": {
|
||||||
|
"modelIdentifier": "CLB_Reactor01",
|
||||||
|
"position": { "x": 17524.616, "y": 619.200, "z": 7066.755 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER_PIPE_03": {
|
||||||
|
"modelIdentifier": "CLB_Pipe02",
|
||||||
|
"position": { "x": 17530.302, "y": 623.700, "z": 7065.233 },
|
||||||
|
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 0.500, "y": 1.000, "z": 0.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER_06": {
|
||||||
|
"modelIdentifier": "CLB_Reactor01",
|
||||||
|
"position": { "x": 17519.810, "y": 619.200, "z": 7068.133 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER_07": {
|
||||||
|
"modelIdentifier": "CLB_Reactor01",
|
||||||
|
"position": { "x": 17515.004, "y": 619.200, "z": 7069.511 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER_08": {
|
||||||
|
"modelIdentifier": "CLB_Reactor01",
|
||||||
|
"position": { "x": 17510.198, "y": 619.200, "z": 7070.889 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK_UNLOADER_PIPE_04": {
|
||||||
|
"modelIdentifier": "CLB_Pipe02",
|
||||||
|
"position": { "x": 17517.807, "y": 620.700, "z": 7068.817 },
|
||||||
|
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 0.800, "y": 1.500, "z": 0.800 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17521.199, "y": 619.100, "z": 7080.639 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER_02": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17551.958, "y": 619.100, "z": 7071.821 },
|
||||||
|
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER_03": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17553.338, "y": 619.100, "z": 7076.626 },
|
||||||
|
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER_04": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17522.579, "y": 619.100, "z": 7085.444 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER_05": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17523.959, "y": 619.100, "z": 7090.249 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER_06": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17554.711, "y": 619.100, "z": 7081.417 },
|
||||||
|
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER_07": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17602.776, "y": 619.100, "z": 7067.637 },
|
||||||
|
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER_08": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17572.015, "y": 619.100, "z": 7076.457 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER_09": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17570.637, "y": 619.100, "z": 7071.651 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER_10": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17601.398, "y": 619.100, "z": 7062.833 },
|
||||||
|
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER_11": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17600.020, "y": 619.100, "z": 7058.027 },
|
||||||
|
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TRACK_UNLOADER_12": {
|
||||||
|
"modelIdentifier": "CLB_Oil-Loader",
|
||||||
|
"position": { "x": 17569.261, "y": 619.100, "z": 7066.845 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PLANT_BUILDING": {
|
||||||
|
"modelIdentifier": "taconite_plant_building",
|
||||||
|
"position": { "x": 17683.626, "y": 620.000, "z": 7136.420 },
|
||||||
|
"rotation": { "x": -90.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_01": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17561.367, "y": 623.000, "z": 7068.893 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 90.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_02": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Corner_Down90_Q",
|
||||||
|
"position": { "x": 17561.367, "y": 628.000, "z": 7068.893 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_03": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17562.745, "y": 628.000, "z": 7073.699 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_04": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17560.349, "y": 628.000, "z": 7065.336 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_05": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17559.523, "y": 628.000, "z": 7062.452 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_06": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Corner_Down90_Q",
|
||||||
|
"position": { "x": 17558.147, "y": 628.000, "z": 7057.644 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_07": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17558.147, "y": 626.000, "z": 7057.644 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 90.000 },
|
||||||
|
"scale": { "x": 0.300, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_08": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17562.833, "y": 622.100, "z": 7073.986 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_09": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Corner_Flat45_Q",
|
||||||
|
"position": { "x": 17564.127, "y": 628.000, "z": 7078.504 },
|
||||||
|
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_10": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17568.502, "y": 628.000, "z": 7080.929 },
|
||||||
|
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_11": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17575.498, "y": 628.000, "z": 7084.807 },
|
||||||
|
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_12": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17574.188, "y": 622.200, "z": 7084.082 },
|
||||||
|
"rotation": { "x": 0.000, "y": 151.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_13": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17565.442, "y": 622.200, "z": 7079.234 },
|
||||||
|
"rotation": { "x": 0.000, "y": 151.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_14": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17579.270, "y": 622.200, "z": 7086.904 },
|
||||||
|
"rotation": { "x": 0.000, "y": 151.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_15": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17582.241, "y": 628.000, "z": 7088.550 },
|
||||||
|
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_16": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17589.237, "y": 628.000, "z": 7092.428 },
|
||||||
|
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_17": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17594.485, "y": 628.000, "z": 7095.337 },
|
||||||
|
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_18": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17590.112, "y": 622.200, "z": 7092.913 },
|
||||||
|
"rotation": { "x": 0.000, "y": 151.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_19": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17601.481, "y": 628.000, "z": 7099.215 },
|
||||||
|
"rotation": { "x": 0.000, "y": 151.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_20": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Corner_Flat45_Q",
|
||||||
|
"position": { "x": 17605.856, "y": 628.000, "z": 7101.640 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_21": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17607.234, "y": 628.000, "z": 7106.446 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_22": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17608.338, "y": 628.000, "z": 7110.290 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_23": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17610.542, "y": 628.000, "z": 7117.980 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_24": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17612.196, "y": 628.000, "z": 7123.747 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_25": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17613.298, "y": 628.000, "z": 7127.592 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_26": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17614.952, "y": 628.000, "z": 7133.359 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_27": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17616.606, "y": 628.000, "z": 7139.126 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_28": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17618.260, "y": 628.000, "z": 7144.893 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_29": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17619.914, "y": 628.000, "z": 7150.660 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_30": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Corner_Flat90_Q",
|
||||||
|
"position": { "x": 17621.292, "y": 628.000, "z": 7155.466 },
|
||||||
|
"rotation": { "x": 0.000, "y": 106.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_31": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17626.098, "y": 628.000, "z": 7154.088 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_32": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17633.788, "y": 628.000, "z": 7151.884 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_33": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17641.478, "y": 628.000, "z": 7149.680 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_34": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17649.168, "y": 628.000, "z": 7147.476 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_35": {
|
||||||
|
"modelIdentifier": "CLB_TrussPipes01_Straight8_Q",
|
||||||
|
"position": { "x": 17653.975, "y": 628.000, "z": 7146.100 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_TANK": {
|
||||||
|
"modelIdentifier": "CLB_Reactor01",
|
||||||
|
"position": { "x": 17656.858, "y": 620.000, "z": 7145.272 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 2.000, "y": 2.000, "z": 2.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_36": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17601.483, "y": 622.100, "z": 7099.216 },
|
||||||
|
"rotation": { "x": 0.000, "y": 151.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_37": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17649.168, "y": 622.000, "z": 7147.476 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_38": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17634.750, "y": 622.000, "z": 7151.610 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_39": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17621.292, "y": 622.000, "z": 7155.468 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_41": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17618.536, "y": 622.000, "z": 7145.855 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_42": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17615.780, "y": 622.000, "z": 7136.242 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_43": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17613.024, "y": 622.000, "z": 7126.629 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_45": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17621.292, "y": 622.000, "z": 7155.468 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.200, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_46": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17610.268, "y": 622.000, "z": 7117.017 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_PIPES_47": {
|
||||||
|
"modelIdentifier": "CLB_Truss01_Straight8",
|
||||||
|
"position": { "x": 17607.512, "y": 622.000, "z": 7107.405 },
|
||||||
|
"rotation": { "x": 0.000, "y": 196.000, "z": -90.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_01": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17664.056, "y": 618.700, "z": 7046.501 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_02": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17654.443, "y": 618.700, "z": 7049.257 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_03": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17644.830, "y": 618.700, "z": 7052.013 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_04": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17635.217, "y": 618.700, "z": 7054.769 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_05": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17625.604, "y": 618.700, "z": 7057.525 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_06": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17615.991, "y": 618.700, "z": 7060.281 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_07": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17606.378, "y": 618.700, "z": 7063.037 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_08": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17596.765, "y": 618.700, "z": 7065.793 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_09": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17587.152, "y": 618.700, "z": 7068.549 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_10": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17577.539, "y": 618.700, "z": 7071.305 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_11": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17567.926, "y": 618.700, "z": 7074.061 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_12": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17558.313, "y": 618.700, "z": 7076.817 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_13": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17548.700, "y": 618.700, "z": 7079.573 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_14": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17539.087, "y": 618.700, "z": 7082.329 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_15": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17529.474, "y": 618.700, "z": 7085.085 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_16": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17519.861, "y": 618.700, "z": 7087.841 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_17": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17510.248, "y": 618.700, "z": 7090.597 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_18": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17500.635, "y": 618.700, "z": 7093.353 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_19": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17491.022, "y": 618.700, "z": 7096.109 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_20": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17481.409, "y": 618.700, "z": 7098.865 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_21": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17471.796, "y": 618.700, "z": 7101.621 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_22": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17462.183, "y": 618.700, "z": 7104.377 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_23": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17452.570, "y": 618.700, "z": 7107.133 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_BLOCK_24": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17442.957, "y": 618.700, "z": 7109.889 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_25": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17638.231, "y": 618.700, "z": 7043.503 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_26": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17628.618, "y": 618.700, "z": 7046.259 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_27": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17619.005, "y": 618.700, "z": 7049.015 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_28": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17609.392, "y": 618.700, "z": 7051.771 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_29": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17599.779, "y": 618.700, "z": 7054.527 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_30": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17590.166, "y": 618.700, "z": 7057.283 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_31": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17580.553, "y": 618.700, "z": 7060.039 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_32": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17570.940, "y": 618.700, "z": 7062.795 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_33": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17561.327, "y": 618.700, "z": 7065.551 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_34": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17551.714, "y": 618.700, "z": 7068.307 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_35": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17542.101, "y": 618.700, "z": 7071.063 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_36": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17532.488, "y": 618.700, "z": 7073.819 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_37": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17522.875, "y": 618.700, "z": 7076.575 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_38": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17513.262, "y": 618.700, "z": 7079.331 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_39": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17503.649, "y": 618.700, "z": 7082.087 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_40": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17494.036, "y": 618.700, "z": 7084.843 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_41": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17484.423, "y": 618.700, "z": 7087.599 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_42": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17474.810, "y": 618.700, "z": 7090.355 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_43": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17465.197, "y": 618.700, "z": 7093.111 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_44": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17455.584, "y": 618.700, "z": 7095.867 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_45": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17542.111, "y": 618.700, "z": 7071.063 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_46": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17537.305, "y": 618.700, "z": 7072.441 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_47": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17532.499, "y": 618.700, "z": 7073.819 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_48": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17527.693, "y": 618.700, "z": 7075.197 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_49": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17522.887, "y": 618.700, "z": 7076.575 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_50": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17518.081, "y": 618.700, "z": 7077.953 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_51": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17513.275, "y": 618.700, "z": 7079.331 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_52": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17508.469, "y": 618.700, "z": 7080.709 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_53": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17503.663, "y": 618.700, "z": 7082.087 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"CHEROKEE_CERO_LOADING_ROW_2_BLOCK_54": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 17498.857, "y": 618.700, "z": 7083.465 },
|
||||||
|
"rotation": { "x": 0.000, "y": 286.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"splineys": {
|
||||||
|
},
|
||||||
|
"simpleGraphs": {},
|
||||||
|
"mandelas": {
|
||||||
|
}
|
||||||
|
}
|
||||||
209
R.GBBL/REXB3.json
Normal file
@@ -0,0 +1,209 @@
|
|||||||
|
{
|
||||||
|
"tracks": {
|
||||||
|
"nodes": {
|
||||||
|
},
|
||||||
|
"segments": {
|
||||||
|
},
|
||||||
|
"spans": {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"areas": {
|
||||||
|
},
|
||||||
|
"loads": {
|
||||||
|
},
|
||||||
|
"texts": {
|
||||||
|
},
|
||||||
|
"scenery": {
|
||||||
|
"WRRIGHTSCREEK_BUILD_01": {
|
||||||
|
"modelIdentifier": "ury_dragon_freight_house_small",
|
||||||
|
"position": { "x": 21195.000, "y": 706.000, "z": 11333.000 },
|
||||||
|
"rotation": { "x": -90.000, "y": 0.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_02": {
|
||||||
|
"modelIdentifier": "engine-supply-house",
|
||||||
|
"position": { "x": 21220.000, "y": 706.000, "z": 11333.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 330.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_03": {
|
||||||
|
"modelIdentifier": "switchmen-shanty",
|
||||||
|
"position": { "x": 21237.320, "y": 708.000, "z": 11343.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 330.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_04": {
|
||||||
|
"modelIdentifier": "brick-substation-medium",
|
||||||
|
"position": { "x": 21227.320, "y": 708.000, "z": 11360.320 },
|
||||||
|
"rotation": { "x": 0.000, "y": 240.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_05": {
|
||||||
|
"modelIdentifier": "Logs1",
|
||||||
|
"position": { "x": 21283.050, "y": 708.600, "z": 11333.815 },
|
||||||
|
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_06": {
|
||||||
|
"modelIdentifier": "Logs1",
|
||||||
|
"position": { "x": 21273.845, "y": 708.600, "z": 11329.908 },
|
||||||
|
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_07": {
|
||||||
|
"modelIdentifier": "Logs1",
|
||||||
|
"position": { "x": 21264.640, "y": 707.600, "z": 11326.001 },
|
||||||
|
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_08": {
|
||||||
|
"modelIdentifier": "Logs1",
|
||||||
|
"position": { "x": 21255.435, "y": 707.600, "z": 11322.094 },
|
||||||
|
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_09": {
|
||||||
|
"modelIdentifier": "Logs1",
|
||||||
|
"position": { "x": 21246.230, "y": 706.600, "z": 11318.187 },
|
||||||
|
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_10": {
|
||||||
|
"modelIdentifier": "Logs1",
|
||||||
|
"position": { "x": 21237.025, "y": 706.600, "z": 11314.280 },
|
||||||
|
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_11": {
|
||||||
|
"modelIdentifier": "Logs1",
|
||||||
|
"position": { "x": 21227.820, "y": 706.600, "z": 11310.373 },
|
||||||
|
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_12": {
|
||||||
|
"modelIdentifier": "Logs1",
|
||||||
|
"position": { "x": 21218.615, "y": 706.600, "z": 11306.466 },
|
||||||
|
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_13": {
|
||||||
|
"modelIdentifier": "Logs1",
|
||||||
|
"position": { "x": 21209.410, "y": 706.600, "z": 11302.559 },
|
||||||
|
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_14": {
|
||||||
|
"modelIdentifier": "Logs1",
|
||||||
|
"position": { "x": 21200.205, "y": 705.600, "z": 11298.652 },
|
||||||
|
"rotation": { "x": 0.000, "y": 247.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_CRANE": {
|
||||||
|
"modelIdentifier": "bayshore_traversing_crane",
|
||||||
|
"position": { "x": 21229.946, "y": 704.600, "z": 11304.255 },
|
||||||
|
"rotation": { "x": -90.000, "y": 87.000, "z": -20.000 },
|
||||||
|
"scale": { "x": 0.900, "y": 1.000, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"MINGOFALLS_SILO_BLOCK_01": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 19077.000, "y": 668.500, "z": 16506.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 340.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"MINGOFALLS_SILO_BLOCK_02": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 19071.870, "y": 668.500, "z": 16520.096 },
|
||||||
|
"rotation": { "x": 0.000, "y": 340.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"MINGOFALLS_SILO_BLOCK_03": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 19066.740, "y": 668.500, "z": 16534.190 },
|
||||||
|
"rotation": { "x": 0.000, "y": 340.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"MINGOFALLS_SILO_BLOCK_04": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 19050.467, "y": 668.000, "z": 16523.811 },
|
||||||
|
"rotation": { "x": 10.000, "y": 170.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.500, "y": 1.500, "z": 1.500 }
|
||||||
|
},
|
||||||
|
"MINGOFALLS_SILO_BLOCK_05": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 19059.970, "y": 668.500, "z": 16558.248 },
|
||||||
|
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 5.000, "y": 3.000, "z": 5.000 }
|
||||||
|
},
|
||||||
|
"MINGOFALLS_BUILDING_ADDON_01": {
|
||||||
|
"modelIdentifier": "freight_depot_2",
|
||||||
|
"position": { "x": 19054.080, "y": 669.500, "z": 16556.729 },
|
||||||
|
"rotation": { "x": -90.000, "y": 355.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"MINGOFALLS_BUILDING_ADDON_02": {
|
||||||
|
"modelIdentifier": "CLB_Truck01",
|
||||||
|
"position": { "x": 19062.049, "y": 669.900, "z": 16557.426 },
|
||||||
|
"rotation": { "x": 0.000, "y": 175.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"MINGOFALLS_BUILDING_ADDON_03": {
|
||||||
|
"modelIdentifier": "CLB_Truck01_red",
|
||||||
|
"position": { "x": 19061.613, "y": 669.900, "z": 16562.407 },
|
||||||
|
"rotation": { "x": 0.000, "y": 175.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"MINGOFALLS_BUILDING_ADDON_04": {
|
||||||
|
"modelIdentifier": "CLB_Truck01_red",
|
||||||
|
"position": { "x": 19071.139, "y": 669.900, "z": 16568.260 },
|
||||||
|
"rotation": { "x": 0.000, "y": 220.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_15": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 19465.363, "y": 648.000, "z": 10445.187 },
|
||||||
|
"rotation": { "x": 0.000, "y": 224.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 3.000, "y": 3.000, "z": 3.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_16": {
|
||||||
|
"modelIdentifier": "ury_watson_freight_house_small",
|
||||||
|
"position": { "x": 19465.363, "y": 648.600, "z": 10445.187 },
|
||||||
|
"rotation": { "x": -90.000, "y": 224.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_17": {
|
||||||
|
"modelIdentifier": "Rex_water_tower",
|
||||||
|
"position": { "x": 19465.117, "y": 648.600, "z": 10459.327 },
|
||||||
|
"rotation": { "x": 0.000, "y": 224.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_18": {
|
||||||
|
"modelIdentifier": "Logs4",
|
||||||
|
"position": { "x": 19481.661, "y": 649.600, "z": 10443.349 },
|
||||||
|
"rotation": { "x": 0.000, "y": 224.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_19": {
|
||||||
|
"modelIdentifier": "Logs4",
|
||||||
|
"position": { "x": 19478.188, "y": 649.600, "z": 10439.752 },
|
||||||
|
"rotation": { "x": 0.000, "y": 224.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_20": {
|
||||||
|
"modelIdentifier": "linemen-tool-shed",
|
||||||
|
"position": { "x": 19466.307, "y": 649.400, "z": 10431.765 },
|
||||||
|
"rotation": { "x": 0.000, "y": 224.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"WRRIGHTSCREEK_BUILD_21": {
|
||||||
|
"modelIdentifier": "CLB_Block02",
|
||||||
|
"position": { "x": 19451.819, "y": 647.000, "z": 10431.160 },
|
||||||
|
"rotation": { "x": 12.000, "y": 224.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 3.000, "y": 3.000, "z": 1.000 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"splineys": {
|
||||||
|
},
|
||||||
|
"simpleGraphs": {},
|
||||||
|
"mandelas": {
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
R.GBBL/SCAssetPacks/Griz1231 Ela Mapmasks/Bundle
LFS
Normal file
1
R.GBBL/SCAssetPacks/Griz1231 Ela Mapmasks/Catalog.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"identifier":"MapMaskEmpty","name":"MapMaskEmpty","shared":false,"assets":{"MapMask":{"name":"MapMask","type":"prefab","filename":"MapMask.prefab"}}}
|
||||||
2636
R.GBBL/SCAssetPacks/Griz1231 Ela Mapmasks/Definitions.json
Normal file
110
R.GBBL/Telegraph_Poles.json
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
{
|
||||||
|
"areas": {},
|
||||||
|
"scenery": {},
|
||||||
|
"loads": {},
|
||||||
|
"splineys": {
|
||||||
|
"BTBL_Telegraph_Poles": {
|
||||||
|
"handler": "AlinasMapMod.TelegraphPoleMover",
|
||||||
|
"polesToMove": [
|
||||||
|
467,
|
||||||
|
465,
|
||||||
|
431,
|
||||||
|
429,
|
||||||
|
427,
|
||||||
|
425,
|
||||||
|
391,
|
||||||
|
389,
|
||||||
|
373,
|
||||||
|
371,
|
||||||
|
369,
|
||||||
|
365,
|
||||||
|
363,
|
||||||
|
385,
|
||||||
|
375,
|
||||||
|
387
|
||||||
|
],
|
||||||
|
"poleMovement": [
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2.5,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2.5,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
2,
|
||||||
|
0,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
[
|
||||||
|
3.5,
|
||||||
|
0,
|
||||||
|
6.06
|
||||||
|
],
|
||||||
|
[
|
||||||
|
5.36,
|
||||||
|
3.5,
|
||||||
|
4.5
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
3.5,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
3.5,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
3.5,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2.17,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
4,
|
||||||
|
2,
|
||||||
|
5
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
[
|
||||||
|
0,
|
||||||
|
2,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
163
R.GBBL/baggage_car.json
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "identifier",
|
||||||
|
"value": "cbs-baggage01",
|
||||||
|
"comp": "equals"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"$clone": true,
|
||||||
|
"identifier": "cbs-baggage01-bbl",
|
||||||
|
"metadata": {
|
||||||
|
"name": "Mail Car",
|
||||||
|
"description": "Mail Car"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"carType": "CBSBBL",
|
||||||
|
"archetype": "Boxcar",
|
||||||
|
"loadSlots": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "requiredLoadIdentifier",
|
||||||
|
"value": "mail"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"maximumCapacity": 40000.0,
|
||||||
|
"loadUnits": "Pounds",
|
||||||
|
"requiredLoadIdentifier": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "kind",
|
||||||
|
"value": "Colorizer",
|
||||||
|
"comp": "equals"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hexColors": [
|
||||||
|
{
|
||||||
|
"$append": [
|
||||||
|
"FFA200",
|
||||||
|
"69170E",
|
||||||
|
"0D1247",
|
||||||
|
"8A4C30"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "identifier",
|
||||||
|
"value": "cbs-baggage01",
|
||||||
|
"comp": "equals"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"$clone": true,
|
||||||
|
"identifier": "cbs-baggage01-arw",
|
||||||
|
"metadata": {
|
||||||
|
"name": "MOW workers Car",
|
||||||
|
"description": "MOW car to carry workers to progression work sites"
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"carType": "MOWCBS",
|
||||||
|
"archetype": "Boxcar",
|
||||||
|
"loadSlots": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "requiredLoadIdentifier",
|
||||||
|
"value": "mail"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"maximumCapacity": 40.0,
|
||||||
|
"loadUnits": "Quantity",
|
||||||
|
"requiredLoadIdentifier": "workmen"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "kind",
|
||||||
|
"value": "Colorizer",
|
||||||
|
"comp": "equals"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hexColors": [
|
||||||
|
{
|
||||||
|
"$append": [
|
||||||
|
"FFA200",
|
||||||
|
"69170E",
|
||||||
|
"0D1247",
|
||||||
|
"8A4C30"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "identifier",
|
||||||
|
"value": "cbs-baggage01",
|
||||||
|
"comp": "equals"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"$clone": true,
|
||||||
|
"identifier": "cbs-baggage01-fish",
|
||||||
|
"metadata": {
|
||||||
|
"name": "DNR Fish Car",
|
||||||
|
"description": "Baggage car outfitted with tanks to carry live fish for stocking."
|
||||||
|
},
|
||||||
|
"definition": {
|
||||||
|
"carType": "FSCBS",
|
||||||
|
"archetype": "Boxcar",
|
||||||
|
"loadSlots": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "requiredLoadIdentifier",
|
||||||
|
"value": "mail"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"maximumCapacity": 20000.0,
|
||||||
|
"loadUnits": "Pounds",
|
||||||
|
"requiredLoadIdentifier": "fish"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"components": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "kind",
|
||||||
|
"value": "Colorizer",
|
||||||
|
"comp": "equals"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hexColors": [
|
||||||
|
{
|
||||||
|
"$append": [
|
||||||
|
"FFA200",
|
||||||
|
"69170E",
|
||||||
|
"0D1247",
|
||||||
|
"8A4C30"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
7637
R.GBBL/buildings.json
Normal file
1666
R.GBBL/buildings2.json
Normal file
354
R.GBBL/buildings3 - Copy.json
Normal file
@@ -0,0 +1,354 @@
|
|||||||
|
{
|
||||||
|
"tracks": {
|
||||||
|
"nodes": {},
|
||||||
|
"segments": {},
|
||||||
|
"spans": {}
|
||||||
|
},
|
||||||
|
"areas": {},
|
||||||
|
"loads": {},
|
||||||
|
"texts": {},
|
||||||
|
"scenery": {},
|
||||||
|
"splineys": {
|
||||||
|
"C_AR_EI_RV_01": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 9722.013,
|
||||||
|
"y": 545.930,
|
||||||
|
"z": 7517.319
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 226.300,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 9722.857,
|
||||||
|
"y": 545.930,
|
||||||
|
"z": 7507.751
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 46.300,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_EI_RV_Crossing1_01",
|
||||||
|
"P_AR_EI_RV_Crossing1_02",
|
||||||
|
"P_AR_EI_RV_Crossing1_03"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_01": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 11942.405,
|
||||||
|
"y": 565.676,
|
||||||
|
"z": 8358.266
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 297.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 11890.087,
|
||||||
|
"y": 565.576,
|
||||||
|
"z": 8376.732
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 117.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing01_01",
|
||||||
|
"P_AR_Main_Crossing01_02"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_02": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 12947.417,
|
||||||
|
"y": 569.840,
|
||||||
|
"z": 8890.580
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 13.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 12944.754,
|
||||||
|
"y": 569.840,
|
||||||
|
"z": 8913.636
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 192.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing02_01",
|
||||||
|
"P_AR_Main_Crossing02_02",
|
||||||
|
"P_AR_Main_Crossing02_03"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_03": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 13505.690,
|
||||||
|
"y": 572.114,
|
||||||
|
"z": 10054.449
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 221.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 13481.889,
|
||||||
|
"y": 572.114,
|
||||||
|
"z": 10034.205
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 91.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing03_01",
|
||||||
|
"P_AR_Main_Crossing03_02",
|
||||||
|
"P_AR_Main_Crossing03_03",
|
||||||
|
"P_AR_Main_Crossing03_04"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_04": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 16207.482,
|
||||||
|
"y": 594.297,
|
||||||
|
"z": 9736.218
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 10.667,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 16205.522,
|
||||||
|
"y": 594.297,
|
||||||
|
"z": 9759.758
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 196.667,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing04_01",
|
||||||
|
"P_AR_Main_Crossing04_02"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_05": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 16440.213,
|
||||||
|
"y": 598.900,
|
||||||
|
"z": 11868.170
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 290.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 16427.995,
|
||||||
|
"y": 598.900,
|
||||||
|
"z": 11866.764
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 110.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing05_01",
|
||||||
|
"P_AR_Main_Crossing05_02"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_06": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17718.141,
|
||||||
|
"y": 607.235,
|
||||||
|
"z": 13124.808
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 251.667,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17667.979,
|
||||||
|
"y": 607.035,
|
||||||
|
"z": 13101.339
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 71.667,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing06_01",
|
||||||
|
"P_AR_Main_Crossing06_02",
|
||||||
|
"P_AR_Main_Crossing06_03"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_RF_01": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17562.490,
|
||||||
|
"y": 616.168,
|
||||||
|
"z": 14243.105
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 345.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17550.164,
|
||||||
|
"y": 616.168,
|
||||||
|
"z": 14260.507
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 165.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_RF_Crossing01_01"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_RF_02": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17616.259,
|
||||||
|
"y": 613.358,
|
||||||
|
"z": 14014.223
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 165.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17630.041,
|
||||||
|
"y": 613.308,
|
||||||
|
"z": 13990.998
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 345.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_RF_Crossing02_01"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"OCustom_oxdx": {
|
||||||
|
"handler": "AlinasMapMod.MapLabelBuilder",
|
||||||
|
"position": {
|
||||||
|
"x": 13061.472,
|
||||||
|
"y": 571.372,
|
||||||
|
"z": 9590.119
|
||||||
|
},
|
||||||
|
"text": "Birdtown",
|
||||||
|
"alignment": "TopLeft"
|
||||||
|
},
|
||||||
|
"OCustom_8njm": {
|
||||||
|
"handler": "AlinasMapMod.MapLabelBuilder",
|
||||||
|
"position": {
|
||||||
|
"x": 17188.516,
|
||||||
|
"y": 608.61,
|
||||||
|
"z": 9723.577
|
||||||
|
},
|
||||||
|
"text": "Cherokee",
|
||||||
|
"alignment": "TopLeft"
|
||||||
|
},
|
||||||
|
"OCustom_3pjr": {
|
||||||
|
"handler": "AlinasMapMod.MapLabelBuilder",
|
||||||
|
"position": {
|
||||||
|
"x": 17680.56,
|
||||||
|
"y": 643.89,
|
||||||
|
"z": 14738.434
|
||||||
|
},
|
||||||
|
"text": "Ravenford",
|
||||||
|
"alignment": "TopLeft"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"simpleGraphs": {},
|
||||||
|
"mandelas": {}
|
||||||
|
}
|
||||||
486
R.GBBL/buildings3.json
Normal file
@@ -0,0 +1,486 @@
|
|||||||
|
{
|
||||||
|
"tracks": {
|
||||||
|
"nodes": {},
|
||||||
|
"segments": {},
|
||||||
|
"spans": {}
|
||||||
|
},
|
||||||
|
"areas": {},
|
||||||
|
"loads": {},
|
||||||
|
"texts": {},
|
||||||
|
"scenery": {},
|
||||||
|
"splineys": {
|
||||||
|
"C_AR_EI_RV_01": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 9722.013,
|
||||||
|
"y": 545.930,
|
||||||
|
"z": 7517.319
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 226.300,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 9722.857,
|
||||||
|
"y": 545.930,
|
||||||
|
"z": 7507.751
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 46.300,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_EI_RV_Crossing1_01",
|
||||||
|
"P_AR_EI_RV_Crossing1_02",
|
||||||
|
"P_AR_EI_RV_Crossing1_03"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_01": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 11942.405,
|
||||||
|
"y": 565.676,
|
||||||
|
"z": 8358.266
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 297.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 11890.087,
|
||||||
|
"y": 565.576,
|
||||||
|
"z": 8376.732
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 117.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing01_01",
|
||||||
|
"P_AR_Main_Crossing01_02"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_02": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 12947.867,
|
||||||
|
"y": 569.840,
|
||||||
|
"z": 8892.528
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 13.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 12945.066,
|
||||||
|
"y": 569.840,
|
||||||
|
"z": 8915.103
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 192.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing02_01",
|
||||||
|
"P_AR_Main_Crossing02_02",
|
||||||
|
"P_AR_Main_Crossing02_03"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_03": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 13505.690,
|
||||||
|
"y": 572.114,
|
||||||
|
"z": 10054.449
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 221.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 13481.889,
|
||||||
|
"y": 572.114,
|
||||||
|
"z": 10034.205
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 91.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing03_01",
|
||||||
|
"P_AR_Main_Crossing03_02",
|
||||||
|
"P_AR_Main_Crossing03_03",
|
||||||
|
"P_AR_Main_Crossing03_04"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_04": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 16207.389,
|
||||||
|
"y": 594.297,
|
||||||
|
"z": 9735.727
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 10.667,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 16205.219,
|
||||||
|
"y": 594.197,
|
||||||
|
"z": 9758.288
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 191.667,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing04_01",
|
||||||
|
"P_AR_Main_Crossing04_02"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_05": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 16440.213,
|
||||||
|
"y": 598.900,
|
||||||
|
"z": 11868.170
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 290.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 16427.995,
|
||||||
|
"y": 598.900,
|
||||||
|
"z": 11866.764
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 110.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing05_01",
|
||||||
|
"P_AR_Main_Crossing05_02"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_Main_06": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17718.141,
|
||||||
|
"y": 607.235,
|
||||||
|
"z": 13124.808
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 251.667,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17667.979,
|
||||||
|
"y": 607.035,
|
||||||
|
"z": 13101.339
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 71.667,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_Main_Crossing06_01",
|
||||||
|
"P_AR_Main_Crossing06_02",
|
||||||
|
"P_AR_Main_Crossing06_03"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_RF_01": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17562.490,
|
||||||
|
"y": 616.168,
|
||||||
|
"z": 14243.105
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 345.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17549.906,
|
||||||
|
"y": 616.168,
|
||||||
|
"z": 14261.473
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 165.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_RF_Crossing01_01"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_RF_02": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17616.518,
|
||||||
|
"y": 613.358,
|
||||||
|
"z": 14013.257
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 165.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 17630.041,
|
||||||
|
"y": 613.308,
|
||||||
|
"z": 13990.998
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 345.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_RF_Crossing02_01"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_RF_03": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 18532.909,
|
||||||
|
"y": 633.959,
|
||||||
|
"z": 15531.714
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 13.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 18526.032,
|
||||||
|
"y": 634.356,
|
||||||
|
"z": 15557.276
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 178.000,
|
||||||
|
"z": 0.000
|
||||||
|
},
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_RF_Crossing03_01"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_CB_01": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 15694.504,
|
||||||
|
"y": 594.526,
|
||||||
|
"z": 9367.962
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 79.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 15704.379,
|
||||||
|
"y": 594.376,
|
||||||
|
"z": 9375.236
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 269.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_CB_Crossing01_01"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_CB_02": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 15752.499,
|
||||||
|
"y": 595.326,
|
||||||
|
"z": 9368.774
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 86.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 15759.369,
|
||||||
|
"y": 595.326,
|
||||||
|
"z": 9376.196
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 268.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_CB_Crossing02_01"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"C_AR_CB_03": {
|
||||||
|
"handler": "CUtil.RRCrossing",
|
||||||
|
"identifier": "RRCrossingRexRust1",
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 16964.654,
|
||||||
|
"y": 609.449,
|
||||||
|
"z": 9268.154
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 9.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": {
|
||||||
|
"x": 16960.996,
|
||||||
|
"y": 609.599,
|
||||||
|
"z": 9293.203
|
||||||
|
},
|
||||||
|
"rotation": {
|
||||||
|
"x": 0.000,
|
||||||
|
"y": 189.000,
|
||||||
|
"z": 0.000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"spanIds": [
|
||||||
|
"P_AR_CB_Crossing03_01"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"OCustom_oxdx": {
|
||||||
|
"handler": "AlinasMapMod.MapLabelBuilder",
|
||||||
|
"position": {
|
||||||
|
"x": 13061.472,
|
||||||
|
"y": 571.372,
|
||||||
|
"z": 9590.119
|
||||||
|
},
|
||||||
|
"text": "Birdtown",
|
||||||
|
"alignment": "TopLeft"
|
||||||
|
},
|
||||||
|
"OCustom_8njm": {
|
||||||
|
"handler": "AlinasMapMod.MapLabelBuilder",
|
||||||
|
"position": {
|
||||||
|
"x": 17188.516,
|
||||||
|
"y": 608.610,
|
||||||
|
"z": 9723.577
|
||||||
|
},
|
||||||
|
"text": "Cherokee",
|
||||||
|
"alignment": "TopLeft"
|
||||||
|
},
|
||||||
|
"OCustom_3pjr": {
|
||||||
|
"handler": "AlinasMapMod.MapLabelBuilder",
|
||||||
|
"position": {
|
||||||
|
"x": 17680.560,
|
||||||
|
"y": 643.890,
|
||||||
|
"z": 14738.434
|
||||||
|
},
|
||||||
|
"text": "Ravenford",
|
||||||
|
"alignment": "TopLeft"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"simpleGraphs": {},
|
||||||
|
"mandelas": {}
|
||||||
|
}
|
||||||
42824
R.GBBL/game-graph.json
Normal file
3612
R.GBBL/industries.json
Normal file
1119
R.GBBL/progressions.json
Normal file
41
R.GBBL/s1.sel
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
"RBP Selection File": {
|
||||||
|
"Nodes": [
|
||||||
|
],
|
||||||
|
"Splines": [
|
||||||
|
],
|
||||||
|
"Objects": [
|
||||||
|
"AR_BT_Road_Bridge_02_01",
|
||||||
|
"AR_BT_Road_Bridge_02_02",
|
||||||
|
"AR_BT_Road_Bridge_02_03",
|
||||||
|
"AR_BT_Road_Bridge_02_04",
|
||||||
|
"AR_BT_Road_Bridge_02_05",
|
||||||
|
"AR_BT_Road_Bridge_02_06",
|
||||||
|
"AR_BT_Road_Bridge_02_07",
|
||||||
|
"AR_BT_Road_Bridge_02_08",
|
||||||
|
"AR_BT_Road_Bridge_02_09",
|
||||||
|
"AR_BT_Road_Bridge_02_10",
|
||||||
|
"AR_BT_Road_Bridge_02_11",
|
||||||
|
"AR_BT_Road_Bridge_02_12",
|
||||||
|
"AR_BT_Road_Bridge_02_13",
|
||||||
|
"AR_BT_Road_Bridge_02_14",
|
||||||
|
"AR_BT_Road_Bridge_02_15",
|
||||||
|
"AR_BT_Road_Bridge_02_16",
|
||||||
|
"AR_BT_Road_Bridge_02_17",
|
||||||
|
"AR_BT_Road_Bridge_02_18",
|
||||||
|
"AR_BT_Road_Bridge_02_19",
|
||||||
|
"AR_BT_Road_Bridge_02_20",
|
||||||
|
"AR_BT_Road_Bridge_02_21",
|
||||||
|
"AR_BT_Road_Bridge_02_22",
|
||||||
|
"AR_BT_Road_Bridge_02_23",
|
||||||
|
"AR_BT_Road_Bridge_02_24",
|
||||||
|
"AR_BT_Road_Bridge_02_25",
|
||||||
|
"AR_BT_Road_Bridge_02_26",
|
||||||
|
"AR_BT_Road_Bridge_02_27",
|
||||||
|
"AR_BT_Road_Bridge_02_28",
|
||||||
|
"AR_BT_Road_Bridge_02_29",
|
||||||
|
"AR_BT_Road_Bridge_02_Lamp_01",
|
||||||
|
"AR_BT_Road_Bridge_02_Lamp_02",
|
||||||
|
"AR_BT_Road_Bridge_02_Lamp_03",
|
||||||
|
"AR_BT_Road_Bridge_02_Mask_01"
|
||||||
|
]
|
||||||
|
}
|
||||||
412
R.GBBL/temp.json
Normal file
@@ -0,0 +1,412 @@
|
|||||||
|
{
|
||||||
|
"tracks": {
|
||||||
|
"nodes": {
|
||||||
|
},
|
||||||
|
"segments": {
|
||||||
|
},
|
||||||
|
"spans": {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"areas": {
|
||||||
|
},
|
||||||
|
"loads": {
|
||||||
|
},
|
||||||
|
"texts": {
|
||||||
|
},
|
||||||
|
"scenery": {
|
||||||
|
"REX_TEST_ANINMAL_OBJ_1": {
|
||||||
|
"modelIdentifier": "Rex_Aligator",
|
||||||
|
"position": { "x": 10380.000, "y": 544.000, "z": 7095.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 0.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANINMAL_OBJ_2": {
|
||||||
|
"modelIdentifier": "Rex_StripedBass",
|
||||||
|
"position": { "x": 10380.300, "y": 543.900, "z": 7093.400 },
|
||||||
|
"rotation": { "x": 0.000, "y": 90.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 4.000, "y": 4.000, "z": 4.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_01": {
|
||||||
|
"modelIdentifier": "freight-house-general",
|
||||||
|
"position": { "x": 21550.537, "y": 774.000, "z": 21334.195 },
|
||||||
|
"rotation": { "x": 0.000, "y": 147.000, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_02": {
|
||||||
|
"modelIdentifier": "roadmaster-office",
|
||||||
|
"position": { "x": 21400.000, "y": 778.000, "z": 21528.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 138.000, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_03": {
|
||||||
|
"modelIdentifier": "Rex_water_tower",
|
||||||
|
"position": { "x": 21389.962, "y": 778.000, "z": 21539.148 },
|
||||||
|
"rotation": { "x": 0.000, "y": 48.000, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_04": {
|
||||||
|
"modelIdentifier": "CLB_Ramp01",
|
||||||
|
"position": { "x": 21396.686, "y": 777.900, "z": 21545.134 },
|
||||||
|
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_05": {
|
||||||
|
"modelIdentifier": "CLB_Ramp01",
|
||||||
|
"position": { "x": 21389.628, "y": 777.900, "z": 21552.218 },
|
||||||
|
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_06": {
|
||||||
|
"modelIdentifier": "EMB_B510Platform",
|
||||||
|
"position": { "x": 21395.213, "y": 778.400, "z": 21554.413 },
|
||||||
|
"rotation": { "x": 0.000, "y": 45.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_07": {
|
||||||
|
"modelIdentifier": "CLB_Ramp01",
|
||||||
|
"position": { "x": 21397.915, "y": 777.900, "z": 21560.475 },
|
||||||
|
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_08": {
|
||||||
|
"modelIdentifier": "CLB_Ramp01",
|
||||||
|
"position": { "x": 21404.973, "y": 777.900, "z": 21553.391 },
|
||||||
|
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_09": {
|
||||||
|
"modelIdentifier": "CLB_Ramp01",
|
||||||
|
"position": { "x": 21412.032, "y": 777.900, "z": 21546.308 },
|
||||||
|
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_10": {
|
||||||
|
"modelIdentifier": "CLB_Ramp01",
|
||||||
|
"position": { "x": 21419.091, "y": 777.900, "z": 21539.225 },
|
||||||
|
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_11": {
|
||||||
|
"modelIdentifier": "CLB_Ramp01",
|
||||||
|
"position": { "x": 21403.751, "y": 777.900, "z": 21538.055 },
|
||||||
|
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_12": {
|
||||||
|
"modelIdentifier": "CLB_Ramp01",
|
||||||
|
"position": { "x": 21410.810, "y": 777.900, "z": 21530.972 },
|
||||||
|
"rotation": { "x": 0.000, "y": 315.100, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.500, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_13": {
|
||||||
|
"modelIdentifier": "EMB10MPlatform",
|
||||||
|
"position": { "x": 21414.918, "y": 778.000, "z": 21535.065 },
|
||||||
|
"rotation": { "x": 0.000, "y": 315.100, "z": 0.000 },
|
||||||
|
"scale": { "x": 0.300, "y": 1.500, "z": 0.500 }
|
||||||
|
},
|
||||||
|
"TWINFORKS_FISH_ADDON_14": {
|
||||||
|
"modelIdentifier": "EMB10MPlatform",
|
||||||
|
"position": { "x": 21414.918, "y": 778.000, "z": 21535.065 },
|
||||||
|
"rotation": { "x": 0.000, "y": 315.100, "z": 0.000 },
|
||||||
|
"scale": { "x": 0.300, "y": 1.500, "z": 5.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANIMAL_OBJ_3": {
|
||||||
|
"modelIdentifier": "Animal_Gorilla",
|
||||||
|
"position": { "x": 21392.117, "y": 793.000, "z": 21539.743 },
|
||||||
|
"rotation": { "x": 0.000, "y": 78.000, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANIMAL_OBJ_4": {
|
||||||
|
"modelIdentifier": "Rex_Chicken",
|
||||||
|
"position": { "x": 13484.000, "y": 572.280, "z": 10036.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 78.000, "z": 1.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANINMAL_OBJ_5": {
|
||||||
|
"modelIdentifier": "Animal_Sheep",
|
||||||
|
"position": { "x": 19400.000, "y": 668.300, "z": 15383.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANINMAL_OBJ_6": {
|
||||||
|
"modelIdentifier": "Animal_Sheep",
|
||||||
|
"position": { "x": 19399.015, "y": 668.300, "z": 15382.826 },
|
||||||
|
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANINMAL_OBJ_7": {
|
||||||
|
"modelIdentifier": "Animal_Sheep",
|
||||||
|
"position": { "x": 19397.045, "y": 668.300, "z": 15382.478 },
|
||||||
|
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANINMAL_OBJ_8": {
|
||||||
|
"modelIdentifier": "Animal_Sheep",
|
||||||
|
"position": { "x": 19398.030, "y": 668.300, "z": 15382.652 },
|
||||||
|
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANINMAL_OBJ_9": {
|
||||||
|
"modelIdentifier": "Animal_Sheep",
|
||||||
|
"position": { "x": 19396.060, "y": 668.300, "z": 15382.304 },
|
||||||
|
"rotation": { "x": 0.000, "y": 350.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"MINGOFALLS_CAR_LOOP_1": {
|
||||||
|
"modelIdentifier": "CLB_Truck01",
|
||||||
|
"position": { "x": 19400.015, "y": 668.000, "z": 15419.174 },
|
||||||
|
"rotation": { "x": 0.000, "y": 280.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"MINGOFALLS_CAR_LOOP_2": {
|
||||||
|
"modelIdentifier": "CLB_Truck01_red",
|
||||||
|
"position": { "x": 19339.366, "y": 665.800, "z": 15409.366 },
|
||||||
|
"rotation": { "x": 0.000, "y": 210.000, "z": -3.800 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANINMAL_OBJ_10": {
|
||||||
|
"modelIdentifier": "Rex_Bear",
|
||||||
|
"position": { "x": 14547.000, "y": 593.300, "z": 10259.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 210.000, "z": -3.800 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANINMAL_OBJ_11": {
|
||||||
|
"modelIdentifier": "Rex_Chicken",
|
||||||
|
"position": { "x": 14497.000, "y": 575.200, "z": 10185.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 210.000, "z": -3.800 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANINMAL_OBJ_12": {
|
||||||
|
"modelIdentifier": "Rex_Chicken",
|
||||||
|
"position": { "x": 14496.308, "y": 575.200, "z": 10185.400 },
|
||||||
|
"rotation": { "x": 0.000, "y": 210.000, "z": -3.800 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANINMAL_OBJ_13": {
|
||||||
|
"modelIdentifier": "Rex_Chicken",
|
||||||
|
"position": { "x": 14495.960, "y": 575.200, "z": 10185.600 },
|
||||||
|
"rotation": { "x": 0.000, "y": 225.000, "z": -3.800 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"REX_TEST_ANINMAL_OBJ_14": {
|
||||||
|
"modelIdentifier": "Rex_Chicken",
|
||||||
|
"position": { "x": 14495.253, "y": 575.200, "z": 10186.307 },
|
||||||
|
"rotation": { "x": 0.000, "y": 225.000, "z": -3.800 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"ELA_DISTILLERY_ADDON_01": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": { "x": 9323.032, "y": 546.000, "z": 8081.198 },
|
||||||
|
"rotation": { "x": 0.000, "y": 9.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 2.000, "y": 2.000, "z": 2.000 }
|
||||||
|
},
|
||||||
|
"BIRDTOWN_COCO_ADDON_01": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": { "x": 13260.374, "y": 570.000, "z": 10031.034 },
|
||||||
|
"rotation": { "x": 0.000, "y": 20.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 2.000, "y": 2.000, "z": 2.000 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_ADDON_01": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": { "x": 9389.993, "y": 547.000, "z": 8521.878 },
|
||||||
|
"rotation": { "x": 0.000, "y": 7.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 4.000, "y": 1.000, "z": 4.000 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_ADDON_02": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": { "x": 9389.059, "y": 546.700, "z": 8494.895 },
|
||||||
|
"rotation": { "x": 0.000, "y": 7.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 4.000, "y": 1.000, "z": 7.000 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_ADDON_03": {
|
||||||
|
"modelIdentifier": "CLB_Block01",
|
||||||
|
"position": { "x": 9376.000, "y": 546.800, "z": 8418.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 8.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 7.000, "y": 1.000, "z": 7.000 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_ADDON_04": {
|
||||||
|
"modelIdentifier": "Rex_YardHouse",
|
||||||
|
"position": { "x": 9376.000, "y": 548.100, "z": 8418.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_ADDON_05": {
|
||||||
|
"modelIdentifier": "EMB_B525Platform",
|
||||||
|
"position": { "x": 9374.417, "y": 547.500, "z": 8408.970 },
|
||||||
|
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_ADDON_06": {
|
||||||
|
"modelIdentifier": "EMB_B525Platform",
|
||||||
|
"position": { "x": 9373.722, "y": 547.500, "z": 8404.020 },
|
||||||
|
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_ADDON_07": {
|
||||||
|
"modelIdentifier": "EMB_B510Platform",
|
||||||
|
"position": { "x": 9357.383, "y": 547.500, "z": 8406.318 },
|
||||||
|
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_ADDON_08": {
|
||||||
|
"modelIdentifier": "EMB_B510Platform",
|
||||||
|
"position": { "x": 9358.078, "y": 547.500, "z": 8411.268 },
|
||||||
|
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_ADDON_09": {
|
||||||
|
"modelIdentifier": "EMB_B10MPlatform",
|
||||||
|
"position": { "x": 9390.408, "y": 547.500, "z": 8404.201 },
|
||||||
|
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_ADDON_10": {
|
||||||
|
"modelIdentifier": "EMB_B10MPlatform",
|
||||||
|
"position": { "x": 9398.330, "y": 547.500, "z": 8403.087 },
|
||||||
|
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_CAR_ADDON_01": {
|
||||||
|
"modelIdentifier": "CLB_Truck01_blue",
|
||||||
|
"position": { "x": 9375.119, "y": 548.200, "z": 8411.712 },
|
||||||
|
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
|
||||||
|
},
|
||||||
|
"ELA_LOCO_WORKS_CAR_ADDON_02": {
|
||||||
|
"modelIdentifier": "CLB_Truck01_red",
|
||||||
|
"position": { "x": 9372.149, "y": 548.200, "z": 8412.129 },
|
||||||
|
"rotation": { "x": 0.000, "y": 278.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 0.800 }
|
||||||
|
},
|
||||||
|
"BIRDTOWN_STATION_BLOCK_20": {
|
||||||
|
"modelIdentifier": "EMBMidPlatform",
|
||||||
|
"position": { "x": 12670.523, "y": 568.450, "z": 8710.308 },
|
||||||
|
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.010, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"BIRDTOWN_STATION_BLOCK_30": {
|
||||||
|
"modelIdentifier": "EMB_B510Platform",
|
||||||
|
"position": { "x": 12709.761, "y": 567.900, "z": 8744.825 },
|
||||||
|
"rotation": { "x": 0.000, "y": 147.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"BIRDTOWN_STATION_BLOCK_31": {
|
||||||
|
"modelIdentifier": "EMB_B510Platform",
|
||||||
|
"position": { "x": 12704.315, "y": 567.900, "z": 8753.211 },
|
||||||
|
"rotation": { "x": 0.000, "y": 147.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"BIRDTOWN_STATION_BLOCK_32": {
|
||||||
|
"modelIdentifier": "EMBPlatformRamp",
|
||||||
|
"position": { "x": 12695.601, "y": 567.900, "z": 8766.629 },
|
||||||
|
"rotation": { "x": 0.000, "y": 147.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_ADDON_01": {
|
||||||
|
"modelIdentifier": "Rex_water_tower",
|
||||||
|
"position": { "x": 12644.000, "y": 566.000, "z": 8805.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_ADDON_02": {
|
||||||
|
"modelIdentifier": "Rex_water_tower",
|
||||||
|
"position": { "x": 12638.554, "y": 566.000, "z": 8813.386 },
|
||||||
|
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_ADDON_03": {
|
||||||
|
"modelIdentifier": "Rex_water_tower",
|
||||||
|
"position": { "x": 12633.108, "y": 566.000, "z": 8821.772 },
|
||||||
|
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_ADDON_04": {
|
||||||
|
"modelIdentifier": "locust-pin-co",
|
||||||
|
"position": { "x": 12662.885, "y": 566.000, "z": 8853.029 },
|
||||||
|
"rotation": { "x": 0.000, "y": 327.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_ADDON_05": {
|
||||||
|
"modelIdentifier": "roadmaster-office",
|
||||||
|
"position": { "x": 12638.160, "y": 566.000, "z": 8872.744 },
|
||||||
|
"rotation": { "x": 0.000, "y": 327.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_WORKER_HOUSE_01": {
|
||||||
|
"modelIdentifier": "Rex_AM_House_14",
|
||||||
|
"position": { "x": 12687.028, "y": 566.000, "z": 8826.156 },
|
||||||
|
"rotation": { "x": 0.000, "y": 147.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_WORKER_HOUSE_02": {
|
||||||
|
"modelIdentifier": "Rex_AM_House_15",
|
||||||
|
"position": { "x": 12697.920, "y": 566.000, "z": 8809.384 },
|
||||||
|
"rotation": { "x": 0.000, "y": 237.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_WORKER_HOUSE_03": {
|
||||||
|
"modelIdentifier": "Rex_AM_House_17",
|
||||||
|
"position": { "x": 12706.089, "y": 566.000, "z": 8796.805 },
|
||||||
|
"rotation": { "x": 0.000, "y": 237.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_WORKER_HOUSE_04": {
|
||||||
|
"modelIdentifier": "Rex_AM_House_18",
|
||||||
|
"position": { "x": 12722.861, "y": 566.000, "z": 8807.697 },
|
||||||
|
"rotation": { "x": 0.000, "y": 147.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_WORKER_HOUSE_05": {
|
||||||
|
"modelIdentifier": "Rex_AM_House_19",
|
||||||
|
"position": { "x": 12714.692, "y": 566.000, "z": 8820.276 },
|
||||||
|
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_WORKER_HOUSE_06": {
|
||||||
|
"modelIdentifier": "Rex_AM_House_21",
|
||||||
|
"position": { "x": 12703.800, "y": 566.000, "z": 8837.048 },
|
||||||
|
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"NICKBOTTOM_WORKER_HOUSE_07": {
|
||||||
|
"modelIdentifier": "Rex_AM_House_25",
|
||||||
|
"position": { "x": 12692.908, "y": 566.100, "z": 8853.820 },
|
||||||
|
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.000 }
|
||||||
|
},
|
||||||
|
"BIRDTOWN_STATION_BLOCK_21": {
|
||||||
|
"modelIdentifier": "EMBMidPlatform",
|
||||||
|
"position": { "x": 12692.407, "y": 568.100, "z": 8724.519 },
|
||||||
|
"rotation": { "x": 1.500, "y": 57.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.000, "z": 1.100 }
|
||||||
|
},
|
||||||
|
"BIRDTOWN_STATION_BLOCK_22": {
|
||||||
|
"modelIdentifier": "EMBMidPlatform",
|
||||||
|
"position": { "x": 12673.246, "y": 568.450, "z": 8706.115 },
|
||||||
|
"rotation": { "x": 0.000, "y": 57.000, "z": 0.000 },
|
||||||
|
"scale": { "x": 1.000, "y": 1.010, "z": 1.000 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"splineys": {
|
||||||
|
"JAMESON_MEATS_01": {
|
||||||
|
"handler": "StrangeCustoms.FlowyThingBuilder",
|
||||||
|
"profile": "Railroader Paved Road",
|
||||||
|
"style": "Road",
|
||||||
|
"points": [
|
||||||
|
{
|
||||||
|
"position": { "x": 12689.000, "y": 567.000, "z": 8777.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 330.000, "z": 0.000 },
|
||||||
|
"width": 10.000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"position": { "x": 12615.000, "y": 567.000, "z": 8889.000 },
|
||||||
|
"rotation": { "x": 0.000, "y": 330.000, "z": 0.000 },
|
||||||
|
"width": 10.000
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"simpleGraphs": {},
|
||||||
|
"mandelas": {
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
RMROC451.TweaksAndThings/BleedCar.png
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
RMROC451.TweaksAndThings/BleedConsist.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
RMROC451.TweaksAndThings/ConnectAir.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
RMROC451.TweaksAndThings/ConsistReleaseBrake.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
RMROC451.TweaksAndThings/ConsistSetBrake.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
26
RMROC451.TweaksAndThings/Definition.json
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"manifestVersion": 1,
|
||||||
|
"id": "RMROC451.TweaksAndThings",
|
||||||
|
"name": "RMROC451's Tweaks and Things",
|
||||||
|
"version": "2.1.8_2025-09-19T02:30:13.3132097Z",
|
||||||
|
"requires": [
|
||||||
|
{
|
||||||
|
"id": "railroader",
|
||||||
|
"notBefore": "2024.6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "railloader",
|
||||||
|
"notBefore": "1.9.6.14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "Zamu.StrangeCustoms",
|
||||||
|
"notBefore": "1.10.25017.313"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"assemblies": [ "RMROC451.TweaksAndThings" ],
|
||||||
|
"mixintos": {
|
||||||
|
"container:ne-caboose01": "file(mroc-cabeese.json)",
|
||||||
|
"container:ne-caboose02": "file(mroc-cabeese.json)",
|
||||||
|
"container:ne-caboose03": "file(mroc-cabeese.json)"
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
RMROC451.TweaksAndThings/Follow.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
RMROC451.TweaksAndThings/Hourglass_icon.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
RMROC451.TweaksAndThings/Map_pin_icon.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
RMROC451.TweaksAndThings/Newtonsoft.Json.dll
Normal file
BIN
RMROC451.TweaksAndThings/OilCan.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
RMROC451.TweaksAndThings/RMROC451.TweaksAndThings.dll
Normal file
BIN
RMROC451.TweaksAndThings/RMROC451.TweaksAndThings.pdb
Normal file
BIN
RMROC451.TweaksAndThings/ReleaseBrake.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
RMROC451.TweaksAndThings/SetBrake.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
23
RMROC451.TweaksAndThings/mroc-cabeese.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"objects": [
|
||||||
|
{
|
||||||
|
"$find": [
|
||||||
|
{
|
||||||
|
"path": "definition.archetype",
|
||||||
|
"value": "Caboose"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"definition": {
|
||||||
|
"loadSlots": [
|
||||||
|
{
|
||||||
|
"$add": {
|
||||||
|
"maximumCapacity": 8,
|
||||||
|
"loadUnits": "Quantity",
|
||||||
|
"requiredLoadIdentifier": "crew-hours"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
13
RTM_Objects_pack/CLB_LOAD.json
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"loads":{
|
||||||
|
"clb-carSpawner-internal": {
|
||||||
|
"description": "internalCarSpawner",
|
||||||
|
"units": "Pounds",
|
||||||
|
"density": 1,
|
||||||
|
"unitWeightInPounds": 0.0,
|
||||||
|
"importable": false,
|
||||||
|
"payPerQuantity": 0.0,
|
||||||
|
"costPerUnit": 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
RTM_Objects_pack/CarSpawner.dll
Normal file
23
RTM_Objects_pack/Definition.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"manifestVersion": 5,
|
||||||
|
"id": "RTM_Objects_Pack",
|
||||||
|
"name": "RTM Objects Pack",
|
||||||
|
"version": "5.7",
|
||||||
|
"Autor": "Rex/Latom/C_L_B/Griz/Alina",
|
||||||
|
"requires": [
|
||||||
|
{
|
||||||
|
"id": "Zamu.StrangeCustoms",
|
||||||
|
"notBefore": "1.9.0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mixintos": {
|
||||||
|
"game-graph": [
|
||||||
|
"file(CLB_LOAD.json)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"assemblies": [
|
||||||
|
"ModularScenery",
|
||||||
|
"RRCrossing",
|
||||||
|
"CarSpawner"
|
||||||
|
]
|
||||||
|
}
|
||||||