gnembon / carpet-extra

Extra Features for Carpet Mod
GNU Lesser General Public License v3.0
291 stars 62 forks source link

Port to 1.20.6 #315

Closed voidpointer0x00 closed 2 months ago

voidpointer0x00 commented 3 months ago

At this point I just made it possible to build the mod, haven't tested anything though. I will do some testing, but the only important feature for me is the accurate block placement thingy — so I likely will not test much further than that.

I am most uncertain of the changes made to src/main/java/carpetextra/utils/PlaceBlockDispenserBehavior.java, see the diff.

Brief overview of the changes:

Before merge someone should test:

Commits probably should be squashed when merged :grin:

If everything is ok

Builds

https://github.com/voidpointer0x00/carpet-extra/releases

voidpointer0x00 commented 3 months ago

Fixed more mixins, made it actually runnable :grin:

Built mod can be found here https://github.com/voidpointer0x00/carpet-extra/releases

voidpointer0x00 commented 3 months ago

Published release with chest and carpet dispenser fixes 1.20.6-pre2

gamma-02 commented 3 months ago

I've tested the three things it looks like still need testing on a server and on my client, all seems well!

MeeniMc commented 3 months ago

Summary of tested things so far:

  1. ✅ blazeMeal (hand, dispensed)
  2. ✅ chickenShearing (hand, dispensed)
  3. ✅ dispensersPlacesBlocks (all blocks that had a new 'dispenserBehavior' were tested, including heads, chests with items inside (picked chests))
  4. 🙈 dispensersPlaceBlocks with Carpets ON: pink carpets place but no debug info produced (this is not a new problem, also present in 1.20.4)
  5. ✅ dispensersCarvePumpkins
  6. ✅ dispensersFeedAnimals (breed, grow)
  7. ✅ dispensersFillMinecarts (no mixin changes in this PR)
  8. ✅ dispensersMilkAnimals
  9. ✅ dispensersPotPlants (normal, flowerPotChunkLoading)
  10. ✅ dispensersStripBlocks
  11. ✅ dispensersTillSoil
  12. ✅ dispensersToggleThings
  13. ✅ dispensersUseCauldrons (see details in reviews, filling empty bottles works, bucket works, rest doesn't)
  14. ✅ flowerPutChunkLoading (by hand is broken, dispensed with dispensersPotPlants works)
  15. ✅ renewableWitherSkeletons
  16. ✅ AutocraftingDropper (tested by @voidpointer0x00)

changelog: 13 (cauldrons) fixed; 12 (dispenserstoggle) fixed; 14 (flowerchunkload) fixed, 16 (droppercrafter) tested

voidpointer0x00 commented 3 months ago

Not tested yet:

  1. AutocraftingDropper (there is a mixin changed), but I don't know how proper behavior is for this modded behavior

autoCraftingDropper looks to be working, tested the changed crafting part and filling with hopper slot by slot with comparator output.

MeeniMc commented 3 months ago

Looks like this is working and ready for review @altrisi

gamma-02 commented 3 months ago

Nice! Good job y'all!

NickIndustries commented 3 months ago

emptyShulkerBoxStackAlways is not working for me using version 1.4.141

voidpointer0x00 commented 3 months ago

emptyShulkerBoxStackAlways is not working for me using version 1.4.141

It seems if you only use emptyShulkerBoxStackAlways - it conflicts with carpet's stackableShulkerBoxes option. I would encourage you to use the original carpet's /carpet stackableShulkerBoxes option as it stack only empty shulker boxes, not sure why emptyShulkerBoxStackAlways exists :smile:

Although I found a bug with this update while testing - the option allows for non-empty shulkerboxes to stack :grin:

voidpointer0x00 commented 3 months ago

@NickIndustries this release should have the emptyShulkerBoxStackAlways implementation corrected, although it's still preffered to use just the stackableShulkerBoxes option

MeeniMc commented 3 months ago

Good catch, did you try stacking boxes that have been placed and recollected with boxes that are virgin? In prior versions they may have non-empty NBT (that is, an NBT array with 0 elements, for example, rather than empty NBT). I think Components do not have that problem.

NB: StackableAlways also stack boxes in hoppers and other automated inventories, (as opposed to the carpet rule that stacks them only on the floor as entities, or in inventory through player interactions, with a client mod like tweakeroo).

voidpointer0x00 commented 3 months ago

did you try stacking boxes that have been placed and recollected with boxes that are virgin?

Yep, that works now

StackableAlways also stack boxes in hoppers and other automated inventories

Tried that on the latest build, seemed to be working without the rule as well, though checking it right now with the old carpet & carpet extra (the first build for 1.20.6) wouldn't render the number of shulkers in other inventories, while there were still 2 of them on the server (so it seems to be just a visual glitch).

altrisi commented 2 months ago

Thanks a lot for the work on the port! I'll merge and release it after giving it a quick test, though it looks quite good from a quick look, just a few stylistic/reorders that I can fix easily enough afterwards or right before merging.

voidpointer0x00 commented 2 months ago

just a few stylistic/reorders that I can fix easily enough afterwards or right before merging

I'll update the 1.21 port :)

Yeah, the style is a mess, could not figure out what's the projects default, to be honest :smile:

altrisi commented 2 months ago

Seems like I filled that with conflicts with the last commits, sorry, I can try to resolve them/cherry pick them on top of new master if you want.

voidpointer0x00 commented 2 months ago

Seems like I filled that with conflicts with the last commits, sorry, I can try to resolve them/cherry pick them on top of new master if you want.

Reffered to that in the 1.21 pull request, I think I'll just hard reset and cherry pick it myself in a few hours (working rn)

voidpointer0x00 commented 2 months ago

@altrisi https://github.com/gnembon/carpet-extra/issues/314 is now fixed, thanks for merging! :)