Problem bei setBiome

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      Problem bei setBiome

      Heey,

      ich versuche mich grade an einem neuen Projekt.
      Ich habe aber leider das Problem das bei dem Versuch das Biome des gesamten Chunks zu ändern,
      sich nicht das Biome von jedem Block ändert bzw bei Blöcken außerhalb des chunks sich das Biom ändert.

      In einer Schleife in welcher ich jeden Block durch gehe verwende ich folgendes:

      Quellcode

      1. ​world.setBiome(x, y, z, biome);


      um es anschaulicher zu machen habe ich mal in dem Chunk die Blöcke an denen Sich das Biom geändert hat durch Wolle ersetzt,
      hier sieht man auch das sich Blöcke außerhalb des chunks geändert haben.

      Hat jemand eine Idee wie man das Problem lösen kann?

      -Annika :saint:
      Bilder
      • 2020-04-05_20.17.29.png

        1,26 MB, 1.920×1.017, 42 mal angesehen
      Hey,

      vor der 1.15 war das Biome ja immer gleich pro X,Z Koordinate (also Y ist egal).
      Du brauchst in der Schleife da nur für einen Chunk 256 Blöcke durch gehen statt 65536.

      Ab der 1.15 wurde das Biome geändert. Jetzt wird in 4x4x4 Bereichen gespeichert. Du kannst also nicht mehr all zu genau Biome einstellen. Die "Biome Mischen" (Nur Mc Client, nicht Server!) Einstellung lässt es aber noch "ok" aussehen. Bedeutet aber auch hier dass du nicht alle Blöcke durch gehen musst - nur 'jeden vierten' Block bzw jeden 64ten je nachdem wie man es ausdrücken will.

      Was dein Bild angeht: Das Bild zeigt geänderte Blöcke - da ist es schwer etwas aus zu sagen.

      Besser wäre du benutzt JUNGLE und SWAMP auf einer komplett geraden Gras-Fläche. Da werden Probleme schnell sichtbar.

      Und poste am besten deinen Code/die ForLoop

      Kade
      Bitte möglichst alle Fragen im Forum stellen und nicht mir per Privatnachricht.
      Ich Teile meine Zeit aktuell: 2,5 Tage 1.13, 2,5 Tage Arbeit, 1 Tag Kadcon. Eine PN-Antwort kann entsprechend länger dauern.
      Hey Kademlia,

      Mein Code sieht bisher so aus (Aktuell wird noch jeder Block durchgegangen)

      Quellcode

      1. for(int y = 0; y < 256; y++){
      2. for(int x = 0; x < 16; x++) {
      3. for(int z = 0; z < 16; z++){
      4. w.setBiome(x, y, z, biome);
      5. }
      6. }
      7. }


      Das mit den zwei Biomen was du vorgeschlagen hast habe ich auch mal als Bild angehängt.

      -Annika
      Bilder
      • 2020-04-06_18.33.03.png

        2,61 MB, 1.920×1.017, 18 mal angesehen
      An sich müsste das so tatsächlich klappt. Wie Kade bereits erwähnt hat, kannst du das noch Optimieren, weil bei 1.15 die Einteilung sich etwas geändert hat (siehe oben).
      Ich denke dieser übergang ist wirklich nur, wegen des Clients bzw weil die Biome halt immer ineinander laufen. Machst du ja jetzt den chunk links daneben auch in dasselbe biom
      dann müssten die anderen Blocke die jetzt noch das "falsche" Biom haben auch wieder passen sein ^^





      *klick*
      Hey,

      ich bin gerade nicht ganz sicher an welcher Stelle das passiert. Ich kann dir aber bestätigen, dass die gepsicherten Daten korrekt sind.

      Dein Code produziert hier also keinen Fehler. Dieser "Fehler" wird entweder erst in der Anzeige vom Minecraft-Client generiert oder Serverseitig beim Versenden der Chunks.

      Erstes Bild: 5x Mit Chunkli den gleichen Chunk gestackt. Die Biome sind an den Rändern unterschiedlich im Aussehen.

      Zweites Bild: Echte Daten im kopierten Chunk. ie Biome sind im gesamtem Chunk gleich.

      Bedeutete: Das "ist so gewollt seit Minecraft 1.15"

      Und ich bin auch relativ sicher warum sie das gemacht haben:
      Durch die Biome Umstellung von 1x256x1 pro Biome auf 4x4x4 können nicht mehr so schöne Übergänge zwischen Biomen erstellt werden. Um es weiter so schön zu haben muss man entweder 16x256x16 speichern (65.000 Werte!) oder man trickst einfach etwas und macht die Übergänge über "Zufallswerte" weniger eckig. Dann kann man mit 4x64x4 auskommen (1024 Werte) und es gibt dennoch keine harten Kanten.









      Kade
      Bilder
      • 2020-04-06 233536.png

        882,53 kB, 1.491×337, 95 mal angesehen
      • data.png

        64,81 kB, 1.145×849, 97 mal angesehen
      Bitte möglichst alle Fragen im Forum stellen und nicht mir per Privatnachricht.
      Ich Teile meine Zeit aktuell: 2,5 Tage 1.13, 2,5 Tage Arbeit, 1 Tag Kadcon. Eine PN-Antwort kann entsprechend länger dauern.
      Hey,
      da hätte ich jetzt getippt, dass du im Test-Code was falsch hast aktuell.

      Wenn ich es mache:

      Quellcode

      1. for (int x = 0; x < 32; x++) {
      2. System.out.println(world.getBiome(0, 76, 145+x));
      3. }
      4. for (int x = 0; x < 32; x++) {
      5. System.out.println(world.getBiome(-1, 76, 145+x));
      6. }


      Habe ich glatte Linien serverseitig für ungerade Linien im client. Sowohl in der Ausgabe über Bukkit API als auch wenn ich die NBT Arrays direkt einsehe
      Bilder
      • x2.png

        72,98 kB, 789×905, 11 mal angesehen
      • 2020-04-07_01.22.44.png

        2,06 MB, 1.600×1.000, 11 mal angesehen
      • meow.png

        175,19 kB, 1.134×1.487, 8 mal angesehen
      Bitte möglichst alle Fragen im Forum stellen und nicht mir per Privatnachricht.
      Ich Teile meine Zeit aktuell: 2,5 Tage 1.13, 2,5 Tage Arbeit, 1 Tag Kadcon. Eine PN-Antwort kann entsprechend länger dauern.
      Der Chunk wird auch zahlenmäßig umgesetzt werden, das was dann als "übergang" bzw "Fehler" gesehen wird ist lediglich der übergange den der Server durch die
      Umstellung dem bereits angesprochenen Chunk Systems. Also das ist jetzt mal meine Ansicht, alles andere würde ich als unlogisch betrachten vorallem weil die übergange der Chunks mit den neueren Versionen überarbeitet wurden (meines Wissens nach zumindest)





      *klick*

      yologamer_2000 schrieb:

      weil die übergange der Chunks mit den neueren Versionen überarbeitet wurden


      Wichtig vielleicht hier für das Verständnis:
      Es gibt hier mehrere Features die auf das Aussehen eine Auswirkung haben.

      0. (Biome selbst wie z.B. SWAMP haben eine Hintergrund-Map die Farbveränderungen innerhalb eines Biomes hat. Das kann dazu führen, dass es aussieht als ob sich das Biome ändert)
      1. "Biome-Blending" (Vermischen von Biomen die sich treffen). Dabei wird im Client der Farbübergang zwischen zwei Biomen verwaschen. Fast genau wie man in Paint o.Ä. Antialiasing auf etwas anwendet.
      Und jetzt wohl neu:
      2. "Biome Border 'Randomness' (Noise Map)". Dabei werden Übergänge zwischen Biomen teilweise vermischt. Dies wurde eingefügt weil sonst das neue 4x4x4 Biome-System unschöne Kanten hätte.
      Der Unterschied zu Biome-Blending ist, dass hier nicht die Farben langsam in einander über gehen, sondern tatsächlich das Biome eines einzelnen Blocks umgestellt wird auf das Nachbar-Biome.
      reddit.com/r/Mojira/comments/e…o_how_biomes_are/f9jsi9f/
      reddit.com/r/Mojira/comments/e…o_how_biomes_are/f9ladpk/


      (Mit Chunks hat dies nicht direkt was zu tun. Chunk-Grenzen sind nur ein guter Ort zum testen, weil dann die Binärdaten im Dateiformat einheitlich sind)

      Kade
      Bitte möglichst alle Fragen im Forum stellen und nicht mir per Privatnachricht.
      Ich Teile meine Zeit aktuell: 2,5 Tage 1.13, 2,5 Tage Arbeit, 1 Tag Kadcon. Eine PN-Antwort kann entsprechend länger dauern.