HexAutomata


Provides items with ability listening to various game events and triggering custom spells; along with extending more possibilities about the ancient Brainsweep spell.

Features
I found a way - using the intelligence from a settled villager mind, with some special "concepts" from wild creatures - to create a kind of special spell-casters: Reactive Focus.
Reactive Focus: focus bound with certain game events happening on player
- Events to listen to:
- enemy targeting player (without tag
#hexautomata:ignore_targeting)
- player taking damage (both source and attacker without tag
#hexautomata:ignore_hurt)
- player shooting projectile
- projectile hit something
- melee attack something
- killing something
- being teleported
- Crafted by brainsweep recipes
- all from
Akashic Record as source block
- Places to take effect:
- Inventory (default: false)
- Main/Off hand (default: true; takes no effect if
Inventory set to true)
- Ender Chest (default: false)
- Curios/Trinkets slots (default: true)
- config entries controlling whether sources above are enabled
Reactive Focus Nexus: an item holding multiple Reactive Focuses
- all inner focuses take effect as if they're outside
- crafted with a multiblock structure, ending with another brainsweep (accepting targets with tag
#hexautomata:multi_threaded)

- Special patterns taking effect exclusively inside triggered events
I am mind, and mind is media… Body is the vessel, heavy and fragile… I shall expose my mind, taking me out of the vessel, I shall see more, I …
- Another advancement-based progression and functions extending Brainsweep great spell :3
- a new way of transportation
Interop
KubeJS
HAPatches and PatchAction
Allowing packmakers to patch actions the same way as OpBrainsweep.
Also exposes two special errors: USE_ORIGINAL and STOP_ALL for better control over custom brainsweeps.
BrainsweepCallback
Exposes BrainsweepCallback to server/startup scripts binding, allowing custom brainsweep callbacks to be registered.
Registering a callback:
BrainsweepCallback.create(priority,
entityId, iotaTypeId, // nullable type ids
(entity, iota, env) => {
// return SpellAction.Result or null
return BrainsweepCallback.buildResult(env => {
// do something
// or stop here
throw PatchAction.STOP_ALL
}, 0)
}
);
entityId and iotaTypeId accept ResourceLocation strings. Iota type IDs under the minecraft namespace are automatically remapped to hexcasting.
- Use
BrainsweepCallback.forceSet(key, callback) to override an existing callback registration.
HexParse
Registers Reactive Focus as an item I/O handler via HexParseAPI.CreateItemIOMethod, enabling HexParse to read and write iotas directly from/to Reactive Focus items.