Creating a schematic with biomes using `//lazycopy -b` results in wrong biomes
PierreSchwang opened this issue ยท 10 comments
Server Implementation
Paper
Server Version
1.20.5/6
Describe the bug
When using //lazycopy -b
for creating a schematic with biome data, the biome will be wrong.
The underlying WorldCopyClipboard
s getBiome(BlockVector3)
method is called with relative coordinates, whereas getBlock
is called using absolute coordinates. This results in the the relative coordinate being used as absolute coordinates for world access.
That is no issue with the actual clipboard (backed by e.g. DiskOptimizedClipboard) as those use a linear pattern and need to be called with relative coordinates.
To Reproduce
- select region
//lazycopy -b
//schem create <filename>
///schem create <filename> safe
//schem load <filename>
//paste -b
Expected behaviour
The biome should be retrieved from the region, not based of world 0;0
Checklist
- I have included a Fawe debugpaste.
- I am using the newest build from https://ci.athion.net/job/FastAsyncWorldEdit/ and the issue still persists.
I tried using the version from the PR directly and I can still reproduce this issue...
My commands / Logs:
[01:10:09 INFO]: TechnicallyCoded issued server command: /mvtp antaria
[01:10:14 INFO]: TechnicallyCoded issued server command: /gmc
[01:10:19 INFO]: TechnicallyCoded issued server command: /tp 0 100 512
[01:10:19 INFO]: [TechnicallyCoded: Teleported TechnicallyCoded to 0.500000, 100.000000, 512.500000]
[01:10:23 INFO]: TechnicallyCoded issued server command: //chunk
[01:10:26 INFO]: TechnicallyCoded issued server command: //lazycopy -b
[01:10:32 INFO]: TechnicallyCoded issued server command: //schem save test -f
[01:10:32 INFO]: TechnicallyCoded saved /home/container/plugins/FastAsyncWorldEdit/schematics/test.schem
[01:10:35 INFO]: TechnicallyCoded issued server command: //cc
[01:10:38 INFO]: TechnicallyCoded issued server command: /mvtp tmp
[01:10:39 INFO]: TechnicallyCoded issued server command: /gmc
[01:11:02 INFO]: TechnicallyCoded issued server command: /tp ~ 100 ~
[01:11:02 INFO]: [TechnicallyCoded: Teleported TechnicallyCoded to -15.529150, 100.000000, 32.300000]
[01:11:18 INFO]: TechnicallyCoded issued server command: //schem load test
[01:11:23 INFO]: TechnicallyCoded issued server command: //paste -b
VERSION VERIFICATION
fawe version
[01:15:20 INFO]: FastAsyncWorldEdit-0
[01:15:20 INFO]: Authors: Empire92, MattBDev, IronApollo, dordsor21 and NotMyFault
[01:15:20 INFO]: Wiki: https://intellectualsites.github.io/fastasyncworldedit-documentation/
[01:15:20 INFO]: Discord: https://discord.gg/intellectualsites
about FastAsyncWorldEdit
[01:15:26 INFO]: FastAsyncWorldEdit version 2.10.1-SNAPSHOT
[01:15:26 INFO]: Blazingly fast world manipulation for builders, large networks and developers.
[01:15:26 INFO]: Website: https://www.spigotmc.org/resources/13932/
[01:15:26 INFO]: Authors: Empire92, MattBDev, IronApollo, dordsor21 and NotMyFault
It's still a V2 schematic so will still only save the schematic from the bottom of the clipboard, check that that isn't happening
I'm not sure I fully understood what you mean so I tried a few thing:
- How would I force a v3 (I'm guessing) format? I tried
//schem save test2 fawe -f
, same results (see below) - I also tried just taking the top layer as seen below
My attempt to force newer FAWE schem types (no idea if this is remotely correct)
[09:28:41 INFO]: TechnicallyCoded issued server command: /mvtp antaria
[09:28:44 INFO]: TechnicallyCoded issued server command: /gmc
[09:28:47 INFO]: TechnicallyCoded issued server command: /tp 0 100 512
[09:28:47 INFO]: [TechnicallyCoded: Teleported TechnicallyCoded to 0.500000, 100.000000, 512.500000]
[09:28:47 INFO]: TechnicallyCoded issued server command: /tp 0 100 512
[09:28:47 INFO]: [TechnicallyCoded: Teleported TechnicallyCoded to 0.500000, 100.000000, 512.500000]
[09:28:51 INFO]: TechnicallyCoded issued server command: //wand
[09:29:01 INFO]: TechnicallyCoded issued server command: /tp 0 100 512
[09:29:01 INFO]: [TechnicallyCoded: Teleported TechnicallyCoded to 0.500000, 100.000000, 512.500000]
[09:29:02 INFO]: TechnicallyCoded issued server command: //copy (((I clear this mistake right after)))
[09:29:05 INFO]: TechnicallyCoded issued server command: //cc
[09:29:16 INFO]: TechnicallyCoded issued server command: //lazycopy -b
[09:29:25 INFO]: TechnicallyCoded issued server command: //schem save test2 fawe -f
[09:29:25 INFO]: TechnicallyCoded saved /home/container/plugins/FastAsyncWorldEdit/schematics/test2.schem
[09:29:32 INFO]: TechnicallyCoded issued server command: /mvtp tmp
[09:29:33 INFO]: TechnicallyCoded issued server command: //cc
[09:29:34 INFO]: TechnicallyCoded issued server command: /gmc
[09:29:47 INFO]: TechnicallyCoded issued server command: /tp ~ 100 ~
[09:29:47 INFO]: [TechnicallyCoded: Teleported TechnicallyCoded to -15.582235, 100.000000, 32.300000]
[09:29:54 INFO]: TechnicallyCoded issued server command: //paste -b
You also need to remember that the Minecraft noise biomes will usually hide biomes if it's only one "thick". The best way to do it is to look into the schematic data with something like NBTExplorer
I opened my test2.schem file, it's the one that's a thin slice. It does say that the version is 2, but since it's the thin top slice, it should limit the scope of problems related to 2D biome maps (at least if I understood correctly) and the only biome in the palette is "forest" which is neither "ocean" (fawe default I think), nor "plains" (voidgen default).
Maybe the NBT view can help us see where I'm going wrong...
It's still working absolutely fine for me. Potentially it's something to do with allowed regions?
Just tested and it won't be region restriction issues, but it works fine for both Pierre and me. It could be worth setting max-fails in your limit to zero, as forest is returned for biome type if there is a failure and the fail limit isn't reached