...etwas hab' ich noch nicht gerafft.
Um zu prüfen, ob mein Steinauswurf an der Basis auch alles Geröll aus dem Inventar entfernt hat,
hab' ich mir diese kleine Funktion gebastelt:
Alles anzeigen
Funktioniert auch so, aber ich dachte eigentlich,
dass das Casten von (IMyInventoryOwner) bei der IMyTerminalBlock-Schnittstelle (?)
inzwischen nicht mehr notwendig wäre - oder etwa doch?
Zuvor wollte ich die Abfrage in Zeile 8 mit "GridTerminalSystem.GetBlocks ()..." erledigen,
was zwar problemlos kompiliert - aber einen Fehler beim ausführen geliefert hat.
Soviel ich noch in Erinnerung habe, ist er bei den Timerblöcken hängengeblieben...
Okay, diese haben natürlich kein Inventar,
aber warum wird dann bei der Abfrage mit "...GetItems () [Y]).Amount;"
nicht einfach 0 zurückgegeben, wie bei den anderen Blöcken ohne Inventar auch?
*irritiert bin*
Wahrscheinlich ist meine Frage selten dämlich und ich seh' den Wald vor lauter Bäumen nich' ...
Kann mich da jemand aus meinen Irrungen befreien?
space-engineers.de/attachment/1673/
Um zu prüfen, ob mein Steinauswurf an der Basis auch alles Geröll aus dem Inventar entfernt hat,
hab' ich mir diese kleine Funktion gebastelt:
C#-Quellcode
- float GetStones ()
- { // ermittelt die Menge der eingelagerten Steine
- float STONES = 0; // Default Rückgabewert
- var INVENTORY = new List <IMyTerminalBlock> ();
- GridTerminalSystem.GetBlocksOfType <IMyInventoryOwner> (INVENTORY);
- for (int Z = 0; Z < INVENTORY.Count; Z++)
- {
- for (int Y = 0; Y < (
- (
- INVENTORY [Z].GetInventory (0)
- ).GetItems ()
- ).Count; Y++)
- {
- if (
- (
- (
- INVENTORY [Z].GetInventory (0)
- ).GetItems () [Y]
- ).Content.TypeId.ToString ().Split ('_') [1] == "Ore"
- )
- {
- if (
- (
- (
- INVENTORY [Z].GetInventory (0)
- ).GetItems () [Y]
- ).Content.SubtypeName == "Stone"
- )
- {
- STONES += (float)
- (
- (
- INVENTORY [Z].GetInventory (0)
- ).GetItems () [Y]
- ).Amount;
- }
- }
- }
- }
- return STONES;
- }
Funktioniert auch so, aber ich dachte eigentlich,
dass das Casten von (IMyInventoryOwner) bei der IMyTerminalBlock-Schnittstelle (?)
inzwischen nicht mehr notwendig wäre - oder etwa doch?
Zuvor wollte ich die Abfrage in Zeile 8 mit "GridTerminalSystem.GetBlocks ()..." erledigen,
was zwar problemlos kompiliert - aber einen Fehler beim ausführen geliefert hat.
Soviel ich noch in Erinnerung habe, ist er bei den Timerblöcken hängengeblieben...
Okay, diese haben natürlich kein Inventar,
aber warum wird dann bei der Abfrage mit "...GetItems () [Y]).Amount;"
nicht einfach 0 zurückgegeben, wie bei den anderen Blöcken ohne Inventar auch?
*irritiert bin*
Wahrscheinlich ist meine Frage selten dämlich und ich seh' den Wald vor lauter Bäumen nich' ...
Kann mich da jemand aus meinen Irrungen befreien?
space-engineers.de/attachment/1673/