+ Antworten
Seite 2 von 4 ErsteErste 1 2 3 4 LetzteLetzte
Ergebnis 11 bis 20 von 31
  1. #11
    Team Jung-Stuten Avatar von BrainStone
    Registriert seit
    09.02.2012
    Beiträge
    1.114
    Minecraft
    The_BrainStone
    was Universum sagen wollte ist, dass du kein 3-dimenionales array nehmen sollst, sondern ein 1-dimensinales. Du speicherst dort aber nicht nur die Block-Id ab, sondern auch die (relativen) Koordinaten!

  2. #12
    @BrainStone genau das !! Im erklaeren bin ich mies
    5 Minuten Zeit? 5 Minuten Zeit. Ich liebe Zeit. Vor allem in Zeiten, in denen sie so knapp verlegt ist ...

  3. #13
    Team Hund Avatar von Gnoccy
    Registriert seit
    25.12.2010
    Beiträge
    457
    Minecraft
    Gnoccy
    Da hätte ich aber das Problem, dass ich während des Einlese-Vorgangs recht oft prüfen muss, ob an bestimmten Koordinaten schon ein Block vorhanden ist. Dazu müsste ich dann aber das komplette Array durchsuchen. Wäre es da nicht sinvoller gleich einen Binärbaum, statt ein Array zu nutzen? Das würde das Suchen vereinfachen.
    So wie ich es geplant habe, müsste das Array schon ein paar tausend Einträge haben. Wenn das dann während des Einlesevorgangs wiederum ein paar tausend mal komplett durchsucht werden muss, ist das wohl kaum reccourcensparend. Wobei ich glaube, dass das auch mit einem Binärbaum nicht viel besser wäre.
    Gibt es nicht noch andere Datenstrukturen, die besser zu meinem Vorhaben passen würden?

  4. #14
    Zitat Zitat von Gnoccy Beitrag anzeigen
    Ich bin mir nicht sicher, ob ich dich falsch verstehe, oder du mich.
    So wie ich dich verstehe, denkst du, ich will, dass etwas bestimmtes ausgeführt wird, wenn an meinen Block bestimmte Blöcke auf eine bestimmte art angrenzen.
    Was ich aber will ist ein mir zu diesem Zeitpunkt unbekanntes Gebilde zu erfassen. Im grunde so etwas ähnliches wie die Blueprints in Buildcraft, nur, dass nicht ein bestimmtes Gebiet abgesteckt und alles darin gespeichert wird, sondern das alle an meinen Block angrenzenden Blöcke gespeichert werden.
    soern da gebildet nicht schwebt kopierst du so die komplette welt XD

    wie wärs es statdessen mit blöcken die alles kopieren was zwischen ihnen liegt? die könnte man dann um das bebilde rum platzieren

  5. #15
    Team Hund Avatar von Gnoccy
    Registriert seit
    25.12.2010
    Beiträge
    457
    Minecraft
    Gnoccy
    Das Gebilde wird schweben, dass ist also kein Problem. Das ganze mit Blöcken zu umranden, wäre natürlich möglich, allerdings aufgrund anderer Dinge die ich geplant habe zu umständlich für den Spieler, weshalb ich das gerne vermeiden würde. Außerdem würde es andere Nachteile mit sich bringen. So könnten zum Beispiel auch Teile anderer Objekte in der Umgebung mit erfasst werden.

  6. #16
    @Gnoccy

    Ich bin dabei als Plugin etwas zu machen, in dem diese "Gebilde" vorgespeichert im Code sind. Dort löse ich es so:
    Ich habe eine Klasse, mit Position (in Bukkit Location, du kannst aber natürlich auch x, y, z als int speichern), dem Type (die ID als int gespeichert) und dem Metadatenwert. Das ist alles in einem Array. Wenn ich das Gebilde nun setze, geh ich nicht jeden Block einzeln durch und suche dach dem, sondern gehe mit einer for-schleife einfach alle Blöcke in dem Array durch. Diese setze ich dann in der Reihnfolge.

    Das sollte (wenn ich jetzt nichts übersehen habe) bei deinem Mod/Plugin auch funktionieren.

    Mit freundlichen Grüßen
    Johannes_C25

  7. #17
    Team Hund Avatar von Gnoccy
    Registriert seit
    25.12.2010
    Beiträge
    457
    Minecraft
    Gnoccy
    Das mag ja auch wunderbar funktionieren, wenn die Gebilde vorgegeben sind. Genau das ist bei mir aber nicht der Fall. Das Gebilde soll vom Spieler frei gestaltbar sein und nachher eingelesen werden.
    In etwa so wie bei der Zeppelin Mod (http://www.minecraftforum.net/topic/...pelin-031-wip/). Nur das man halt nicht herrumfliegen kann, sondern ich einfach nur eine Art "Bauplan" für das Objekt bekomme.

  8. #18
    @Gnoccy

    Aber wofür musst du die Blöcke beim abspeichern einlesen? Du musst sie da doch eigentlich nur festlegen...

  9. #19
    Team Hund Avatar von longor1996
    Registriert seit
    27.11.2010
    Beiträge
    1.840
    Minecraft
    CTM5010
    Also so wie ich das jetzt verstanden habe, willst du um einen Block herum,in einem bestimmten Definierbaren Bereich,
    alle Blöcke abspeichern damit man sie später in Form eines "Bauplans" (Shematic?) erneut setzen kann.

    Wenn so, dann ist das doch ganz Leicht.
    Einfach ein Array erstellen (Oder Zwei, für Metadaten) und die Blöcke reinkopieren.
    Danach einfach das Array in eine Datei speichern.
    Das Auslesen ist dann sehr leicht, da man das Speicherformat selbst festlegt.

    mfg Longor1996
    Java-Programmierer / Minecraft-Modder! Ich gebe gerne (Modding/Tech-)Support über PN. (Service nur verfügbar ab 18 Uhr) Me on Youtube

  10. #20
    Team Hund Avatar von Gnoccy
    Registriert seit
    25.12.2010
    Beiträge
    457
    Minecraft
    Gnoccy
    Wieso festlegen? Ich weiß doch gar nicht was ich festlegen soll.
    Oder reden wir gerade aneinander vorbei? Grundsätzlich will ich nichts anderes machen, als die oben erwähnte Zeppelin Mod: Sobald eine bestimmte Aktion ausgeführt wird bekomme ich sozusagen einen Bauplan für ein vom Spieler gestaltetes Gebilde. Dieses besteht aus einem Ursprungsblock, sowie allen angrenzenden Blöcken, den Blöcken die wiederum an diese Blöcke angrenzen, den Blöcken die an diese angrenzen und so weiter.
    Mit dem Bauplan dazu will ich das Gebilde dann an anderer Stelle rekonstruieren können.

+ Antworten