-
Notifications
You must be signed in to change notification settings - Fork 0
Für Mod Autoren
UTL bietet die Remote-Schnittstelle utl für andere Mods, Szenarien und die Konsole.
/c game.print(serpent.line(remote.call("utl", "get_station", 123)))Stationen werden über die unit_number angesprochen – bei der UTL-Haltestelle die der Haltestelle,
beim Combinator die des Combinators.
| Funktion | Ergebnis |
|---|---|
station_count() |
Anzahl UTL-Stationen |
idle_train_count() |
Anzahl freier Züge in Depots |
delivery_count() |
Anzahl laufender Lieferungen |
get_station(unit) |
Kopie der Stationsdaten: unit, kind, stop_name, config, provide, request, version; nil, wenn unbekannt |
get_deliveries() |
Liste laufender Lieferungen: id, train_id, provider, requester, from, to, network, manifest, state, started, chained
|
get_alerts() |
letzte Warnungen, neueste zuerst: key, group, icon, count, tick
|
get_network_star(surface_index, name, force?) |
Stern eines Netzes: role, center, partners
|
get_team_config(force_name, key) |
gültiger Team-Wert (eigener Wert oder Kartenwert) |
Waren-Schlüssel in provide, request und manifest haben die Form
"Typ|Name|Qualität", zum Beispiel "item|iron-plate|normal" oder "fluid|water|normal". Der state einer Lieferung ist to_provider,
loading, to_requester oder unloading.
| Funktion | Wirkung |
|---|---|
configure_station(unit, changes) |
Einstellungen übernehmen, z. B. { mode = "station", provide = true, request = false, request_priority = 5 }. Nur bekannte Schlüssel mit passendem Typ. mode: "station", "depot", "fuel", "cleanup", "storage". Verschachtelte Tabellen werden eine Ebene tief zusammengeführt, z. B. behält { cleanup = { offer = "first" } } die Warenliste; Lager: { mode = "storage", storage = { limits = { { signal = { type = "item", name = "iron-plate" }, min = 1000, max = 4000 } }, accept_leftover = true } }. Cleanup-offer: false, "reserve", "normal", "first". |
set_request(unit, slot, signal, count) |
Anforderungs-Slot setzen, z. B. set_request(unit, 1, { type = "item", name = "iron-plate" }, 400); signal = nil leert den Slot. |
copy_settings(from_unit, to_unit) |
alle Einstellungen kopieren, wie Shift-Klick |
tag_blueprint(blueprint, mapping, surface) |
UTL-Einstellungen in eine per Script erstellte Blaupause schreiben |
link_networks(surface_index, center, partner, force?) |
zwei Netze zu einem Stern verbinden; Grenze wie im Spiel aus der Forschung. Liefert true oder den Grund als Text. |
unlink_networks(surface_index, a, b, force?) |
Verbindung lösen |
set_team_config(force_name, key, value) |
Team-Wert setzen: load_timeout, unload_timeout (Sekunden), timeout_mode ("and"/"or"); nil = Kartenwert. Team-Werte zählen nur, wenn es Teams gibt. |
set_map_config(setting, value) |
Kartenwert setzen wie im UTL-Manager, z. B. set_map_config("utl-load-timeout", 10); nil = wieder der Wert aus den Mod-Einstellungen. Prüft Typ und Grenzen. |
force ist der Name der Force, Standard "player".
local mapping = stack.create_blueprint({ surface = surface, force = force, area = area })
remote.call("utl", "tag_blueprint", stack, mapping, surface)local stop = surface.create_entity({ name = "utl-train-stop", position = pos, direction = defines.direction.east,
force = "player", raise_built = true })
remote.call("utl", "configure_station", stop.unit_number, { mode = "station", provide = false, request = true })
remote.call("utl", "set_request", stop.unit_number, 1, { type = "item", name = "iron-plate" }, 4000)Important
Per Script gebaute Stationen mit raise_built = true setzen, sonst erfährt UTL nichts von
ihnen. Einen Stations-Combinator ordnet UTL über das Kabel an seinem Ausgang der Haltestelle
zu – also ohne raise_built setzen, verkabeln, dann script.raise_script_built({ entity = combinator }).
Note
Die Schnittstelle wächst mit den Versionen. Der Quelltext steht auf GitHub in scripts/api/remote.lua.
Unified Train Logistics · version / Version 0.0.8 · made with AI help, tested by Marcel / mit KI-Hilfe erstellt, von Marcel getestet · Mod portal · GitHub