Raffinerie - krt-profit/basetool GitHub Wiki
Raffinerie
Sidebar → Flotte & Logistik → Raffinerieverwaltung — Raffinerie-Aufträge bilden Refining-Jobs (Erz → SCU) inkl. Stammdaten, Laufzeit und Material-Ergebnissen ab. Sie gehören einer Org-Einheit: jede Org-Einheit sieht nur ihre eigenen Aufträge. Wer keiner Org-Einheit angehört, legt rein persönliche Aufträge an, die nur er selbst sieht.
Durchsuchbare Auswahlfelder: Material- und Ortsauswahlen sind Suchfelder — beim Tippen wird der Katalog direkt auf dem Server durchsucht (wie bei der Nutzer- und Item-Suche). Angezeigt werden die ersten 25 Treffer; einfach weitertippen, um die Liste einzugrenzen. So bleibt jeder Eintrag auffindbar, egal wie groß der Katalog ist.
Die aktive Org-Einheit (Staffel oder SK) steht im Anwendungstitel (Kopfzeile + Browser-Tab) und wird in der Sidebar unter „Aktive Org-Einheit" gewechselt. Sie bestimmt, welcher Org-Einheit ein neuer Auftrag zugeordnet wird und welche Aufträge du in der Liste siehst. Bist du in mehreren Einheiten und hast keine gewählt, fragt das Formular über „Zuordnen zu" nach.
Lifecycle
Ein Auftrag hat einen gespeicherten Status, den du im Formular setzt:
| Status | Bedeutung |
|---|---|
| Offen | Angelegt, noch nicht eingelagert. |
| In Bearbeitung | Wie „Offen" — der Auftrag läuft bzw. wartet aufs Einlagern. |
| Abgeschlossen | Die Ausbeute ist eingelagert. |
| Abgebrochen | Abgebrochen / verworfen. |
Liste und Detailseite zeigen daraus, wo der Auftrag gerade steht — berechnet aus Startzeit und Dauer:
| Anzeige | Bedeutung |
|---|---|
| Läuft | Offen oder in Bearbeitung, und „Fertig am" liegt noch in der Zukunft. |
| Abholbereit | Offen oder in Bearbeitung, und die Laufzeit ist vorbei (oder es ist keine Laufzeit eingetragen) — die Ausbeute kann eingelagert werden. |
| Abgeschlossen / Eingelagert | Die Ausbeute wurde eingelagert. |
| Abgebrochen | Der Auftrag wurde abgebrochen. |
Liste
Die Seite „Raffinerie" zeigt oben rechts „Neuer Auftrag". Darunter die Werkzeugleiste:
- „Läuft · Abholbereit · Abgeschlossen · Alle" — wählt, welche Aufträge du siehst; jede Option zeigt ihre Anzahl, die Zahl bei „Abholbereit" ist grün.
- Suche — nach Material, Ort oder Besitzer („Material, Ort oder Besitzer …"). Die Suche läuft über alle Aufträge, nicht nur über die gerade angezeigte Seite.
- Meine Aufträge — Schalter, um nur die eigenen Aufträge zu sehen.
Die Liste filtert sofort, einen „Filtern"-Knopf gibt es nicht. Jede Zeile zeigt:
- Ausbeute — das Ergebnis (z. B. „Quantanium 18,4 SCU"), darunter die Kurz-ID und das Eingangsmaterial;
- Raffinerie — Ort und Raffiniermethode;
- Fertig — bei laufenden Aufträgen „in 3 h 20 min · 03.10. 18:00", bei abholbereiten „abholbereit seit …", dazu ein Fortschrittsbalken (grün, sobald abholbereit);
- Besitzer;
- Einlagern — nur bei abholbereiten Aufträgen; öffnet den Auftrag direkt mit dem Einlagern-Dialog.
Abholbereite Zeilen haben links eine grüne Kante. Ein Klick auf die Zeile öffnet den Auftrag. Der verknüpfte Einsatz steht nicht mehr in der Liste, sondern im Auftrag selbst.
Die Liste wird seitenweise geladen statt alle Aufträge auf einmal: Unter der Tabelle steht „1–50 von 120" mit der Seiten-Navigation, und die Seitengröße (10 / 50 / 100, Standard 50) wählst du selbst. Auswahl und „Meine Aufträge" bleiben beim Blättern erhalten.
Die Auswahl („Läuft", „Abholbereit", …) und „Meine Aufträge" werden pro Browser gemerkt und beim nächsten Öffnen der Liste automatisch wiederhergestellt; das Suchfeld startet bewusst leer. Eine alte gespeicherte Status-Auswahl wird beim ersten Öffnen passend übernommen.
Live-Aktualisierung
Legt jemand einen Raffinerie-Auftrag an, bearbeitet, lagert ein oder bricht ihn ab, aktualisiert sich deine offene Liste ohne Neuladen — mit deinen eigenen Filtern und deiner eigenen Seite. Der Haken „Meine Aufträge" eines anderen Nutzers wirkt sich dabei nie auf deine Ansicht aus. Beim Einlagern wird zusätzlich ein offenes Lager aktualisiert, weil die eingelagerte Ausbeute dort sofort auftaucht.
Auftrag anlegen
Die Seite „Neuer Raffinerieauftrag" (oben „← Raffinerie" zurück zur Liste) ist ein Formular in nummerierten Abschnitten:
- Raffinerie — Raffinerie (Ort / Station), Raffiniermethode (siehe unten) und Einsatz (Optional) — ein verknüpfter Einsatz. Speichern lässt sich nur ein Einsatz, an dem der Besitzer des Auftrags teilnimmt (siehe unten).
- Zeit — Startdatum (mit „Jetzt"-Knopf) und Dauer in Stunden/Minuten; „Fertig am" wird daraus berechnet.
- Materialien — je Zeile Eingang (Erz), Qualität und Units, daneben Ausgang mit Units und SCU; die SCU werden automatisch berechnet. Weitere Zeilen über „Material hinzufügen".
- Finanzen — Auftragskosten, Sonstige Kosten, Ore Sales (siehe unten).
- Besitzer — Logistiker können Aufträge hier auch für andere Mitglieder anlegen.
Rechts daneben zeigt eine Karte „Gewinn / Verlust" groß mit dem Rechenweg. Unten bleibt die Leiste mit „Abbrechen" und „Auftrag anlegen" stehen, auch wenn du scrollst. Ein neuer Auftrag startet als Offen; den Status änderst du später im Auftrag selbst.
Einsatz nur mit Teilnahme. Ein verknüpfter Auftrag fließt in die Auszahlung der Operation ein: Sein Ergebnis landet im Topf, seine Kosten werden dem Besitzer gutgeschrieben. Deshalb lässt sich ein Auftrag nur mit einem Einsatz verknüpfen, an dem sein Besitzer als Teilnehmer eingetragen ist — das gilt auch, wenn ein Logistiker oder Einsatzleiter den Auftrag anlegt oder ändert. Andernfalls erscheint „Dieser Einsatz kann nicht verknüpft werden: Der Besitzer des Auftrags nimmt nicht an ihm teil." Trag den Besitzer zuerst beim Einsatz ein, oder lass das Feld leer. Eine bestehende Verknüpfung bleibt beim Bearbeiten erhalten, und das Feld zu leeren ist immer möglich.
Zeiten werden in UTC gespeichert und in deiner lokalen Zeit angezeigt. Jeder Auftrag trägt eine Version: Speichert jemand parallel, bekommst du den Hinweis „Konflikt: Jemand war schneller".
Raffiniermethode und Methoden-Bewertung
Pro Auftrag wählst du die Raffiniermethode. Sobald eine Methode gewählt ist, blendet das Basetool direkt daneben drei Bewertungen ein, damit du die Methoden vergleichen kannst:
- Ertrag — wie viel Ausbeute die Methode liefert (Niedrig / Mittel / Hoch).
- Kosten — wie teuer die Methode ist (Niedrig / Mittel / Hoch).
- Dauer — wie schnell sie arbeitet (Langsam / Mittel / Schnell).
Solange keine Methode gewählt ist, bleibt die Bewertung ausgeblendet.
Ertrags-Bonus/Malus je Material
Hat die gewählte Raffinerie für ein Eingangsmaterial einen Ertrags-Modifikator (aus UEX-Daten), zeigt das Basetool neben „Ausgangsmenge (Units)" ein kleines Abzeichen mit dem Prozentwert:
- Grün mit
+-Zeichen → Bonus (die Raffinerie liefert mehr). - Rot mit
--Zeichen → Malus (die Raffinerie liefert weniger).
Das Abzeichen erscheint erst, wenn Raffinerie und Eingangsmaterial gesetzt sind und für diese Kombination UEX-Daten vorliegen; sonst bleibt es aus. Wechselst du die Raffinerie oder das Material, aktualisiert es sich ohne Neuladen.
Auftragsfinanzen
Jeder Auftrag kann seine Wirtschaftlichkeit mitführen. Du trägst drei Beträge (in aUEC) ein:
- Auftragskosten — die regulären Kosten des Refining-Jobs.
- Sonstige Kosten — zusätzliche Kosten obendrauf.
- Ore Sales — Erlös aus dem Verkauf des Erzes/Ergebnisses.
Daraus berechnet das Basetool live ein schreibgeschütztes Feld Gewinn/Verlust:
Gewinn/Verlust = Ore Sales − Auftragskosten − Sonstige Kosten
Der Wert steht in der Karte rechts, aktualisiert sich sofort beim Tippen (ohne Speichern) und wird bei einem Verlust rot hervorgehoben; darunter steht der Rechenweg („Verkauf … – Kosten …"). Leere Beträge zählen als 0. Maßgeblich gespeichert wird erst beim Klick auf „Auftrag anlegen" bzw. „Speichern" — die Vorschau ist nur eine Anzeigehilfe.
Auftrag aus Screenshot vorausfüllen (Extractor-Import)
Statt alle Zeilen von Hand abzutippen kannst du einen Raffinerie-Auftrag aus einem Screenshot des In-Game-Raffinerie-Bildschirms vorausfüllen lassen. Den Screenshot liest der Desktop-Extractor lokal auf deinem Rechner aus und erzeugt daraus eine JSON-Datei. Bilder verlassen deinen Rechner nie — nur das ausgelesene JSON geht an das Basetool.
So läuft es ab:
- Du erstellst mit dem Desktop-Extractor die JSON-Datei (Setup-Panel des Raffinerie-Bildschirms, nach „GET QUOTE").
- Du bringst das JSON ins Anlege-Formular — entweder per Datei-Import auf der Seite „Neuer Raffinerieauftrag" (Knopf „Aus Extract importieren" oben rechts, er öffnet die Dateiauswahl) oder per Ein-Klick-Versand direkt aus dem Extractor (siehe Desktop-Extractor). Das Download-Symbol neben dem Import-Knopf („SC Extractor laden“) führt dich zum neuesten Release des Desktop-Tools, falls du es noch nicht hast.
- Das Basetool gleicht Materialien, Ort und Methode gegen die Stammdaten ab und füllt das Formular vor. Du bekommst einen ungespeicherten Entwurf zur Kontrolle — nichts wird automatisch gespeichert.
- Du prüfst den Entwurf, korrigierst Hinweise und klickst erst dann auf „Auftrag anlegen".
Das Speichern läuft danach über denselben normalen Anlege-Weg wie ein von Hand erfasster Auftrag — mit voller Prüfung und Org-Einheits-Zuordnung. Der Import legt also nie selbst einen Auftrag an.
Was der Entwurf dir zeigt
Über dem Formular fasst ein Banner zusammen, wie viele Zeilen erkannt und wie viele übersprungen wurden. Zusätzlich markiert das Basetool einzelne Felder mit Hinweisen, z. B.:
- Nicht erkanntes Material — der Name ließ sich nicht eindeutig zuordnen. Wenn es nahe Treffer gibt, kannst du sie per Klick-Chip ins Auswahlfeld übernehmen; sonst wählst du das Material selbst.
- Unsicherer Treffer — ein Material wurde übernommen, aber mit niedriger Trefferwahrscheinlichkeit (als Prozentwert angezeigt). Bitte kurz gegenprüfen.
- Ort / Methode nicht erkannt — bleibt leer und muss von dir gesetzt werden (normal, wenn der Screenshot die Kopfzeile nicht enthält).
- Zeile übersprungen — z. B. weil der REFINE-Schalter aus war oder die Menge 0 war.
- Ohne Ertragswert — die Aufnahme entstand vor „GET QUOTE"; im Spiel GET QUOTE drücken und neu aufnehmen.
- Ungültige Qualität — ein Qualitätswert außerhalb von 0–1000; im Formular korrigierbar, aber nicht speicherbar, bis er stimmt.
Solche Hinweise blockieren das Speichern nicht pauschal — leere Pflichtfelder (z. B. ein nicht erkanntes Material) musst du aber vor dem Speichern ausfüllen. Die Startzeit übernimmt das Basetool, wenn möglich, aus dem Aufnahmezeitpunkt der Screenshots.
Große Aufträge: Lange Materiallisten, die über mehrere Screenshots aufgenommen wurden, werden unterstützt — der Extractor fügt die Bilder zu einer zusammenhängenden Auftragsliste zusammen.
Vollständig muss es sein: Ein Extrakt wird abgelehnt, wenn es keine einzige Material-Zeile oder kein Quellbild enthält — beides kann bei einer echten Aufnahme nicht vorkommen und deutet auf eine unvollständige Erkennung hin. Nimm das Panel in dem Fall neu und vollständig auf (den Spaltenbereich mit QTY nicht abschneiden) und werte erneut aus. Das gilt gleichermaßen für den Datei-Upload und den Ein-Klick-Versand.
Den Extractor selbst, seine Installation und den Ein-Klick-Versand beschreibt die Seite Desktop-Extractor.
Abschluss
Ist die Laufzeit vorbei, zeigt der Auftrag „Abholbereit". Dann buchst du die Ergebnis-Materialien ins Lager: in der Liste über „Einlagern" in der Zeile oder im Auftrag über „Ausbeute einlagern". Mit dem Einlagern wird der Auftrag automatisch Abgeschlossen — einen Status musst du dafür nicht selbst setzen.
Einlagern-Dialog
Über „Ausbeute einlagern" (bzw. „Einlagern" in der Liste) öffnet sich ein Dialog mit einem Block je Ergebnis-Material. Pro Block füllst du:
- Menge — die einzulagernde Menge. Die Einheit (Stück oder SCU) richtet sich nach dem Material; bei SCU bekommst du den passenden SCU-Hinweis eingeblendet.
- Qualität — Qualitätswert (0–1000).
- Lagerort — wohin das Material gebucht wird.
- Mitglied — auf wessen Inventar die Buchung läuft. Ein anderes Mitglied auswählen dürfen nur Logistiker (sowie Offiziere); allen anderen zeigt das Feld unveränderlich den eigenen Namen. Sonst ließen sich beliebige Mengen in fremde Bestände buchen.
- Org-Einheit — in welche Org-Einheit (Staffel oder SK) eingelagert wird; vorbelegt mit der Org-Einheit des Auftrags.
- Auftrag (Optional) — verknüpft die Buchung mit einem passenden Warenauftrag (siehe unten).
- Als persönlichen Eintrag einlagern — bucht diese Zeile direkt in den privaten Bestand des gewählten Mitglieds statt ins geteilte Staffellager (siehe unten).
- Notiz (Optional) — freier Hinweis, Zustand oder Kontext zum Lagereintrag.
Über das „+" neben einem Material teilst du dessen Menge auf mehrere Einlager-Zeilen auf (z. B. zwei Lagerorte — oder, als Logistiker, zwei Mitglieder). Materialien mit fester Menge lassen sich nicht aufteilen.
Persönlich einlagern
Setzt du bei einer Zeile den Haken „Als persönlichen Eintrag einlagern", landet diese Menge als persönlicher Lagereintrag beim gewählten Mitglied — genau wie beim Einbuchen über Mein Lager. Der Eintrag ist nur für den Besitzer sichtbar und taucht nicht im globalen Lager der Org-Einheit auf. Ohne den Haken bleibt es wie bisher ein geteilter Beitrag ins Staffellager.
Weil die Markierung pro Zeile gilt, kannst du eine Ausbeute über das „+" aufteilen: ein Teil geht ins gemeinsame Lager, der andere in den privaten Bestand.
Persönliche Einträge tragen keine Zuordnung:
- Das Feld „Auftrag" wird gesperrt und geleert, solange der Haken gesetzt ist — die Kombination aus „persönlich" und Warenauftrag wird abgelehnt.
- Ist der Raffinerieauftrag mit einem Einsatz verknüpft, wird dieser Einsatz für die persönliche Zeile nicht vermerkt (geteilte Zeilen desselben Dialogs behalten ihn). Persönlich einlagern heißt gerade, die Menge aus dem Einsatz-Topf herauszunehmen.
Du musst also nicht mehr erst geteilt einlagern und den Eintrag danach im Lager auf „persönlich" umbuchen — das bleibt aber weiterhin möglich, wenn du dich erst später entscheidest.
Beim Einlagern bietet dir die Auswahl „Auftrag" alle aktiven Warenaufträge an, die das eingelagerte Material in der passenden Qualität benötigen — über beide Auftragsarten hinweg (Material- wie Item-Aufträge). So fallen Item-Aufträge nicht mehr aus der Liste, und die Auswahl bleibt befüllt, statt unter Umständen leer zu sein.
Auftrag bearbeiten oder abbrechen
Ein Klick auf eine Zeile der Liste öffnet den Auftrag („Auftrag #…" mit dem aktuellen Stand als Abzeichen). Er ist genauso aufgebaut wie das Anlege-Formular; der fünfte Abschnitt heißt hier „Besitzer & Status" und enthält zusätzlich den Status. Rechts zeigt die Karte die Schritte Läuft → Abholbereit → Eingelagert (erledigte Schritte abgehakt), den Gewinn / Verlust und — sobald der Auftrag abholbereit ist — die Hauptaktion „Ausbeute einlagern". Darunter steht die Karte „Zugeordnet" mit dem verknüpften Einsatz (oder „Kein Einsatz verknüpft") und dem Besitzer.
Solange du den Auftrag bearbeiten darfst (Besitzer oder Logistiker), änderst du die Felder direkt auf der Seite. Sobald du etwas änderst, zeigt die Leiste unten „Ungespeicherte Änderungen"; „Speichern" schreibt die Änderungen, „Verwerfen" setzt das Formular zurück. Bei einem parallelen Speichern eines anderen Nutzers bekommst du den Konflikt-Hinweis. Darfst du den Auftrag nicht bearbeiten, sind die Felder schreibgeschützt und du siehst ihn nur.
Bei Aufträgen, die noch Offen oder In Bearbeitung sind, steht im „⋯"-Menü der Statuskarte „Auftrag Abbrechen" bereit. Nach einer Rückfrage setzt das den Status auf Abgebrochen — der Auftrag bleibt erhalten und in der Liste unter „Alle" sichtbar. Ein Löschen von Raffinerieaufträgen gibt es in der Oberfläche nicht.
Rundungsverhalten (Units → SCU)
Die Raffinerie rechnet in Units, das Lager in SCU. Die Umrechnung rundet je nach Systemeinstellung auf („Aufrunden (Ceil)") oder ab („Abrunden (Floor)").
Benachrichtigungen zur Raffinerie
Ist die Laufzeit eines offenen Auftrags abgelaufen, bekommt sein Besitzer genau einmal die Meldung „Raffinerieauftrag abholbereit“ (mit Raffinerie und Ausbeute). Änderst du Start oder Dauer, beginnt das Warten von vorn. Änderst, stornierst oder lagerst du einen fremden Auftrag ein, erfährt es der Besitzer; wurde die Ausbeute auf ein anderes Mitglied gebucht, erfährt auch dieses davon. Jede Art kannst du unter Profil → Benachrichtigungen abbestellen (siehe Benachrichtigungen).
Wer darf was?
| Aktion | Mitglied | Logistiker | Offizier |
|---|---|---|---|
| Auftrag ansehen | x | x | x |
| Eigene Aufträge anlegen / bearbeiten / abschließen | x | x | x |
| Auftrag aus Screenshot vorausfüllen (Import-Entwurf) | x | x | x |
| Aufträge der Org-Einheit verwalten / für andere anlegen | x | x | |
| Ausbeute auf ein anderes Mitglied einlagern | x | x |
Den Screenshot-Import darf jedes angemeldete Mitglied nutzen — er erzeugt nur einen Entwurf, keine gespeicherten Daten. Bearbeiten, abbrechen und ins Lager buchen darf neben dem Besitzer des Auftrags auch ein Logistiker. Die maßgebliche Rollen-Matrix steht in Rollen und Berechtigungen und in ROLES_AND_PERMISSIONS.md. Bei Abweichungen zählt immer der Code.