Rotation of custom structures changes custom blocks inside them
crxyne opened this issue ยท 8 comments
Name | Value |
---|---|
Terra Version | 5.4.1-BETA |
Platform / Platform Version | Paper |
Any External Plugins or Mods | NBTAPI, ParticleNativeAPI, Protocollib, worldedit & my own plugin to create custom blocks |
Terra Packs In Use | My own |
Terra Addons In Use | None |
Issue Description
When adding custom structures in a pack, containing any custom block (overriden blocks through mushroom blockstates) and loading the structure with any rotation other than 0, the custom blocks change to other custom blocks with different blockstates. This includes the generation of these structures throughout the world. It's highly likely that this is caused by mushroom blocks connecting to other ones (which cannot be turned off, except when placing the block without causing a block update), however in my structure the custom blocks were entirely seperate from other custom blocks.
Steps to reproduce
- Export a structure as a .tesf file, which should contain a custom block.
- Either let it generate on its own, or load it with a rotation that isn't 0.
- The custom block will randomly morph into another and have other blockstates.
Expected behavior
The custom block should stay the way it is in the .tesf file.
Actual behavior
The custom block loses its saved blockstates and gets other ones, morphing it into another custom block.
Full stacktrace
No exceptions thrown.
Additional details
Normally the custom blocks have these states:
However loading the structure with a nonzero rotation (or generating it with a random rotation) causes this to happen:
Edit:
Even after removing all plugins except worldedit and Terra, the issue persists.
It seems the plugin is using the rotation of mushrooms as different blocks.
The best solution to this would be to add some means to configure an "exclusion" for the rotation behaviour, as in all other circumstances, you'd want it to be rotated.
Also,
Terra Packs In Use: My own
and
my own plugin to create custom blocks
does not help.
Could you upload both of these for testing?
@dfsek imo this shouldn't be a "won't fix"
I don't think that adding a "do not rotate this block" feature is that bad of an idea. There may be some instances where it is wanted.
This is working as intended; the blocks are being rotated. If you don't want those particular blocks to be rotated, you are able to do that with TerraScript.
This is working as intended; the blocks are being rotated. If you don't want those particular blocks to be rotated, you are able to do that with TerraScript.
Ah thanks. Alright then, but how would I do that?
This is working as intended; the blocks are being rotated. If you don't want those particular blocks to be rotated, you are able to do that with TerraScript.
I just tried doing it using the state() function, right after the block() in the .tesf file:
state(14, y + 1, 34, "down=false, east=false,north=false,south=true,up=true,west=true");
which didn't work; Then I tried only putting the false blockstates:
state(14, y + 1, 34, "down=false, east=false,north=false");
which also didn't work, it just ignored the state() function. I searched all around the wiki and I still can't find a way to do this.