vectorwing / FarmersDelight

[Forge] A lightweight farming expansion for Minecraft.
MIT License
286 stars 171 forks source link

Cutting board sometimes disappears (with item) when Create contraption placed back down #773

Closed copygirl closed 1 month ago

copygirl commented 1 year ago

Minecraft version

1.19.2

Farmer's Delight version

1.19-1.2.1

Forge version

43.2.10

Description

When using a cutting board as part of a Create contraption, for example to create a portable kitchen, it seems that sometimes the cutting board simply disappears, apparently when the contraption is placed down into the world as blocks again. As of now I'm not sure how to reproduce this.

Here's a video of it happening to my contraption:

https://github.com/vectorwing/FarmersDelight/assets/272586/39e8ac6d-19f2-4059-a15f-07f7ab5e4348

No idea why it works with the first one and doesn't with the second. At first the issue was also present with the first contraption. I didn't change anything with it, though.

Steps to reproduce

No response

Mod list

3dskinlayers-forge-1.5.2-mc1.19.1
advancednetherite-1.14.7-1.19.2
AdvancementPlaques-1.19.2-1.4.7
alexsdelight-1.4.1
alexsmobs-1.21.1
another_furniture-forge-2.1.2-1.19.2
appleskin-forge-mc1.19-2.4.2
Aquaculture-1.19.2-2.4.8
architectury-6.5.85-forge
automobility-0.4.2+1.19.2-forge
AutoRegLib-1.8.2-55
awesomedungeon-forge-1.19.2-3.2.0
awesomedungeonend-forge-1.19.2-3.1.1
awesomedungeonnether-forge-1.19.2-3.1.1
awesomedungeonocean-forge-1.19.2-3.3.0
balm-forge-1.19.2-4.5.7
bettercombat-forge-1.7.1+1.19
betterfpsdist-1.19.2-1.8
BetterThirdPerson-Forge-1.19-1.9.0
bettervillage-forge-1.19.2-3.1.0
blueprint-1.19.2-6.1.2
Bookshelf-Forge-1.19.2-16.3.20
BotanyPots-Forge-1.19.2-9.0.33
BotanyTrees-Forge-1.19.2-5.0.8
bygonenether-1.3.0-1.19.2
camera-1.19.2-1.0.1
carryon-forge-1.19.2-2.0.5.16
cfm-7.0.0-pre35-1.19.2
chat_heads-0.10.16-forge-1.19.2
chipped-forge-1.19.2-2.1.5
chisels-and-bits-forge-1.3.135
citadel-2.1.4-1.19
cloth-config-8.2.88-forge
Clumps-forge-1.19.2-9.0.0+14
CNB-1.19-1.5.4
comforts-forge-6.0.5+1.19.2
connectedglass-1.1.6-forge-mc1.19
connectivity-1.19.2-4.2
Controlling-forge-1.19.2-10.0+7
cookingforblockheads-forge-1.19.2-13.3.2
CorgiLib-forge-1.19.2-1.0.0.34
corn_delight-1.0.1-1.19.2
corpse-1.19.2-1.0.0
CosmeticArmorReworked-1.19.2-v1a
craftingtweaks-forge-1.19.2-15.1.7
CraftTweaker-forge-1.19.2-10.1.46
create-1.19.2-0.5.1.b
create-stuff-additions1.19.2_v2.0.3b
createaddition-1.19.2-20230623a
creeperoverhaul-2.0.9-forge
crittersandcompanions-1.19.2-2.0.1
Croptopia-1.19.2-FORGE-2.2.2
CroptopiaAdditions-1.19.2-FORGE-2.0.FINAL
CTM-1.19.2-1.1.6+8
curios-forge-1.19.2-5.1.4.1
Cyclic-1.19.2-1.8.0
Decorative Blocks-forge-1.19.2-3.0.0
decorative_lgbt_wall_flags_101
deeperdarker-forge-1.1.6-forge
Delightful-1.19.2-3.3
DungeonsArise-1.19.2-2.1.54-release
dynamiclightsreforged-1.19.2_v1.4.0
easy_piglins-1.19.2-1.0.0
easy_villagers-1.19.2-1.0.8
EasyAnvils-v4.0.11-1.19.2-Forge
EasyMagic-v4.3.3-1.19.2-Forge
ecologics-forge-1.19.2-2.1.11
elevatorid-1.19.2-1.8.9
endrem_forge-5.2.1-R-1.19.X
endsdelight-1.19.2-1.2
enlightend-1.19.2-v5.0.0.1
fairylights-6.0.0-1.19.2
FarmersDelight-1.19-1.2.1
fastfooddelight-1.19-1.2.3
FastLeafDecay-30
Fastload-Reforged-8.2.1+1.19.2
ferritecore-5.0.3-forge
friendsandfoes-forge-mc1.19.2-1.8.3
ftb-chunks-forge-1902.3.22-build.271
ftb-essentials-1902.1.10-build.47
ftb-library-forge-1902.3.19-build.214
ftb-ranks-forge-1902.1.15-build.77
ftb-teams-forge-1902.2.14-build.123
ftb-ultimine-forge-1902.4.1-build.90
geckolib-forge-1.19-3.1.40
handcrafted-forge-1.19.2-2.0.6
harvestwithease-1.19.2-6.0.1.3-final-forge
Iceberg-1.19.2-forge-1.1.4
ironchests-3.1.1-forge
ironfurnaces-1.19.2-3.6.5
ItalianDelight-1.19.2 1.5-MAR_FIX
Jade-1.19.1-forge-8.8.1
jei-1.19.2-forge-11.6.0.1016
JustEnoughProfessions-forge-1.19.2-2.0.2
JustEnoughResources-1.19.2-1.2.2.200
justzoom_forge_1.0.1-1_MC_1.19
konkrete_forge_1.6.1_MC_1.19-1.19.2
kotlinforforge-3.12.0-all
LegendaryTooltips-1.19.2-forge-1.4.0
libraryferret-forge-1.19.2-4.0.0
lootr-1.19-0.4.24.62
macawsbridgesbyg-1.19.2-1.3
macawsroofsbyg-1.19.2-1.3
mcw-bridges-2.1.0-mc1.19.2forge
mcw-doors-1.0.9forge-mc1.19.2
mcw-fences-1.0.7-mc1.19.2forge
mcw-furniture-3.1.0-mc1.19.2forge
mcw-lights-1.0.5-mc1.19.2forge
mcw-paintings-1.0.4-mc1.19.2
mcw-paths-1.0.3forge-mc1.19.2
mcw-roofs-2.2.4-mc1.19.2forge
mcw-trapdoors-1.1.1-mc1.19.2forge
mcw-windows-2.1.1-mc1.19.2forge
mcwfencesbyg-1.19.2-1.0
mcwfurnituresbyg-1.19.2-1.1
MobCatcher-Forge-1.19.2-1.2.12
moonlight-1.19.2-2.2.40-forge
MouseTweaks-forge-mc1.19-2.23
mysterious_mountain_lib-1.2.3-1.19.2
naturalist-forge-3.0.3a-1.19.2
NaturesCompass-1.19.2-1.10.0-forge
neapolitan-1.19.2-4.0.2
nether-s-exoticism-1.19.2-1.2.4
NethersDelight-1.19-3.0
nightlights_1.19.2_1.1
notenoughanimations-forge-1.6.2-mc1.19.2
oculus-mc1.19.2-1.6.4
Oh_The_Biomes_You'll_Go-forge-1.19.2-2.0.1.4
Paintings-forge-1.19.2-10.2.4.0
paladin-furniture-mod-1.1.1-forge-mc1.19
Patchouli-1.19.2-77
personality-1.19-3.0.1
player-animation-lib-forge-1.0.2
plushies-1.2-1.19.2
polymorph-forge-0.46.1+1.19.2
Prism-1.19.1-1.0.2
PuzzlesLib-v4.4.3-1.19.2-Forge
Quark-3.4-405
resourcefulconfig-forge-1.19.2-1.0.20
resourcefullib-forge-1.19.2-1.1.24
rubidium_extras-1.19.2_v1.3.2
rubidium-0.6.2b
rubidium-extra-0.4.17+mc1.19.2-build.71
Shipping Forge 1.19 v.1.2
simplehats-forge-1.19.2-0.1.6
simpleshops-1.2.2
SimpleStorageNetwork-1.19.2-1.7.0
skinned_lanterns-1.19.2-1.3.4
SkinnedCarts-1.19-1.1.2
smallships-forge-1.19.2-2.0.0-a2.3
smoothchunk-1.19.1-2.0
sophisticatedbackpacks-1.19.2-3.18.51.860
sophisticatedcore-1.19.2-0.5.73.333
soundphysics-forge-1.19.2-1.0.18
Steam_Rails-1.3.5+forge-mc1.19.2
supermartijn642corelib-1.1.10-forge-mc1.19.2
supplementaries-1.19.2-2.3.20
swingthroughgrass-1.19.2-1.10.0
TerraBlender-forge-1.19.2-2.0.1.136
TextruesRubidiumOptions-1.0.5-mc1.19.2
TipTheScales-forge-1.19.2-6.0.10
ToolStats-Forge-1.19.2-12.1.4
torchmaster-19.2.90
trade-cycling-forge-1.19.2-1.0.5
transparent-5.1.2+1.19-forge
trashslot-forge-1.19-12.0.2
TreeChop-1.19.2-forge-0.17.8a
UnusualEnd1.19.2_V1.4.3
voicechat-forge-1.19.2-2.4.12
worldedit-mod-7.2.12
Xaeros_Minimap_23.5.0_Forge_1.19.1
XaerosWorldMap_1.30.6_Forge_1.19.1
YungsApi-1.19.2-Forge-3.8.9
YungsBetterNetherFortresses-1.19.2-Forge-1.0.5
YungsBetterStrongholds-1.19.2-Forge-3.2.0

Logs

(No errors occurred in the logs.)

Minimal instance

Performance and shader mods

copygirl commented 1 year ago

Minimal instance reproduction case:

https://github.com/vectorwing/FarmersDelight/assets/272586/62d8655e-bd55-45b9-9d67-85c9f43eda8e

Forge: 43.2.18 Farmer's Delight: 1.19.2-1.2.2 Create: 0.5.1.c (No other mods.)

vectorwing commented 1 year ago

I'm not sure why this could be happening, honestly, as it seems to derive from Create's contraption formation method.

My only guess is that perhaps the Cutting Board's hitbox is becoming fully covered by the chassis when it "nudges", occasionally overriding it, or placing it in the wrong coordinate. But if it was that, this issue would also affect Pressure Plates, which I'm unsure is the case.

I sent this issue to the Create team; maybe they're familiar with it to some extent.

copygirl commented 1 year ago

I looked into it a bit more and there's isBrittleFallback that checks the create:brittle block tag. I tried adding the cutting board to this tag, but now all of them are just popping off when the contraption is initially created. (On the bright side, they actually break and drop - not disappear.) edit: Nevermind I think the glue from a linear chassis wasn't grabbing the cutting board correctly. It appears to work now.

It's possible to add brittle checks via code, too: registerBrittleCheck There's some other functions like one to check if a block is attached to another, but I'd think that's for moving these with the contraption if the block they're attached to is moving without explicitly needing to be glued.

vectorwing commented 1 year ago

Decided to test this on my own. Yeah, a few FD blocks interact weirdly with Create contraptions, not just the Cutting Board:

Adding create:brittle to such blocks also resulted in them popping off, and I couldn't get it to work. Did you do anything specific to get a Linear Chassis to work?

I looked into it a bit more and there's isBrittleFallback

Looking at the method... it seems like it makes a series of positional and brittle checks to common vanilla block classes, which neither the Cutting Board nor the Tatami Mats are included in; which means they just default to false. It sounds like I'd have to implement manual checks for such blocks, and I'm not sure how to do that without hard-depending on Create.

vectorwing commented 1 year ago

I guess, for the time being, that having those items pop off is much better than them being deleted, so I'll add the create:brittle tag to the relevant ones.

copygirl commented 1 year ago

Did you do anything specific to get a Linear Chassis to work?

I gave up using the Linear Chassis for testing. This is my current setup, glued together:

image

With the tag changes, this seems to make the mats stay. I had no problem with the ropes in my testing but them being #create:brittle probably makes sense – I just didn't have a test case where they broke off before.

The signs having their text disappear is odd, they are already part of #create:safe_nbt (presumably due to being part of #minecraft:signs), which should allow sign text to be copied when part of a schematic even in survival. So there might be something else at work. Other than texture, are they otherwise functionally identical to vanilla signs?

vectorwing commented 1 month ago

I have forwarded a segment of this issue to Create's board: https://github.com/Creators-of-Create/Create/issues/6764

Given this bug also affects the vanilla Hanging Canvas Sign, it seems like a Create bug. For the time being, I forgot that I had defined many of thos blocks as create:brittle, so they simply cannot be attached to contraptions.

I'll close this issue and reopen in case the problem is on our end. We can follow the one above for updates. 👍