Imbue your equipment with the power of Hex Casting. Hex Book is here. For Fabric on Minecraft 1.20.1.
- Craft amethyst axes, hoes, pickaxes and shovels that cast after breaking a block, pushing the location of the block to the stack. Enchantments propagate when the Break Block spell is cast using this tool.
- Wield an amethyst sword that casts on hit, pushing the targeted entity to the stack.
- Wear amethyst armour that casts on various triggers. Helmets cast on aggro, chestplate when damaged, leggings on death and boots when falling. The stack is initialised with relevant iotas.
- Fire amethyst arrows, with an embedded hex and a small media supply. Casts on hitting an entity or a block, pushing
itself and the unfortunate target (or null) to the stack.
Are these discount projectile wisps? Yes.
The chestplate damage trigger ignores damage types listed in the tag hexchanting:bypasses_armour_trigger. By default,
this includes only generic_kill (as used by /kill).
Additional config options are set in config/hexchanting.properties. A default configuration file
will be generated on launch and documentation can be found there.
The chestplate trigger resolution order can be adjusted here, so that damage is applied before or after the chestplate hex is triggered. This is the default and historical behaviour. Adjust to taste.
- Cast on mine doesn't work in creative because it bypasses the tool entirely.
- This is mostly made for personal use. Updates will be sporadic.
- If you want to know what you can do with this, go read the licence. I encourage you to tweak it, port it, borrow parts or whatever else you want to do and share the results with the world. PRs welcome.
- I am indebted to miyucomics and TechTastic, not that they know it, since their projects Hexcellular and HexWeb were valuable reference points when I was getting started.
- Also to everyone involved in making HexDoc because they made documentation easy.
- And to everyone who has offered feedback in the Hex Casting Discord.
A Nix flake is provided in this repository. This defines a stable development environment but isn't doing anything special. Any standard Java/Kotlin setup should work.
Gradle lockfiles are enabled. They lock dependencies
to specific version numbers. Lockfiles can be updated using the --write-locks flag. This may need to be paired with a
build target such as gradle build --write-locks so that all dependencies are resolved.
The org.gradlex.reproducible-builds plugin is used to set defaults for Gradle's builtin tasks that aid reproducibility. Non-reproducible builds are considered low priority bugs. However, there is no regular or automated reproducibility testing.
Release are built from tagged commits on the main branch. These tags are immutable to the extent permitted by GitHub rulesets. Release builds are signed using GitHub's attestation tooling.
Beta builds are not currently handled by the release workflow and so are unsigned.
Since v1.1.1 Hexchanting versioning is approximately semantic - changes that break existing hexes or worlds should trigger a major version bump. Minor and patch releases are made as seems appropriate.
- Shields, if I can be bothered dealing with the all the hardcoded logic involved in the vanilla shield implementation.
No Forge port, unless I start playing on Forge.Planned!- Return identifiers when breaking blocks (wait on scrying being broken out of hexical)
- Apply arrow mishaps to the target? Maybe.
- Prohibit mending?
- Cast on mine for jeweller's hammer?
- Disable or reduce particles
- ???