Skip to content

HexCasting port to 1.21 (NeoForge part) #895

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 72 commits into
base: devel/port-1.21
Choose a base branch
from

Conversation

slava110
Copy link

@slava110 slava110 commented Jun 18, 2025

Fabric is commented out.
This PR is based on my NeoForge repo of HexCasting. Some NeoForge leaked to XPlat. This should be easily fixable though.

Requirements

This port requires version of Paucal with gamma-delta/PAUCAL#12 and gamma-delta/PAUCAL#13. You can build it yourself, publish to maven (local or remote).

Notable changes

  • Added Codecs to everything c:
  • Tag representation of iotas has been removed. They are deserialized using Codecs, accessed in ItemStacks through data components, in block entity via field.
  • EntityIota is reference-based now. Instead of directly referencing Entity object, its stores entity UUID and cached actual entity. This mechanism allows safely unloading and loading entities again without losing reference to them. Besides that it's just simply a necessity with Codecs.
  • All List<Iota>.getEntity methods now require ServerLevel as argument due to the change above.
  • Garbage and Null iotas are actually singletons now
  • Iotas now store values inside subtypes. Hashcode is marked as abstract in superclass so users know that it should be overriden.

Requires attention

  • Rendering-related anything. I'm not an expert in rendering and VCDrawHelper might have been ported poorly
  • Datacomponent-related anything.

ChuijkYahus and others added 30 commits November 26, 2024 14:45
The predicate now tests if objects in the inventory are the same item same tags instead of same object ref.
哨卫出现了两次,删除其中没有链接的一个
@User-green
Copy link

User-green commented Jun 26, 2025

What’s current state on this?
Is it playable (as in — does it boot and work at least a bit)?
I am okay with bouth playing with partualy broken mod and regulary reporting bugs.

@slava110
Copy link
Author

slava110 commented Jun 27, 2025

@User-green it works on NeoForge only and not this repository. Annoyingly broken architectury plugin doesn't allow me to port the mod properly to XPlat, so I've delegated porting to XPlat to other devs when they will be available. For now you can play with:
https://github.com/slava110/PAUCAL/releases/
https://github.com/slava110/NeoHexCasting/releases/
Don't forget Inline, Caelus, all the usual stuff. And it's in alpha state, expect bugs and problems. Especially with stuff related to items or EntityIota or more.

@User-green
Copy link

Don't forget Inline, Caelus, all the usual stuff. And it's in alpha state, expect bugs and problems. Especially with stuff related to items or EntityIota or more.

I am okay with crashes. Any bugs found will be reproduced and reported. Thank you

@Sirius902
Copy link

Seems like Scribe's Reflection no longer works on Ancient Scrolls. I gave myself one with /hexcasting perWorldPatterns give hexcasting:lightning (which interestingly also did seem to crash the game with Internal Exception: io.netty.handler.codec.EncoderException: Failed to encode packet 'clientbound/minecraft:system_chat').
image

@slava110
Copy link
Author

@Sirius902, thanks for the report, fixed!
If possible, please direct other issues right to https://github.com/slava110/NeoHexCasting/issues so this PR draft is not filled with issue reports. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 📋 Backlog
Development

Successfully merging this pull request may close these issues.