Open MSpaceDev opened 1 year ago
I can't reproduce this. I followed the steps and then pasted both the original structure and the new mcstructure into both a Java 1.20.2 and Bedrock 1.20.30 world and the sea pickles don't have any water. I used Amulet Map Editor to do the final pastes but it just calls the same code. Is there something I have missed?
Hey @gentlegiantJGC, pasting the .mcstructure with Amulet Map Editor vs. Structure Block in-game is not the same.
I just tested, using Amulet Map Editor, the sea pickless are not waterlogged when I load into the world. However, using a Structure Block in-game, the sea pickles are waterlogged.
Amulet Map Editor Paste:
Structure Block Paste:
Your original report does not mention that you are pasting in game. Is this a different issue?
Hey, @gentlegiantJGC. Apologies for the lack of clarity there. In my initial post I made the assumption that the .mcstructure
will be pasted with a Structure Block in-game.
Our usecase is that we are creating mcstructures with Amulet from Java schematics. To then be placed by /structure load
controlled by our players. Everything else about the issue is the same.
This is not so critical for us, we are able workaround it with a find/replace solution.
A bug that's really critical for us, cause we have 100s of structures that we need to process, is this 180 degree paste bug: https://github.com/Amulet-Team/Amulet-Core/issues/252
I was hoping you'd have a chance to check it out for us? Would love if I could pay extra for your time, as this is a blocker in a project of ours.
I will have another look over these issues.
We have a sponsor page through github https://github.com/sponsors/Amulet-Team
Thank you so much.
Spent a while debugging what was causing this.
Java has waterlogged
to store if there is water at the same location as the block
Bedrock has a layer system to store two separate blocks at the same location.
In this case however Bedrock uses a property to store if the sea pickle is waterlogged.
I don't know what the solution is on our end.
A quick fix on your end is to find all sea_pickle
blocks with dead_bit
set to ByteTag(0)
and set it to ByteTag(1)
Bug Report
Current Behaviour:
When running
Structure.paste()
orStructure.set_version_block()
, it causes sea_pickles to become water source blocks. When running the exact samepaste()
or orset_version_block
on aWorld
object, the sea_pickles are placed just fine.Expected behavior:
When running
Structure.paste()
orStructure.set_version_block()
, the sea_pickles should stay exactly the same, just like it does when pasting into aWorld
.Steps To Reproduce:
Run this code:
.mcstructure
.World
withamulet.load_level()
, and run the exact same paste, notice that it pastes the sea pickles correctly.Environment:
pip
on Python 3.7Additional context
Seems to only be happening on a
Structure
object. When using aWorld
object; block conversion works 100%.Attachments
Screenshots