Chisels & Bits - For Fabric

Chisels & Bits - For Fabric

2M Downloads

Certain bits randomly cause chiseled block textures to break.

Phylogeny opened this issue ยท 8 comments

commented
  • MC Version: 1.12 (Forge: 14.21.1.2387)
  • C&B Version: 14.3
  • Do You have Optifine: No.

What I have done:

  1. Run client and create new superflat world.
  2. Place or remove (or both) bits or chiseled blocks.
  3. Close the client and re-run it.
  4. Return to the world and make a second change.
  5. Delete the world, close the client, and repeat.

In doing this over and over, I have found that when a texture for a bit is broken:

  • All chiseled blocks that are predominately comprised of a broken bit, render broken textures upon loading the world.
  • Chiseling a block of the broken bit type creates a chiseled block with broken textures.
  • Placing a chiseled block predominately comprised of a broken bit breaks the texture, but placing a chiseled block that is not, does not.
  • Placing broken bits into an air block breaks the texture of the newly created chiseled block, but placing them into a preexisting chiseled block does not.
  • After placing broken bits into preexisting chiseled block, removing all non-broken bits does not break the texture, even though the broken bits are now the only bits in the chiseled block. (such a block's texture remains unbroken even after exiting and re-entering the world)
  • Only restarting the client can fix a broken bit, but it's a roll of the dice, since it may still be broken, or another may break.

Edit: See comment 5 below this.
So far, wool has broken most often, while dirt and grass have only broken once in a while (Edit: I've since seen sand break, as well). I have only ever seen one broken at a time, but that may be a coincidence. Also, when wool breaks, it breaks for all wool blockstates.

It's all very random.

commented

Yeah... this sounds like a pain to track down.

I can only imagine its maybe some of the register changes are responsible, its hard to say. Since your closing the client, that almost removes cache contamination as a cause.

commented

Is the issue your describing changing the shape of the block?

In other words, if you remove a corner for instance, when the issue is recreated, do you get a purple and black box? or do you get a purple and black corner piece?

Or are you not seeing purple and black at all, I've not had time to look at this yet, but based on your response on the forum I wanted to confirm the nature of the issue.

commented

If it helps, here's some code I threw in an item class for testing, just now: https://gist.github.com/Phylogeny/51ef57bbbc75651f0b0d1cbbf58021d3

After creating the structure with the code above, and closing/running the client 12 times (logging into the same world each time), the broken bits for each run were as follows:

  1. Netherwart block, hey bale, melon, grass
  2. Glowstone, stained glass, glass
  3. Packed ice
  4. Acacia leaves, oak leaves
  5. Snow
  6. Crafting table, mushroom block, acacia wood, oak wood, oak wood slab, bookshelf
  7. Obsidian, water
  8. Packed ice
  9. Ice
  10. Block of redstone, diamond, gold, emerald, iron, lapis lazuli
  11. 57 of the 90 total bits were broken in this run...
  12. Glowstone, stained glass, glass, sea lantern

I can also confirm that if it's broken for one of a block's states, it's broken for all its states.

I'm not sure if those data (or any patterns in them) are helpful, but there they are.

commented

Thanks for all the testing so far, I'm not sure if that pattern really means anything, other then it appears random, or at least psudo-random.

That is useful in it self at least, though admittedly not terribly so. My suspicions so far remaining that it has to do with the way that the new register events and the delegates have changed, though I'm pretty sure last I checked that those were working fine where I have them.

I think that is about all we'll figure out before breaking down and doing some real debugging.

commented

I'm pretty sure that commit will fix it, took a while to track down, and when I finally did I just had to sigh, its exactly what I thought it was, I was just doing something stupid without realizing it, guess that's the nature of bugs.

commented

The entire block renders as a meter^3 purple and black cube, just as in that image in the forum. Regardless of any bits in the block, the 6 faces (minus culled ones) of that cube are all that renders for that entire block.

commented

Yeah, seems like its the same issue I thought I fixed with 10af44c For some reason MC is not calling the C&B Model and is instead just rendering the missing model.

commented

So true. :D