Chisels & Bits - For Fabric

Chisels & Bits - For Fabric

2M Downloads

moving to 1.12.2 from 1.10.2 - chiseled blocks become invisible

xemnes opened this issue ยท 11 comments

commented

hi, i have been having a lot of issues for a long while moving to 1.12.2 from 1.10.2.
i use conquest reforged alongside chisels and bits, ive been wanting to move to 1.12.2 for a long while now to use the new version of conquest reforged. the issue is that conquest reforged requires a convertor to remap all the block ids to the new version. this seems to cause chiseled blocks to no longer know what block ids its made up of, causing them to turn invisible.

is there any way at all to be able to remap the block ids in chisels and bits too? im not a fan of losing years of work in my builds.
ive been looking at the nbt tile entity data for chisels and bits but i just cant figure out how it works to manually do it myself.
ive been stuck on 1.10.2 for a very long time due to this one issue with seemingly no viable solution. seems the only solution would be for a tool of some kind to be made.

commented

I don't think there is a way to do this at the moment. I've been working on an external tool to convert C&B worlds from 1.12 to 1.14 but it won't do much for 1.10 -> 1.12. The tool mainly changes the way everything works on the C&B side. Your problem is because the conquest reforged mod changed their block ids. I've never used conquest reforged but I could look into it.

EDIT: Is the external tool from conquest reforged open source, can you link it? If so I could see if I can add support for C&B into it.

commented

conquest reforged essentially just adds 1000s of new blocks to add textures to, a means to solve the removal of metadata in 1.8+ that was useful for creative packs on 1.7.10.
when the mod was updated to 1.12, the block ids were moved around, which i assume was to get it ready for the addition of survival compatibility, most blocks now have crafting recipes, which before on 1.10 had none due to it being purely creative mode. which is why a block id convertor is needed.

the convertor is here: https://conquestreforged.com/downloads but i dont think its open source. i was kindly given a custom version made specifically for me due to having mismatched block ids in my world for some reason. you can open up the jar and actually modify the remappings but thats about it.
heres the custom version: https://cdn.discordapp.com/attachments/479625577758851074/480050492601270273/MassBlockr-1.2.2-CUSTOM-mc1.10-1.12.jar
i guess its worth asking @dags- to see if its available as he made this for me

commented

Huh, think I had them set as private repos out of shame...

This was the original converter:
https://github.com/dags-/MassBlockr

This is the rewrite (functional but wip):
https://github.com/dags-/BlockConverter

Not sure what's needed for C&B's part. Might just be a case of writing a DataConverter (used in ChunkConverter)

commented

i was playing about with it in nbt explorer, trying to figure out what might store the block data. when adding another block to the chiseled block, this is extended by another line:
image
image

nothing to suggest a block id though, absolutely no idea.

commented

This is my tool for converting 1.12 -> 1.14 and it's basically just read, convert and write the nbt. That X tag is where the important data is stored. In the X tag it's a byte array of 16x16x16 ints where each int is the id of the block state it represents. These ids are generated by minecraft itself. I'd need to get a map of all id changes that happened to conquest (old id -> new id maps) and then I could make a simple script to go through each chunk, each chiseled block, change the ids in the byte array where applicable and write it all back into the region file.

commented

if you open up the version of the converter dags made for me, you can find a "mappings.json"

{
  "name": "conquest:leaves_full_2",
  "min": 14,
  "max": 14,
  "biome": -1,
  "to": {
    "name": "conquest:leaves_full_6",
    "data": 6
  }
},

though it doesnt use numerical ids, idk if thats necessary or not. uses numerical metadata though.
i believe min/max is the metadata of the block to be remapped, not sure why theres a min/max though. cant find a use for the biome function in the file, its all set to -1
the 'to' part i think its pretty self explainatory.

commented

Does chisel 1.14 use Block.getStateId and Block.getStateById for serialization to/from that int array or does it keep a local palette somewhere, akin to chunk sections?

1.12 versions of C&B use Block#getStateId yes.

commented

Does chisel 1.14 use Block.getStateId and Block.getStateById for serialization to/from that int array or does it keep a local palette somewhere, akin to chunk sections?

commented

thanks for looking into this guys, i cant tell you how much i appreciate it.

commented

unsure why this was closed, i have been waiting for a fix to this issue which was never resolved.

commented

Hello this was closed, because the 1.12 versions, let alone the 1.10 versions, are not supported anymore.
The updates to 1.16 are running and as such we are focusing on this port/rebuild for this latest MC version.

I am sorry that I am not able to fix your issue, but most likely this entire issue is caused by changes to the internals of Minecraft itself, and I would have never been able to fix it, without a massive system that deals with remapping the ids, which is to be honest not viable.