Eine neue Ware ins Spiel zu bringen, ist nicht besonders kompliziert.
Grundsätzlich definiert wird sie im Verzeichnis res\config\cargo_types. Darin kommt eine Datei, die (Warenname).cargo.lua genannt wird.
Sie enthält folgende Parameter:
function data()
return
{
id = "NAME", name = _("Name des Frachtguts"), weight = 1200.0,
order = 100,
levelModels = {
MEDIUM4x1 = "industry/cargo/level/coke_level_4x1.mdl",
MEDIUM2x1 = "industry/cargo/level/coke_level_2x1.mdl"
},
discreteModels = {
SMALL = "industry/cargo/coke_small.mdl",
BIG = "industry/cargo/coke_big.mdl"
},
townInput = {
"COMMERCIAL",
},
}
end
Display More
"id = " legt einen Namen fest, unter dem diese Ware spielintern bezeichnet wird. Sie wird in Großbuchstaben geschrieben und muß natürlich einzigartig sein.
"name = " definiert den Namen, den die Ware auf der Benutzeroberfläche trägt, wenn beispielsweise der Mauszeiger über dem Icon schwebt.
"weight = " legt fest, wie viel eine volle Kiste von dem Gut wiegt.
"order = " definiert die laufende Nummer des Frachtguts im Spiel - auch hier ist eine einzigartige Nummer vermutlich wichtig, damit es nicht zu Modkollisionen kommt.
Im Block "levelModels = " wird die Plane für Schüttgüter in Wagen festgelegt; wenn eine Ware nicht als Schüttgut transportiert wird, kann er entfallen.
Der Block "discreteModels = " definiert, welche Mesh für die Stückgüter verwendet wird. Der sollte immer mit dabei sein; auch Kohle etc. reist im Spiel in einigen Transportmitteln in Kisten.
"townInput = " legt bei Waren, die von Städten verbraucht werden sollen, fest, welcher Stadtteil sie annimmt. Optionen sind: "RESIDENTIAL", "COMMERCIAL" oder "INDUSTRIAL". Bei Zwischenprodukten, die nur von einem Werk ins nächste transportiert werden sollen und nicht in Städten verbraucht werden, kann dieser Block fehlen.
Die .mdl-Dateien sitzen in dem Verzeichnis, das in diesen Blöcken drin steht und funktionieren so, wie alle .mdls in diesem Spiel aufgebaut sind.
Als nächstes brauchen wir ein Symbol für die Benutzeroberfläche, das die Ware repräsentiert und an verarbeitenden Betrieben, Bahnhöfen, Waggons, überall da, wo diese Ware auftaucht, gezeigt wird. Hier brauchen wir drei verschiedene Dateien, die alle in res\textures\ui\hud stehen müssen.
Die erste heißt: cargo_NAME.tga und ist 24x24 Pixel groß. Dieses Bild wird unter anderem an Bahnhöfen auftauchen.
Die zweite heißt: cargo_NAME@2x.tga und ist 50x50 Pixel groß. Dieses Bild taucht an Fabriken in dem Schild auf, das die Arbeitsweise der Fabrik (Eingang und Ausgang) zeigt.
Die dritte heißt cargo_NAME_small.tga und hat 10x10 Pixel. Dieses Symbol ist im Fabriksfenster zu sehen, wo das Rezept genau angezeigt wird.
"NAME" steht oben natürlich für den Namen, der in der .cargo.lua unter "name = " eingetragen wurde.
Um die Ware in einer Fabrik erzeugen oder verarbeiten zu lassen, öffne man die .con des betreffenden Werks. Ganz unten in der Datei steht folgender Block:
local stockListConfig = {
stocks = { "COAL" },
rule = { input = { { 3 } }, output = { OIL = 1, COKE = 1 }, capacity = 200 },
}
Der Block ist beinahe selbsterklärend. Unter "stocks = " steht, was in der Fabrik gelagert wird, "rule = " legt fest, was die Fabrik erzeugt und was sie dafür benötigt. Im obigen Fall verbraucht sie 3x Kohle und erzeugt daraus 1x OIL und 1x COKE"; das kann man natürlich frei anpassen. "capacity = " legt fest, wie viel Ware in der Fabrik gespeichert werden kann, bevor das Lager voll ist und etwas abgeholt werden muß.
Und jetzt brauchen wir noch Transportmittel, damit die neue Ware auch an ihr Ziel kommt.
In den .mdls der Transportmittel sind ganz unten für jedes Frachtgut und jeden Frachtraum solche Blöcke enthalten:
{
{capacity = 44, cargoBay = {bbMax = { 28.51, 1.62, 7.35, },bbMin = { 20.14, -1.62, 4.95, }, cargoFormat = "", childId = 0, gridSize = { 4, 2, }, sizePolicy = "STRETCH_HEIGHT_SCALEY", type = "DISCRETE", },
type = "STEEL",
},
},
Zur Erklärung der Frachträume selbst gibt es einen separaten Lexikonartikel, den ich hier als bekannt voraussetze. Dupliziert einfach einen dieser Blöcke und setzt bei "type = " den Namen (wiederum den internen, wie in der .cargo.lua) ein. Dann sollte es funktionieren.
Comments 5
Newly created comments need to be manually approved before publication, other users cannot see this comment until it has been approved.
Newly created comments need to be manually approved before publication, other users cannot see this comment until it has been approved.
Emiliocat
Zitat:
"order = " definiert die laufende Nummer des Frachtguts im Spiel - auch hier ist eine einzigartige Nummer vermutlich wichtig, damit es nicht zu Modkollisionen kommt.
woher weiß man denn die vergebenen Nummern ?
DH-106
Im Spiel sind es einstellige Zahlen, soweit ich das bisher gesehen habe. Wenn man also mit 101, 102 etc. anfängt, ist die Chance gut, daß man eine noch unvergebene erwischt.
Emiliocat
na wenn das alle machen sind wir schnell bei ....
aber steht fest die Zahl muß eindeutig also einmalig im Spiel sein.
Ich hab mal Zucker versucht, so zum spaß, leider gibt es kein MOdel dafür oder das heißt anders
Full_House_82
How do I change the animation of bulk cargo parameters in open wagons for converted mods with TF1? I tried replacing the load from the vanilla car. The animation has appeared, the width and height are normal, and the length is slightly protruding over the edges of the sides. Thank you for earlier
DH-106
Please take a look at this article. The basics of cargo holds in TPF2 are explained there.