Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
5cc1c6c
Fixed & extended MishapInternalException (#1268)
YukkuriC Aug 16, 2026
a3c2590
chore(l10n): add French translation
Spectramaris Aug 16, 2026
6b58d36
chore(l10n): update Spanish translation
Ch1216 Aug 16, 2026
cbf3cc1
chore(l10n): update Russian translation
Aug 16, 2026
83c8355
chore(l10n): update French translation
arsvenutia Aug 16, 2026
f7d66f2
chore(l10n): update translation files
hexxy-weblate Aug 16, 2026
248ad80
chore(l10n): update Russian translation
DarkThunderer Aug 16, 2026
884d98b
chore(l10n): update Russian translation
kalatschik Aug 16, 2026
341c905
chore(l10n): update Russian translation
DarkThunderer Aug 16, 2026
e0155e5
chore(l10n): update Spanish translation
Ch1216 Aug 16, 2026
a28f938
chore(l10n): update translation files
hexxy-weblate Aug 16, 2026
3015519
chore(l10n): update Norwegian Bokmål translation
ShyRasan123 Aug 16, 2026
3ed2de9
chore(l10n): add Polish translation
Welesen Aug 16, 2026
a2b292c
chore(l10n): update Russian translation
Aug 16, 2026
1173ddc
chore(l10n): update Russian translation
DarkThunderer Aug 16, 2026
aa91e0f
chore(l10n): update French translation
Spectramaris Aug 16, 2026
355990f
chore(l10n): update Polish translation
Aug 16, 2026
006953b
chore(l10n): update Polish translation
Welesen Aug 16, 2026
34566d7
chore(l10n): add English (Pirate) translation
object-Object Aug 16, 2026
ce5bbd4
chore(l10n): update Russian translation
Aug 16, 2026
721f299
chore(l10n): update French translation
Sixela963 Aug 16, 2026
6e243c3
chore(l10n): update French translation
Spectramaris Aug 16, 2026
6beda4b
chore(l10n): update Spanish translation
Ch1216 Aug 16, 2026
ef69ca6
chore(l10n): update Spanish translation
object-Object Aug 16, 2026
75cd7a4
chore(l10n): update Polish translation
Aug 16, 2026
84629ad
chore(l10n): update translation files
hexxy-weblate Aug 16, 2026
bc97494
chore(l10n): update translations (#1265)
object-Object Aug 16, 2026
35e6028
chore(l10n): update Russian translation
hexxy-weblate Aug 19, 2026
9105e23
chore(l10n): update Chinese (Simplified Han script) translation
hexxy-weblate Aug 19, 2026
3116f51
chore(l10n): update translation files
hexxy-weblate Aug 19, 2026
c621804
chore(l10n): update German translation
hexxy-weblate Aug 19, 2026
895ec22
chore(l10n): update Japanese translation
hexxy-weblate Aug 19, 2026
bbeb9c8
chore(l10n): update English (Pirate) translation
hexxy-weblate Aug 19, 2026
97c724a
chore(l10n): update French translation
hexxy-weblate Aug 19, 2026
2af1bea
chore(l10n): update Polish translation
hexxy-weblate Aug 19, 2026
60086cc
chore(l10n): update translations (#1269)
object-Object Aug 19, 2026
e08cdb8
chore(l10n): update Chinese (Simplified Han script) translation
hexxy-weblate Aug 21, 2026
1e79b8b
chore(l10n): update Spanish translation
hexxy-weblate Aug 21, 2026
c97d0b4
chore(l10n): update French translation
hexxy-weblate Aug 21, 2026
8384eb3
chore(l10n): update Polish translation
hexxy-weblate Aug 21, 2026
ef7afae
chore(l10n): update Swedish translation
hexxy-weblate Aug 21, 2026
1ff288b
chore(l10n): update Finnish translation
hexxy-weblate Aug 21, 2026
2f8c0b3
chore(l10n): update translations (#1272)
object-Object Aug 22, 2026
cff36a8
fix: don't fail on lookup of non per-world pattern (#1277)
Olfi01 Aug 26, 2026
26b1dc1
chore(l10n): update Chinese (Simplified Han script) translation
hexxy-weblate Aug 26, 2026
4c188d5
chore(l10n): update French translation
hexxy-weblate Aug 26, 2026
5d83d8d
chore(l10n): update Polish translation
hexxy-weblate Aug 26, 2026
ca79e2c
chore(l10n): update translations (#1274)
Robotgiggle Aug 26, 2026
b8fadc8
added zero vector mention as per issue #1258 (#1273)
DetermiedMech1 Aug 26, 2026
a5717cb
Add ko_kr (#1187)
Bananamilk452 Aug 26, 2026
a5a32d2
Mention weblate translation in changelog (#1279)
Robotgiggle Aug 26, 2026
3fdbe53
Bump headlessmc versions (#1278)
Robotgiggle Aug 26, 2026
16d7744
Bump mod version to 0.11.4, fix Fabric gaslighting (#1281)
Robotgiggle Aug 26, 2026
6b64165
[Release] 0.11.4 release!
object-Object Aug 26, 2026
4b2f4e7
Merge branch 'main' into main-to-next
s5bug Aug 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ body:
- type: input
attributes:
label: Hex Casting version
placeholder: eg. 0.11.3
placeholder: eg. 0.11.4
validations:
required: true

Expand Down
93 changes: 93 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,99 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
- Changed resource registration to use the IXplatRegister system ([#1212](https://github.com/FallingColors/HexMod/pull/1212)) @Olfi01
- Operations and actions now accept the old stack and produce the new stack through a TreeList ([#1038](https://github.com/FallingColors/HexMod/pull/1038)) @s5bug

## `0.11.4` - 2026-08-26

### Added

- Added the `cannot_modify_cost` tag for patterns that should ignore the `media_consumption` attribute when calculating cost ([#987](https://github.com/FallingColors/HexMod/pull/987)) @Robotgiggle
- Added config options to scale pattern costs per action and globally ([#1041](https://github.com/FallingColors/HexMod/pull/1041)) @Robotgiggle
- Added a config toggle for the pattern wobble animation on active slates to improve performance ([#1017](https://github.com/FallingColors/HexMod/pull/1017)) @aloaloolaola
- Added keybinds to flip forward and backwards in a spellbook ([#1028](https://github.com/FallingColors/HexMod/pull/1028)) @pythonmcpi
- Added a config toggle to disable scrolling through spellbooks outside of the staff grid ([#1028](https://github.com/FallingColors/HexMod/pull/1028)) @pythonmcpi
- Added Harmony Reflection, which pushes the value of the golden ratio ([#900](https://github.com/FallingColors/HexMod/pull/900)) @miyucomics
- Added a config toggle (default false) for the effect that makes iota-holding items display their entire NBT data when Advanced Tooltips is enabled ([#1021](https://github.com/FallingColors/HexMod/pull/1021)) @Robotgiggle
- Added a pattern display overlay for pattern-holding items (ie scrolls or slates) while holding shift in the inventory ([#879](https://github.com/FallingColors/HexMod/pull/879)) @SamsTheNerd
- Added connected textures for Akashic Ligatures when using Continuity or Optifine ([#885](https://github.com/FallingColors/HexMod/pull/885)) @kineticneticat
- Added type comparison patterns ([#1114](https://github.com/FallingColors/HexMod/pull/1114)) @IridescentVoid
- Similarity Distillation and Dissimilarity Distillation for iota types
- Surveyor's Distillation and Inspector's Distillation for blocks
- Taxonomer's Distillation for entities
- Sorter's Distillation and Stacking Distillation for items
- Added Contemplation for escaping without the exponential growth of Consideration ([#1102](https://github.com/FallingColors/HexMod/pull/1102)) @IridescentVoid
- Added Interjection, Meditation, and Recollection for advanced pattern-list creation ([#1103](https://github.com/FallingColors/HexMod/pull/1103)) @Robotgiggle
- Added Media Reflection for checking media available to the cast ([#1235](https://github.com/FallingColors/HexMod/pull/1235)) @IridescentVoid
- Added ko_kr translations ([#1187](https://github.com/FallingColors/HexMod/pull/1187)) @Bananamilk452
- Added a variety of new translations via Weblate ([#1251](https://github.com/FallingColors/HexMod/pull/1251), [#1261](https://github.com/FallingColors/HexMod/pull/1261), [#1265](https://github.com/FallingColors/HexMod/pull/1265), [#1269](https://github.com/FallingColors/HexMod/pull/1269), [#1272](https://github.com/FallingColors/HexMod/pull/1272), [#1274](https://github.com/FallingColors/HexMod/pull/1274))
- de_de by @Olfi01 and @miyucomics
- en_pt by @frostedlyre and @penguinencounter
- es_es by @Chichi and @ElNico56
- fi_fi by @hauveli
- fr_fr by @Spectramaris, @Sixela963, @arsvenutia, @drawnbadden
- ja_jp by @ViktoriaNtro
- no_no by @ShyRasan123
- pl_pl by @ManicTv and @Welesen
- sv_se by @hauveli

### Changed

- Changed the `media_consumption` attribute to only apply to player-based casting ([#987](https://github.com/FallingColors/HexMod/pull/987)) @Robotgiggle
- Changed Wayfarer's Flight and Anchorite's Flight to both cost 2 dust per unit, and enforced a minimum cost for Anchorite's Flight ([#1040](https://github.com/FallingColors/HexMod/pull/1040)) @Robotgiggle
- Changed the Hasty Retrospection mishap to Absent Introspection as it's now used for anything that only works while parenthesized ([#1047](https://github.com/FallingColors/HexMod/pull/1047)) @Robotgiggle
- Updated and reorganized various entries in the guidebook to improve clarity ([#1199](https://github.com/FallingColors/HexMod/pull/1199)) @Robotgiggle
- Added a new entry defining what a Hex actually is and how it can be represented on the stack
- Changed "A Primer on Vectors" to provide its own information rather than linking to Psi's guide
- Reordered "Escaping Patterns" to account for the newly added Contemplation pattern
- Removed "Influences" and moved relevant info into "Hex Casting 101"
- Updated the Flay Mind recipe display in EMI and JEI to cycle through all valid entities if the input is an entity tag ([#1023](https://github.com/FallingColors/HexMod/pull/1023)) @YukkuriC
- All custom recipe displays now work with both EMI and JEI on all platforms, rather than only EMI on Fabric and only JEI on Forge ([#1206](https://github.com/FallingColors/HexMod/pull/1206)) @Robotgiggle
- The pattern limit is now checked even when executing non-pattern iotas like jumps ([#1035](https://github.com/FallingColors/HexMod/pull/1035)) @pythonmcpi
- Re-implemented the ability to extract stored media from items in trinket/curio slots ([#996](https://github.com/FallingColors/HexMod/pull/996)) @YukkuriC
- Patterns involving entity look direction now compensate for the vanilla bug that causes projectiles and phantoms to report the wrong direction ([#1025](https://github.com/FallingColors/HexMod/pull/1025)) @Robotgiggle
- Edified Panels are now crafted with 9 planks rather than 8 to avoid conflicting with the vanilla chest recipe ([#1080](https://github.com/FallingColors/HexMod/pull/1080)) @Robotgiggle
- Drawing Evanition with nothing left to do will now undo the opening Introspection ([#1047](https://github.com/FallingColors/HexMod/pull/1047)) @Robotgiggle
- Book pages for patterns without input/output iotas will no longer display the type signature line at all ([#1118](https://github.com/FallingColors/HexMod/pull/1118)) @IridescentVoid
- Consideration, Introspection, Retrospection, and Evanition now count towards the per-hex pattern limit ([#1172](https://github.com/FallingColors/HexMod/pull/1172)) @Robotgiggle
- Updated Inline dependency from 1.0.1 to 1.2.2 ([#1043](https://github.com/FallingColors/HexMod/pull/1043)) @Robotgiggle
- Updated Fabric Language Kotlin dependency from 1.9.4 to 1.13.7 ([#1043](https://github.com/FallingColors/HexMod/pull/1043)) @Robotgiggle
- Updated Kotlin for Forge dependency from 4.3.0 to 4.12.0 ([#1043](https://github.com/FallingColors/HexMod/pull/1043)) @Robotgiggle
- Updated zh_cn translations ([#995](https://github.com/FallingColors/HexMod/pull/995), [#1037](https://github.com/FallingColors/HexMod/pull/1037), [#1045](https://github.com/FallingColors/HexMod/pull/1045)) @ChuijkYahus
- Updated various translations via Weblate ([#1251](https://github.com/FallingColors/HexMod/pull/1251), [#1261](https://github.com/FallingColors/HexMod/pull/1261), [#1265](https://github.com/FallingColors/HexMod/pull/1265), [#1269](https://github.com/FallingColors/HexMod/pull/1269), [#1272](https://github.com/FallingColors/HexMod/pull/1272), [#1274](https://github.com/FallingColors/HexMod/pull/1274))
- ru_ru by @DarkThunderer and @KOCTEP
- zh_cn by @ChuijkYahus

### Fixed

- Fixed a crash loop when trying to generate a creative-mode ancient scroll for a Great Spell whose per-world pattern hasn't been calculated yet ([#992](https://github.com/FallingColors/HexMod/pull/992)) @Robotgiggle
- Fixed a crash when trying to generate a loot scroll for a Great Spell whose per-world pattern hasn't been calculated yet ([#1079](https://github.com/FallingColors/HexMod/pull/1079)) @Robotgiggle
- Fixed Create Water and Create Lava causing the "position is forbidden to you" mishap when the position is actually just out of ambit ([#1029](https://github.com/FallingColors/HexMod/pull/1029)) @pythonmcpi
- Fixed a broken translation key on the error message from a Shepherd Directrix ([#1013](https://github.com/FallingColors/HexMod/pull/1013)) @Teal-Wolf-25-v2
- Fixed the log spam caused by double pattern registration when joining a world ([#999](https://github.com/FallingColors/HexMod/pull/999)) @Real-Luxof
- Fixed various incorrect documentation in the Hex Book ([#1010](https://github.com/FallingColors/HexMod/pull/1010)) @Robotgiggle
- Fixed a broken translation key when trying to use Place Block with no placeable items in your hotbar ([#1010](https://github.com/FallingColors/HexMod/pull/1010)) @Robotgiggle
- Fixed a potential chunkban when leaving a looping spell circle running for long enough ([#908](https://github.com/FallingColors/HexMod/pull/908)) @Stick404
- Fixed a potential issue on MacOS when calculating soulglimmer color ([#984](https://github.com/FallingColors/HexMod/pull/984)) @vgskye
- Fixed the book page for the Inert Mindflay mishap incorrectly claiming it would kill unsuitable flay subjects ([#1081](https://github.com/FallingColors/HexMod/pull/1081)) @Robotgiggle
- Fixed Pace Purification returning nonzero velocity on nonmoving items ([#1119](https://github.com/FallingColors/HexMod/pull/1119)) @IridescentVoid
- Fixed Accessor's Purification returning false for scrolls in item frames ([#1115](https://github.com/FallingColors/HexMod/pull/1115)) @IridescentVoid
- Fixed Break Block being unable to break cobwebs on Fabric ([#1218](https://github.com/FallingColors/HexMod/pull/1218)) @Robotgiggle
- Fixed the zero vector not being listed as falsy on the Augur's Purification page ([#1273](https://github.com/FallingColors/HexMod/pull/1273)) @DetermiedMech1
- Fixed the command to list all per-world patterns not working ([#1277](https://github.com/FallingColors/HexMod/pull/1277)) @Olfi01
- Fixed a mixin issue that made gaslighting not work properly on Fabric ([#1281](https://github.com/FallingColors/HexMod/pull/1281)) @Robotgiggle

### Internal

- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20, by Robotgiggle in [#1043](https://github.com/FallingColors/HexMod/pull/1043).
- Updated Inline dependency from 1.0.1 to 1.2.2, by Robotgiggle in [#1043](https://github.com/FallingColors/HexMod/pull/1043).
- The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20 ([#1043](https://github.com/FallingColors/HexMod/pull/1043)) @Robotgiggle
- Changed the internal implementation of Thoth's Gambit to use a `TreeList` for more efficiency ([#1031](https://github.com/FallingColors/HexMod/pull/1031)) @s5bug
- Deprecated the version of `matchPattern` that takes a boolean argument since it always raises an exception ([#1002](https://github.com/FallingColors/HexMod/pull/1002)) @beholderface
- `Iota` subclasses can now specify whether the iota should be displayed with or without commas when in a list ([#988](https://github.com/FallingColors/HexMod/pull/988)) @TheRobbie73
- Made the `getUsableStacks` and `getPrimaryStacks` methods in `CastingEnvironment` and its subclasses public ([#907](https://github.com/FallingColors/HexMod/pull/907)) @miyucomics
- Improved handling for duplicate pattern signatures in hexdoc ([#1007](https://github.com/FallingColors/HexMod/pull/1007)) @object-Object
- `CircleExecutionState` now stores the shape of the spell circle using two corners rather than an entire list of positions ([#908](https://github.com/FallingColors/HexMod/pull/908)) @Stick404
- Added methods in `Action` and `Iota` to define behavior when inside parentheses, and de-hardcoded the iota-escaping patterns ([#1047](https://github.com/FallingColors/HexMod/pull/1047)) @Robotgiggle
- Added visitor methods to `Iota` to enable walking iotas in an extensible way ([#1191](https://github.com/FallingColors/HexMod/pull/1191)) @poolcritter

## `0.11.3` - 2025-11-22

### Added
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@ import at.petrak.hexcasting.api.casting.eval.CastingEnvironment
import at.petrak.hexcasting.api.casting.iota.Iota
import at.petrak.hexcasting.api.pigment.FrozenPigment
import at.petrak.hexcasting.api.utils.TreeList
import net.minecraft.network.chat.ClickEvent
import net.minecraft.network.chat.Component
import net.minecraft.network.chat.HoverEvent
import net.minecraft.network.chat.Style
import net.minecraft.world.item.DyeColor
import java.io.PrintWriter
import java.io.StringWriter

class MishapInternalException(val exception: Exception) : Mishap() {
override fun accentColor(env: CastingEnvironment, errorCtx: Context): FrozenPigment =
Expand All @@ -15,6 +21,21 @@ class MishapInternalException(val exception: Exception) : Mishap() {
return stack
}

override fun errorMessage(env: CastingEnvironment, errorCtx: Context) =
error("unknown", exception)
override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context): Component {
var message = Component.literal("$exception")

// dump stack trace
val sw = StringWriter()
val pw = PrintWriter(sw)
exception.printStackTrace(pw)
val trace = sw.toString()

message = message.withStyle(
Style.EMPTY
.withClickEvent(ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, trace))
.withHoverEvent(HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal(trace)))
)

return error("unknown", message)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ private static int list(CommandSourceStack source) {
for (var key : listing) {
var pat = PatternRegistryManifest.getCanonicalStrokesPerWorld(key, ow);

if (pat == null) continue; // pattern doesn't appear to be a per-world pattern

source.sendSuccess(() -> Component.literal(key.location().toString())
.append(": ")
.append(new PatternIota(pat).display()), false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,7 @@
},
spells: {
desc: "Zeichen, die die Welt magisch beeinflussen.",
"": "Zauber",
},
patterns: {
desc: "Eine Liste aller Zeichen, die ich entdeckt habe, sowie ihrer Wirkungen.",
Expand Down Expand Up @@ -343,6 +344,8 @@
},
"tag.hexcasting": {
staves: "Stäbe",
edified_logs: "Beseelter Stamm",
edified_planks: "Beseelte Holzbretter",
},
"tag.item.hexcasting": {
directrices: "Umlenker",
Expand Down
Loading
Loading