diff --git a/Common/src/generated/resources/data/hexcasting/damage_type/shame.json b/Common/src/generated/resources/data/hexcasting/damage_type/shame.json deleted file mode 100644 index 2a9dbc393e..0000000000 --- a/Common/src/generated/resources/data/hexcasting/damage_type/shame.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "exhaustion": 0.0, - "message_id": "hexcasting.shame", - "scaling": "when_caused_by_living_non_player" -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_armor.json b/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_armor.json index ef37abe999..4209c89aa3 100644 --- a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_armor.json +++ b/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_armor.json @@ -1,6 +1,5 @@ { "values": [ - "hexcasting:overcast", - "hexcasting:shame" + "hexcasting:overcast" ] } \ No newline at end of file diff --git a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_effects.json b/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_effects.json index ef37abe999..4209c89aa3 100644 --- a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_effects.json +++ b/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_effects.json @@ -1,6 +1,5 @@ { "values": [ - "hexcasting:overcast", - "hexcasting:shame" + "hexcasting:overcast" ] } \ No newline at end of file diff --git a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_invulnerability.json b/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_invulnerability.json deleted file mode 100644 index 8d8be7f423..0000000000 --- a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_invulnerability.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "hexcasting:shame" - ] -} \ No newline at end of file diff --git a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_shield.json b/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_shield.json index ef37abe999..4209c89aa3 100644 --- a/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_shield.json +++ b/Common/src/generated/resources/data/minecraft/tags/damage_type/bypasses_shield.json @@ -1,6 +1,5 @@ { "values": [ - "hexcasting:overcast", - "hexcasting:shame" + "hexcasting:overcast" ] } \ No newline at end of file diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapShameOnYou.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapShameOnYou.kt deleted file mode 100644 index 6f36b4580c..0000000000 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapShameOnYou.kt +++ /dev/null @@ -1,22 +0,0 @@ -package at.petrak.hexcasting.api.casting.mishaps - -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.common.lib.HexDamageTypes -import net.minecraft.world.item.DyeColor - -class MishapShameOnYou() : Mishap() { - override fun accentColor(ctx: CastingEnvironment, errorCtx: Context): FrozenPigment = - dyeColor(DyeColor.BLACK) - - override fun execute(env: CastingEnvironment, errorCtx: Context, stack: MutableList) { - val caster = env.castingEntity - if (caster != null) { - // FIXME: handle null caster case - trulyHurt(caster, caster.damageSources().source(HexDamageTypes.SHAME_ON_YOU), 69420f) - } - } - - override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context) = error("shame") -} diff --git a/Common/src/main/java/at/petrak/hexcasting/api/mod/HexTags.java b/Common/src/main/java/at/petrak/hexcasting/api/mod/HexTags.java index d8e77e3c76..238afae719 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/mod/HexTags.java +++ b/Common/src/main/java/at/petrak/hexcasting/api/mod/HexTags.java @@ -2,8 +2,6 @@ import at.petrak.hexcasting.api.casting.ActionRegistryEntry; import at.petrak.hexcasting.xplat.IXplatAbstractions; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; @@ -47,6 +45,8 @@ public static final class Blocks { // Used to determine what blocks should be replaced with air by OpDestroyFluid public static final TagKey WATER_PLANTS = create("water_plants"); + public static final TagKey CHEAP_TO_BREAK_BLOCK = create("cheap_to_break_block"); + public static TagKey create(String name) { return TagKey.create(Registries.BLOCK, modLoc(name)); } diff --git a/Common/src/main/java/at/petrak/hexcasting/client/ShiftScrollListener.java b/Common/src/main/java/at/petrak/hexcasting/client/ShiftScrollListener.java index a35a711719..c6073517cc 100644 --- a/Common/src/main/java/at/petrak/hexcasting/client/ShiftScrollListener.java +++ b/Common/src/main/java/at/petrak/hexcasting/client/ShiftScrollListener.java @@ -5,7 +5,6 @@ import at.petrak.hexcasting.common.msgs.MsgShiftScrollC2S; import at.petrak.hexcasting.xplat.IClientXplatAbstractions; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.player.LocalPlayer; import net.minecraft.world.item.Item; @@ -46,7 +45,7 @@ public static boolean onScroll(double delta, boolean needsSneaking) { public static void clientTickEnd() { if (mainHandDelta != 0 || offHandDelta != 0) { IClientXplatAbstractions.INSTANCE.sendPacketToServer( - new MsgShiftScrollC2S(mainHandDelta, offHandDelta, Screen.hasControlDown(), + new MsgShiftScrollC2S(mainHandDelta, offHandDelta, Minecraft.getInstance().options.keySprint.isDown(), HexConfig.client().invertSpellbookScrollDirection(), HexConfig.client().invertAbacusScrollDirection())); mainHandDelta = 0; diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpBreakBlock.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpBreakBlock.kt index 6031adb0b7..796e82ccd0 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpBreakBlock.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpBreakBlock.kt @@ -8,6 +8,7 @@ import at.petrak.hexcasting.api.casting.getVec3 import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.misc.MediaConstants import at.petrak.hexcasting.api.mod.HexConfig +import at.petrak.hexcasting.api.mod.HexTags import at.petrak.hexcasting.xplat.IXplatAbstractions import net.minecraft.core.BlockPos import net.minecraft.server.level.ServerPlayer @@ -18,16 +19,18 @@ object OpBreakBlock : SpellAction { get() = 1 override fun execute( - args: List, - env: CastingEnvironment + args: List, + env: CastingEnvironment ): SpellAction.Result { val vecPos = args.getVec3(0, argc) val pos = BlockPos.containing(vecPos) env.assertPosInRangeForEditing(pos) + val isCheap = env.world.getBlockState(pos).`is`(HexTags.Blocks.CHEAP_TO_BREAK_BLOCK) + return SpellAction.Result( Spell(pos), - MediaConstants.DUST_UNIT / 8, + if (isCheap) MediaConstants.DUST_UNIT / 100 else MediaConstants.DUST_UNIT / 8, listOf(ParticleSpray.burst(Vec3.atCenterOf(pos), 1.0)) ) } diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpExplode.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpExplode.kt index 9535523457..0bed07989c 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpExplode.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/spells/OpExplode.kt @@ -8,9 +8,11 @@ import at.petrak.hexcasting.api.casting.getPositiveDoubleUnderInclusive import at.petrak.hexcasting.api.casting.getVec3 import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.misc.MediaConstants +import at.petrak.hexcasting.common.casting.actions.selectors.OpGetEntitiesBy import net.minecraft.core.BlockPos import net.minecraft.util.Mth import net.minecraft.world.level.Level +import net.minecraft.world.phys.AABB import net.minecraft.world.phys.Vec3 class OpExplode(val fire: Boolean) : SpellAction { @@ -18,13 +20,24 @@ class OpExplode(val fire: Boolean) : SpellAction { get() = 2 override fun execute( - args: List, - env: CastingEnvironment + args: List, + env: CastingEnvironment ): SpellAction.Result { - val pos = args.getVec3(0, argc) + var pos = args.getVec3(0, argc) val strength = args.getPositiveDoubleUnderInclusive(1, 10.0, argc) env.assertVecInRange(pos) + // Prevent the footgun of explosions exactly at an entity's eye position not doing damage + val eps = 0.01; + val epsv = Vec3(eps, eps, eps) + val aabb = AABB(pos.subtract(epsv), pos.add(epsv)) + val tooCloseToEyePos = env.world.getEntities(null, aabb) { + OpGetEntitiesBy.isReasonablySelectable(env, it) + }.any { it.eyePosition.distanceToSqr(pos) == 0.0 } + if (tooCloseToEyePos) { + pos = pos.add(0.0, 0.000001, 0.0) + } + val clampedStrength = Mth.clamp(strength, 0.0, 10.0) val cost = MediaConstants.DUST_UNIT * (3 * clampedStrength + if (fire) 1.0 else 0.125) return SpellAction.Result( diff --git a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/stack/OpDuplicateN.kt b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/stack/OpDuplicateN.kt index fd3aa008c0..ca92c7f082 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/stack/OpDuplicateN.kt +++ b/Common/src/main/java/at/petrak/hexcasting/common/casting/actions/stack/OpDuplicateN.kt @@ -4,17 +4,20 @@ import at.petrak.hexcasting.api.casting.castables.ConstMediaAction import at.petrak.hexcasting.api.casting.eval.CastingEnvironment import at.petrak.hexcasting.api.casting.getPositiveInt import at.petrak.hexcasting.api.casting.iota.Iota -import at.petrak.hexcasting.api.casting.mishaps.MishapShameOnYou +import at.petrak.hexcasting.common.lib.hex.HexIotaTypes object OpDuplicateN : ConstMediaAction { override val argc: Int get() = 2 override fun execute(args: List, env: CastingEnvironment): List { - val count = args.getPositiveInt(1, argc) + var count = args.getPositiveInt(1, argc) - if (count > 1000) { - throw MishapShameOnYou() + if (count > HexIotaTypes.MAX_SERIALIZATION_TOTAL) { + // If we throw here, the message will point to us, which usually doesn't happen. + // So ensure that this check has no user-facing effects, just cap to MAX_SERIALIZATION_TOTAL, + // which will unconditionally trigger Too Many Iotas after we return. + count = HexIotaTypes.MAX_SERIALIZATION_TOTAL } return (List(count) { args[0] }) diff --git a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexDamageTypes.java b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexDamageTypes.java index d9f5ad2111..d0451ec184 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/lib/HexDamageTypes.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/lib/HexDamageTypes.java @@ -10,7 +10,6 @@ public class HexDamageTypes { public static final ResourceKey OVERCAST = ResourceKey.create(Registries.DAMAGE_TYPE, modLoc("overcast")); - public static final ResourceKey SHAME_ON_YOU = ResourceKey.create(Registries.DAMAGE_TYPE, modLoc("shame")); public static void bootstrap(BootstapContext ctx) { ctx.register(OVERCAST, new DamageType( @@ -18,11 +17,5 @@ public static void bootstrap(BootstapContext ctx) { DamageScaling.WHEN_CAUSED_BY_LIVING_NON_PLAYER, 0f )); - - ctx.register(SHAME_ON_YOU, new DamageType( - "hexcasting.shame", - DamageScaling.WHEN_CAUSED_BY_LIVING_NON_PLAYER, - 0f - )); } } diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexBlockTagProvider.java b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexBlockTagProvider.java index 75b0435235..dffbb06364 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexBlockTagProvider.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexBlockTagProvider.java @@ -16,7 +16,8 @@ public class HexBlockTagProvider extends PaucalBlockTagProvider { public final IXplatTags xtags; - public HexBlockTagProvider(PackOutput output, CompletableFuture lookupProvider, IXplatTags xtags) { + public HexBlockTagProvider(PackOutput output, CompletableFuture lookupProvider, + IXplatTags xtags) { super(output, lookupProvider); this.xtags = xtags; } @@ -94,18 +95,17 @@ protected void addTags(HolderLookup.Provider provider) { add(tag(BlockTags.STAIRS), HexBlocks.EDIFIED_STAIRS); add(tag(BlockTags.FENCES), - HexBlocks.EDIFIED_FENCE); + HexBlocks.EDIFIED_FENCE); add(tag(BlockTags.WOODEN_FENCES), - HexBlocks.EDIFIED_FENCE); + HexBlocks.EDIFIED_FENCE); add(tag(BlockTags.FENCE_GATES), - HexBlocks.EDIFIED_FENCE_GATE); + HexBlocks.EDIFIED_FENCE_GATE); add(tag(BlockTags.UNSTABLE_BOTTOM_CENTER), - HexBlocks.EDIFIED_FENCE_GATE); - + HexBlocks.EDIFIED_FENCE_GATE); add(tag(BlockTags.WOODEN_FENCES), - HexBlocks.EDIFIED_FENCE); + HexBlocks.EDIFIED_FENCE); add(tag(BlockTags.WOODEN_STAIRS), HexBlocks.EDIFIED_STAIRS); add(tag(BlockTags.DOORS), @@ -127,6 +127,8 @@ protected void addTags(HolderLookup.Provider provider) { add(tag(HexTags.Blocks.WATER_PLANTS), Blocks.KELP, Blocks.KELP_PLANT, Blocks.SEAGRASS, Blocks.TALL_SEAGRASS); + add(tag(HexTags.Blocks.CHEAP_TO_BREAK_BLOCK), + HexBlocks.CONJURED_BLOCK, HexBlocks.CONJURED_LIGHT); } void add(TagAppender appender, Block... blocks) { diff --git a/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexDamageTypeTagProvider.java b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexDamageTypeTagProvider.java index 82eb35e7e2..16e7020d08 100644 --- a/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexDamageTypeTagProvider.java +++ b/Common/src/main/java/at/petrak/hexcasting/datagen/tag/HexDamageTypeTagProvider.java @@ -24,13 +24,6 @@ protected void addTags(@NotNull HolderLookup.Provider provider) { DamageTypeTags.BYPASSES_EFFECTS, DamageTypeTags.BYPASSES_SHIELD ); - - add(HexDamageTypes.SHAME_ON_YOU, - DamageTypeTags.BYPASSES_ARMOR, - DamageTypeTags.BYPASSES_EFFECTS, - DamageTypeTags.BYPASSES_INVULNERABILITY, - DamageTypeTags.BYPASSES_SHIELD - ); } @SafeVarargs diff --git a/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 index dd218c189a..a396693590 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 @@ -23,30 +23,30 @@ amethyst_dust: "Amethyst Dust", charged_amethyst: "Charged Amethyst", quenched_allay_shard: "Shard of Quenched Allay", - + scroll_small: { "": "Small Scroll", of: "How did you get this item of %s", empty: "Empty Small Scroll", }, - + scroll_medium: { "": "Medium Scroll", of: "How did you get this item of %s", empty: "Empty Medium Scroll", }, - + scroll: { "": "Large Scroll", of: "Ancient Scroll of %s", empty: "Empty Large Scroll", }, - + focus: { "": "Focus", sealed: "Sealed Focus", }, - + thought_knot: "Thought-Knot", spellbook: "Spellbook", cypher: "Cypher", @@ -57,7 +57,7 @@ abacus: "Abacus", jeweler_hammer: "Jeweler's Hammer", sub_sandwich: "Submarine Sandwich", - + dye_colorizer_: { white: "White Pigment", orange: "Orange Pigment", @@ -76,7 +76,7 @@ red: "Red Pigment", black: "Black Pigment", }, - + pride_colorizer_: { agender: "Agender Pigment", aroace: "Aroace Pigment", @@ -95,17 +95,17 @@ plural: "Plural Pigment", transgender: "Transgender Pigment", }, - + uuid_colorizer: "Soulglimmer Pigment", default_colorizer: "Vacant Pigment", - + creative_unlocker: { "": "The Media Cube", for_emphasis: "INFINITE MEDIA", tooltip: "Consume to unlock all %s knowledge.", mod_name: "Hexcasting", }, - + lore_fragment: { "": "Lore Fragment", all: "It seems I have found all the lore this world has to offer.", @@ -119,32 +119,32 @@ "block.hexcasting": { conjured_light: "Conjured Light", conjured_block: "Conjured Block", - + directrix: { empty: "Empty Directrix", redstone: "Mason Directrix", boolean: "??? Directrix", }, - + impetus: { empty: "Empty Impetus", rightclick: "Toolsmith Impetus", look: "Fletcher Impetus", redstone: "Cleric Impetus", }, - + akashic_: { record: "Akashic Record", bookshelf: "Akashic Bookshelf", connector: "Akashic Ligature", }, - + slate: { "": "Slate", blank: "Blank Slate", written: "Patterned Slate", }, - + slate_: { block: "Block of Slate", tiles: "Slate Tiles", @@ -152,7 +152,7 @@ bricks_small: "Small Slate Bricks", pillar: "Slate Pillar", }, - + amethyst_: { dust_block: "Block of Amethyst Dust", tiles: "Amethyst Tiles", @@ -167,13 +167,13 @@ bricks_small: "Small Slate & Amethyst Bricks", pillar: "Slate & Amethyst Pillar", }, - + scroll_paper: "Scroll Paper", ancient_scroll_paper: "Ancient Scroll Paper", scroll_paper_lantern: "Paper Lantern", ancient_scroll_paper_lantern: "Ancient Paper Lantern", amethyst_sconce: "Amethyst Sconce", - + edified_: { log: "Edified Log", log_amethyst: "Amethyst Edified Log", @@ -193,14 +193,14 @@ fence: "Edified Fence", fence_gate: "Edified Fence Gate", }, - + stripped_edified_log: "Stripped Edified Log", stripped_edified_wood: "Stripped Edified Wood", - + amethyst_edified_leaves: "Amethyst Edified Leaves", aventurine_edified_leaves: "Aventurine Edified Leaves", citrine_edified_leaves: "Citrine Edified Leaves", - + quenched_allay: "Quenched Allay", quenched_allay_: { @@ -209,12 +209,12 @@ bricks_small: "Small Quenched Allay Bricks", }, }, - + "itemGroup.hexcasting": { "": "Hexcasting", creative_tab: "Hexcasting", }, - + "gui.hexcasting": { spellcasting: "Hex Grid", }, @@ -225,7 +225,7 @@ edified_planks: "Edified Planks", phial_base: "Empty Phials", }, - + "tag.item.hexcasting": { brainswept_circle_components: "Brainswept Circle Components", directrices: "Directrices", @@ -250,7 +250,7 @@ client: "Client", server: "Server", }, - + option: { common: { dustMediaAmount: { @@ -335,7 +335,7 @@ "": "Amethyst Shard Drop Rate Change", "@Tooltip": "How much the number of amethyst shards dropped from clusters is increased/decreased.", }, - + // TODO: are these used anywhere?? "fewScrollTables.@Tooltip": "Loot tables that a small number of Ancient Scrolls are injected into", "someScrollTables.@Tooltip": "Loot tables that a decent number of Ancient Scrolls are injected into", @@ -343,7 +343,7 @@ }, }, }, - + "advancement.hexcasting:": { root: { "": "Hexcasting Research", @@ -399,31 +399,30 @@ inventory: "Restoration Log 72", }, }, - + "stat.hexcasting": { media_used: "Media Consumed (in dust)", media_overcast: "Media Overcast (in dust)", patterns_drawn: "Patterns Drawn", spells_cast: "Spells Cast", }, - + "death.attack.hexcasting": { overcast: { "": "%s's mind was subsumed into energy", player: "%s's mind was subsumed into energy while fighting %s", }, - shame: "Shame on %s!", }, - + "command.hexcasting": { recalc: "Recalculated patterns", - + pats: { listing: "Patterns in this world:", all: "Gave all %d scrolls to %s", "specific.success": "Gave %s with id %s to %s", }, - + brainsweep: { "": "Brainswept %s", "fail.badtype": "%s is not a mob", @@ -465,13 +464,13 @@ }, sealed: "Sealed", }, - + abacus: { "": "%d", reset: "Reset to 0", "reset.nice": "nice", }, - + circle: { no_exit: "The flow of media could not find an exit at %s", many_exits: "The flow of media had too many exits at %s", @@ -496,17 +495,17 @@ }, }, }, - + brainsweep: { min_level: "Level %s or higher", level: "Level %s", product: "Mindless Body", }, - + media: "%d dust", media_amount: "Contains: %s (%s)", "media_amount.advanced": "Contains: %s/%s (%s)", - + list_contents: "[%s]", null_iota: "Null", jump_iota: "[Jump]", @@ -569,7 +568,7 @@ "null": "Nullary Reflection", "true": "True Reflection", "false": "False Reflection", - + "vec/": { px: "Vector Reflection +X", py: "Vector Reflection +Y", @@ -579,14 +578,14 @@ nz: "Vector Reflection -Z", "0": "Vector Reflection Zero", }, - + "double/": { pi: "Arc's Reflection", tau: "Circle's Reflection", "e": "Euler's Reflection", }, }, - + get_caster: "Mind's Reflection", "entity_pos/eye": "Compass' Purification", "entity_pos/foot": "Compass' Purification II", @@ -596,14 +595,14 @@ raycast: "Archer's Distillation", "raycast/axis": "Architect's Distillation", "raycast/entity": "Scout's Distillation", - + "circle/": { impetus_pos: "Waystone Reflection", impetus_dir: "Lodestone Reflection", "bounds/min": "Lesser Fold Reflection", "bounds/max": "Greater Fold Reflection", }, - + append: "Integration Distillation", unappend: "Derivation Decomposition", index: "Selection Distillation", @@ -627,7 +626,7 @@ player: "Entity Purification: Player", living: "Entity Purification: Living", }, - + zone_entity: "Zone Distillation: Any", "zone_entity/": { animal: "Zone Distillation: Animal", @@ -641,7 +640,7 @@ not_player: "Zone Distillation: Non-Player", not_living: "Zone Distillation: Non-Living", }, - + swap: "Jester's Gambit", rotate: "Rotation Gambit", rotate_reverse: "Rotation Gambit II", @@ -695,18 +694,18 @@ read: "Scribe's Reflection", "read/entity": "Chronicler's Purification", "read/local": "Muninn's Reflection", - + write: "Scribe's Gambit", "write/entity": "Chronicler's Gambit", "write/local": "Huginn's Gambit", - + readable: "Auditor's Reflection", "readable/entity": "Auditor's Purification", writable: "Assessor's Reflection", "writable/entity": "Assessor's Purification", "akashic/read": "Akasha's Distillation", "akashic/write": "Akasha's Gambit", - + print: "Reveal", beep: "Make Note", explode: "Explosion", @@ -715,12 +714,12 @@ blink: "Blink", break_block: "Break Block", place_block: "Place Block", - + "craft/cypher": "Craft Cypher", "craft/trinket": "Craft Trinket", "craft/artifact": "Craft Artifact", "craft/battery": "Craft Phial", - + recharge: "Recharge Item", erase: "Erase Item", create_water: "Create Water", @@ -732,7 +731,8 @@ bonemeal: "Overgrow", edify: "Edify Sapling", colorize: "Internalize Pigment", - + cycle_variant: "Caster's Glamour", + "sentinel/": { create: "Summon Sentinel", "create/great": "Summon Greater Sentinel", @@ -740,44 +740,44 @@ get_pos: "Locate Sentinel", wayfind: "Wayfind Sentinel", }, - + "potion/": { weakness: "White Sun's Nadir", levitation: "Blue Sun's Nadir", wither: "Black Sun's Nadir", poison: "Red Sun's Nadir", slowness: "Green Sun's Nadir", - + regeneration: "White Sun's Zenith", night_vision: "Blue Sun's Zenith", absorption: "Black Sun's Zenith", haste: "Red Sun's Zenith", strength: "Green Sun's Zenith", }, - + flight: "Altiora", "flight/range": "Anchorite's Flight", "flight/time": "Wayfarer's Flight", - + lightning: "Summon Lightning", summon_rain: "Summon Rain", dispel_rain: "Dispel Rain", create_lava: "Create Lava", "teleport/great": "Greater Teleport", brainsweep: "Flay Mind", - + eval: "Hermes' Gambit", "eval/cc": "Iris' Gambit", for_each: "Thoth's Gambit", halt: "Charon's Gambit", thanatos: "Thanatos' Reflection", - + "interop/": { "gravity/": { get: "Gravitational Purification", set: "Alter Gravity", }, - + "pehkui/": { get: "Gulliver's Purification", set: "Alter Scale", @@ -788,7 +788,7 @@ // hexcasting.action.book.[resloc] override the name of that pattern in the patchi book, for abbreviations "book.hexcasting:": { get_entity_height: "Stadiometer's Prfn.", - + "get_entity/": { animal: "Entity Prfn.: Animal", monster: "Entity Prfn.: Monster", @@ -796,7 +796,7 @@ player: "Entity Prfn.: Player", living: "Entity Prfn.: Living", }, - + zone_entity: "Zone Dstl.: Any", "zone_entity/": { animal: "Zone Dstl.: Animal", @@ -810,20 +810,20 @@ not_player: "Zone Dstl.: Non-Player", not_living: "Zone Dstl.: Non-Living", }, - + mul: "Multiplicative Dstl.", div: "Division Dstl.", arcsin: "Inverse Sine Prfn.", arccos: "Inverse Cosine Prfn.", arctan: "Inverse Tangent Prfn.", arctan2: "Inverse Tan. Prfn. II", - + "const/vec/": { x: "Vector Rfln. +X/-X", y: "Vector Rfln. +Y/-Y", z: "Vector Rfln. +Z/-Z", }, - + "read/entity": "Chronicler's Prfn.", bool_to_number: "Numerologist's Prfn.", number: "Numerical Reflection", @@ -831,19 +831,19 @@ }, }, // ^ action - + "special.hexcasting:": { number: "Numerical Reflection: %s", mask: "Bookkeeper's Gambit: %s", }, - + "rawhook.hexcasting:": { open_paren: "Introspection", close_paren: "Retrospection", escape: "Consideration", undo: "Evanition", }, - + "iota.hexcasting:": { "null": "Null", double: "Number", @@ -854,7 +854,7 @@ garbage: "Garbage", vec3: "Vector", }, - + mishap: { "": "%s: %s", @@ -877,13 +877,13 @@ no_spell_circle: "%s requires a spell circle", others_name: "Tried to invade the privacy of %s's soul", "others_name.self": "Tried to divulge my Name too recklessly", - + divide_by_zero: { divide: "Attempted to divide %s by %s", project: "Attempted to project %s onto %s", exponent: "Attempted to raise %s to the %s", logarithm: "Attempted to get the logarithm of %s in base %s", - + zero: { "": "zero", power: "zeroth power", @@ -893,23 +893,22 @@ sin: "the sine of %s", cos: "the cosine of %s", }, - + invalid_operator_args: { one: "got an unexpected iota at index %d of the stack: %s", many: "got %d unexpected iotas at indices %d-%d of the stack: %s", }, - + no_akashic_record: "No Akashic Record at %s", disallowed: "has been disallowed by the server admins", disallowed_circle: "has been disallowed in spell circles by the server admins", invalid_spell_datum_type: "Tried to use a value of invalid type as a SpellDatum: %s (class %s). This is a bug in the mod.", unknown: "threw an exception (%s). This is a bug in the mod.", - shame: "Shame on you!", stack_size: "Exceeded the size limit of the stack", invalid_value: { "": "expected %s at index %s of the stack, but got %s", - + class: { double: "a number", boolean: "a boolean", @@ -917,7 +916,7 @@ list: "a list", widget: "an influence", pattern: "a pattern", - + entity: { "": "an entity", item: "an item entity", @@ -925,14 +924,14 @@ villager: "a villager", living: "a living entity", }, - + unknown: "(unknown, uh-oh, this is a bug)", }, - + numvec: "a number or vector", numlist: "an integer or list", "list.pattern": "a list of patterns", - + double: { positive: { "": "a positive number", @@ -941,7 +940,7 @@ }, between: "a number between %d and %d", }, - + int: { "": "an integer", positive: { @@ -951,11 +950,11 @@ }, between: "an integer between %d and %d", }, - + evaluatable: "something evaluatable", bool_commute: "a boolean, 0, or 1", }, - + location_: { too_far: "%s is out of range", out_of_world: "%s is not within the world", @@ -967,14 +966,14 @@ bad_item: { "": "needs %s but got %dx %s", offhand: "needs %s in the other hand but got %dx %s", - + iota: { "": "a place to store iotas", read: "a place to read iotas from", write: "a place to write iotas to", readonly: "a place that will accept %s", }, - + media: "a media-containing item", media_for_battery: "a raw media item", only_one: "exactly one item", @@ -984,7 +983,7 @@ colorizer: "a pigment", variant: "an item with variants", }, - + bad_block: { "": "Expected %s at %s, but got %s", sapling: "a sapling", @@ -1003,9 +1002,9 @@ many_exits: "The flow of media at %s had too many exits", }, - + // === Patchi stuff! === - + landing: "I seem to have discovered a new method of magical arts, in which one draws patterns strange and wild onto a hexagonal grid. \ It fascinates me. I've decided to start a journal of my thoughts and findings.\ @@ -1035,13 +1034,13 @@ I have seen I have seen I have s$(k)get stick bugged lmao/$", // alwinfy you think you're so funny }, - + lore: { "": "Lore", desc: "I have uncovered some letters and text not of direct relevance to my art. \ But, I think I may be able to divine some of the history of the world from these. Let me see...", }, - + interop: { "": "Cross-Mod Compatibility", desc: "It appears I have installed some mods Hexcasting interoperates with! I've detailed them here.", @@ -1169,32 +1168,32 @@ "2": "_Media can exert influences on other media-- the strength and type of influence can be manipulated by drawing _media out into patterns.$(p)Scholars of the art used a concentrated blob of _media on the end of a stick: by waving it in the air in precise configurations, they were able to manipulate enough _media with enough precision to influence the world itself, in the form of a _Hex.", "3": "Sadly, even a fully sentient being (like myself, presumably) can only generate miniscule amounts of _media. It would be quite impractical to try and use my own brainpower to cast Hexes.$(br2)But legend has it that there are underground deposits where _media slowly accumulates, growing into crystalline forms.$(p)If I could just find one of those...", }, - + geodes: { "1": "Aha! While mining deep underground, I found an enormous geode resonating with energy-- energy which pressed against my skull and my thoughts. And now, I hold that pressure in my hand, in solid form. That proves it. This $(italic)must/$ be the place spoken about in legends where _media accumulates.$(br2)These $(l:items/amethyst)$(item)amethyst crystals/$ must be a $(l:items/amethyst)$(thing)convenient, solidified form of _Media/$.", "2": "It appears that, in addition to the $(l:items/amethyst)$(item)Amethyst Shards/$ I have seen in the past, these crystals can also drop bits of powdered $(l:items/amethyst)$(item)Amethyst Dust/$, as well as these $(l:items/amethyst)$(item)Charged Amethyst Crystals/$. It looks like I'll have a better chance of finding the $(l:items/amethyst)$(item)Charged Amethyst Crystals/$ by using a Fortune pickaxe.", "3": "As I take the beauty of the crystal in, I can feel connections flashing wildly in my mind. It's like the _media in the air is entering me, empowering me, elucidating me... It feels wonderful.$(br2)Finally, my study into the arcane is starting to make some sense!$(p)Let me reread those old legends again, now that I know what I'm looking at.", }, - + couldnt_cast: { "1": "Argh! Why won't it let me cast the spell?!$(br2)The scroll I found rings with authenticity. I can $(italic)feel/$ it humming in the scroll-- the pattern is true, or as true as it can be. The spell is $(italic)right there/$.$(p)But it feels as if it's on the other side of some thin membrane. I called it-- it tried to manifest-- yet it $(italic)COULD NOT/$.", "2": "It felt like the barrier may have weakened ever so slightly from the force that I exerted on the spell; yet despite my greatest efforts-- my deepest focus, my finest amethyst, my precisest drawings-- it $(italic)refuses/$ to cross the barrier. It's maddening.$(p)$(italic)This/$ is where my arcane studies end? Cursed by impotence, cursed to lose my rightful powers?$(br2)I should take a deep breath. I should meditate on what I have learned, even if it wasn't very much...", "3": "...After careful reflection... I have discovered a change in myself.$(p)It seems... in lieu of $(l:items/amethyst)$(item)amethyst/$, I've unlocked the ability to cast spells using my own mind and life energy-- just as I read of in the legends of old.$(p)I'm not sure why I can now. It's just... the truth-knowledge-burden was always there, and I see it now. I know it. I bear it.$(br2)Fortunately, I feel my limits as well-- I would get approximately two $(l:items/amethyst)$(item)Charged Amethyst/$'s worth of _media out of my health at its prime.", "4": "I shudder to even consider it-- I've kept my mind mostly intact so far, in my studies. But the fact is-- I form one side of a tenuous link.$(p)I'm connected to some other side-- a side whose boundary has thinned from that trauma. A place where simple actions spell out eternal glory.$(p)Is it so wrong, to want it for myself?", }, - + start_to_see: { "1": "The texts weren't lying. Nature took its due.", "2": "That... that was...$(p)...that was one of the $(italic)worst/$ things I've $(italic)ever/$ experienced. I offered my plan to Nature, and got a firm smile and a tearing sensation in return-- a piece of myself breaking away, like amethyst dust in the rain.$(p)I feel lucky to have $(italic)survived/$, much less have the sagacity to write this-- I should declare the matter closed, double-check my math before I cast any more _Hexes, and never make such a mistake again.", "3": "...But.$(br2)But for the scarcest instant, that part of myself... it $(italic)saw/$... $(l:greatwork/the_work)$(thing)something/$. A place-- a design, perhaps? (Such distinctions didn't seem to matter in the face of... that.)$(p)And a... a membrane-barrier-skin-border, separating myself from a realm of raw thought-flow-light-energy. I remember-- I saw-thought-recalled-felt-- the barrier fuzzing at its edges, just so slightly.$(p)I wanted $(italic)through./$", "4": "I shouldn't. I $(italic)know/$ I shouldn't. It's dangerous. It's too dangerous. The force required... I'd have to bring myself within a hair's breadth of Death itself with a $(italic)single stroke/$.$(br2)But I'm. So. $(italic)Close/$.$(p)$(italic)This/$ is the culmination of my art. This is the $(#54398a)Enlightenment/$ I've been seeking. $(br2)I want more. I need to see it again. I $(italic)will/$ see it.$(p)What is my mortal mind against immortal glory?", }, - + casting: { overview: { "1": "I believe it's good to always start off on the right foot. So, I've compiled the patterns for a _Hex that will cause a modest explosion at the position I am looking at. I believe examining the inner workings of this _Hex will be quite edifying.", }, - + grid: { "1": "I will generally provide my patterns to Nature via my $(l:items/staff)$(item)Staff/$. \ Pressing $(thing)$(k:use)/$ with one in my hand will cause a hexagonal grid of dots to appear in front of me. \ @@ -1262,7 +1261,7 @@ "14.link_text": "Goblin Punch", "15": "Finally, it seems spells have a maximum range of influence, about 32 blocks from my position. Trying to affect anything outside of that will cause the spell to fail.$(br2)Despite this, if I have a player's reference, I can affect them from anywhere. This only applies to affecting them directly, though; I cannot use this to affect the world around them if they're outside of my range.$(br)I ought to be careful when giving out a reference like that. While friendly _Hexcasters could use them to great effect and utility, I shudder to think of what someone malicious might do with this.", }, - + vectors: { "1": "It seems I will need to be adroit with vectors if I am to get anywhere in my studies. I have compiled some resources here on vectors if I find I do not know how to work with them.$(br2)First off, an enlightening video on the topic.", "1.link_text": "3blue1brown", @@ -1270,151 +1269,151 @@ "3": "Link here.", "3.link_text": "Psi Codex", }, - + mishaps: { "1": "Unfortunately, I am not (yet) a perfect being. I make mistakes from time to time in my study and casting of _Hexes; for example, misdrawing a pattern, or trying to an invoke an action with the wrong iotas. And Nature usually doesn't look too kindly on my mistakes-- causing what is called a $(italic)mishap/$.", "2": "A pattern that causes a mishap will glow red in my grid. Depending on the type of mistake, I can also expect a certain deleterious effect and a spray of red and colorful sparks as the mishandled _media curdles into light of a given color.", "3": "Fortunately, although the bad effects of mishaps are certainly $(italic)annoying/$, none of them are especially destructive in the long term. Nothing better to do than dust myself off and try again ... but I should strive for better anyways.$(br2)Following is a list of mishaps I have compiled.", - + "invalid_pattern.title": "Invalid Pattern", invalid_pattern: "The pattern drawn is not associated with any action.$(br2)Causes yellow sparks, and a $(l:casting/influences)$(action)Garbage/$ will be pushed to the top of my stack.", - + "not_enough_iotas.title": "Not Enough Iotas", not_enough_iotas: "The action required more iotas than were on the stack.$(br2)Causes light gray sparks, and as many $(l:casting/influences)$(action)Garbages/$ as would be required to fill up the argument count will be pushed.", - + "stack_size.title": "Too Many Iotas", "stack_size": "I tried to cast a spell which exceeded the size limit of the stack.$(br2)Causes black sparks, and my entire stack will be replaced with a single $(l:casting/influences)$(action)Garbage/$.", - + "incorrect_iota.title": "Incorrect Iota", incorrect_iota: "The action that was executed expected an iota of a certain type for an argument, but it got something invalid. If multiple iotas are invalid, the error message will only tell me about the error deepest in the stack.$(br2)Causes dark gray sparks, and the invalid iota will be replaced with $(l:casting/influences)$(action)Garbage/$.", - + "vector_out_of_range.title": "Vector Out of Ambit", vector_out_of_range: "The action tried to affect the world at a point that was out of my range.$(br2)Causes magenta sparks, and the items in my hands will be yanked out and flung towards the offending location.", - + "entity_out_of_range.title": "Entity Out of Ambit", entity_out_of_range: "The action tried to affect an entity that was out of my range.$(br2)Causes pink sparks, and the items in my hands will be yanked out and flung towards the offending entity.", - + "entity_immune.title": "Entity is Immune", entity_immune: "The action tried to affect an entity that cannot be altered by it.$(br2)Causes blue sparks, and the items in my hands will be yanked out and flung towards the offending entity.", - + "math_error.title": "Mathematical Error", math_error: "The action did something offensive to the laws of mathematics, such as dividing by zero.$(br2)Causes red sparks, pushes a $(l:casting/influences)$(action)Garbage/$ to my stack, and my mind will be ablated, stealing half the vigor I have remaining. It seems that Nature takes offense to such operations, and divides $(italic)me/$ in retaliation.", - + "incorrect_item.title": "Incorrect Item", incorrect_item: "The action requires some sort of item, but the item I supplied was not suitable.$(br2)Causes brown sparks. If the offending item was in my hand, it will be flung to the floor. If it was in entity form, it will be flung in the air.", - + "incorrect_block.title": "Incorrect Block", incorrect_block: "The action requires some sort of block at a target location, but the block supplied was not suitable.$(br2)Causes bright green sparks, and causes an ephemeral explosion at the given location. The explosion doesn't seem to harm me, the world, or anything else though; it's just startling.", - + "retrospection.title": "Hasty Retrospection", retrospection: "I attempted to draw $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ without first drawing $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$.$(br2)Causes orange sparks, and pushes the pattern for $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ to the stack as a pattern iota.", - + "too_deep.title": "Delve Too Deep", too_deep: "Evaluated too many spells with meta-evaluation from one spell.$(br2)Causes dark blue sparks, and chokes all the air out of me.", - + "true_name.title": "Transgress Other", true_name: "I attempted to $(l:patterns/readwrite#hexcasting:write)$(action)save a reference/$ to another player to a permanent medium.$(br2)Causes black sparks, and robs me of my sight for approximately one minute.", - + "disabled.title": "Disallowed Action", disabled: "I tried to cast an action that has been disallowed by a server administrator.$(br2)Causes black sparks.", - + "other.title": "Catastrophic Failure", other: "A bug in the mod caused an iota of an invalid type or otherwise caused the spell to crash. $(l:https://github.com/gamma-delta/HexMod/issues)Please open a bug report!/$$(br2)Causes black sparks.", }, - + stack: { "1": "A $(thing)Stack/$, also known as a \"LIFO\", is a concept borrowed from computer science. In short, it's a collection of things designed so that you can only interact with the most recently used thing.$(br2)Think of a stack of plates, where new plates are added to the top: if you want to interact with a plate halfway down the stack, you have to remove the plates above it in order to get ahold of it.", "2": "Because a stack is so simple, there's only so many things you can do with it:$(li)$(italic)Adding something to it/$, known formally as pushing,$(li)$(italic)Removing the last added element/$, known as popping, or$(li)$(italic)Examining or modifying the last added element/$, known as peeking.$(br)We call the last-added element the \"top\" of the stack, in accordance with the dinner plate analogy.$(p)As an example, if we push 1 to a stack, then push 2, then pop, the top of the stack is now 1.", "3": "Actions are (on the most part) restricted to interacting with the casting stack in these ways. They will pop some iotas they're interested in (known as \"arguments\" or \"parameters\"), process them, and push some number of results.$(br2)Of course, some actions (e.g. $(l:patterns/basics#hexcasting:get_caster)$(action)Mind's Reflection/$) might pop no arguments, and some actions (particularly spells) might push nothing afterwards.", "4": "Even more complicated actions can be expressed in terms of pushing, popping, and peeking. For example, $(l:patterns/stackmanip#hexcasting:swap)$(action)Jester's Gambit/$ swaps the top two items of the stack. This can be thought of as popping two items and pushing them in opposite order. For another, $(l:patterns/stackmanip#hexcasting:duplicate)$(action)Gemini Decomposition/$ duplicates the top of the stack-- in other words, it peeks the stack and pushes a copy of what it finds.", }, - + naming: { "1": "The names given to actions by the ancients were certainly peculiar, but I think there's a certain kind of logic to them.$(br2)There seem to be certain groups of actions with common names, named for the number of iotas they remove from and add to the stack.", "2": "$(li)A $(thing)Reflection/$ pops nothing and pushes one iota.$(li)A $(thing)Purification/$ pops one and pushes one.$(li)A $(thing)Distillation/$ pops two and pushes one.$(li)An $(thing)Exaltation/$ pops three or more and pushes one.$(li)A $(thing)Decomposition/$ pops one argument and pushes two.$(li)A $(thing)Disintegration/$ pops one and pushes three or more.$(li)Finally, a $(thing)Gambit/$ pushes or pops some other number (or rearranges the stack in some other manner).", "3": "Spells seem to be exempt from this nomenclature and are more or less named after what they do-- after all, why call it a $(action)Demoman's Gambit/$ when you could just say $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$?", }, - + influences: { "1": "Influences are ... strange, to say the least. Whereas most iotas seem to represent something about the world, influences represent something more... abstract, or formless.$(br2)For example, one influence I've named $(l:casting/influences)$(thing)Null/$ seems to represent nothing at all. It's created when there isn't a suitable answer to a question asked, such as an $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$ facing the sky.", "2": "In addition, I've discovered a curious quartet of influences I've named $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Consideration/$, $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$, $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$, and $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)Evanition/$. They seem to have properties of both patterns and other influences, yet act very differently. I can use these to add patterns to my stack as iotas, instead of matching them to actions. $(l:patterns/patterns_as_iotas)My notes on the subject are here/$.", "3": "Finally, there seems to be an infinite family of influences that just seem to be a tangled mess of _media. I've named them $(l:casting/influences)$(action)Garbage/$, as they are completely useless. They seem to appear in my stack at various places in response to $(l:casting/mishaps)$(thing)mishaps/$, and appear to my senses as a nonsense jumble.", }, - + mishaps2: { "1": "I have discovered new and horrifying modes of failure. I must not succumb to them.", - + "bad_mindflay.title": "Inert Mindflay", bad_mindflay: "Attempted to flay the mind of something that I have either already used, or of a character not suitable for the target block.$(br2)Causes dark green sparks, and kills the subject. If a villager sees that, I doubt they would look on it favorably.", - + "no_circle.title": "Lack Spell Circle", no_circle: "Tried to cast an action requiring a spell circle without a spell circle.$(br2)Causes light blue sparks, and upends my inventory onto the ground.", - + "no_record.title": "Lack Akashic Record", no_record: "Tried to access an $(l:greatwork/akashiclib)$(item)Akashic Record/$ at a location where there isn't one.$(br2)Causes purple sparks, and steals away some of my experience.", }, - - + + // Items - + amethyst: { dust: "It seems that I'll find three different forms of amethyst when breaking a crystal inside a geode. The smallest denomination seems to be a small pile of shimmering dust, worth a relatively small amount of _media.", shard: "The second is a whole shard of amethyst, of the type non-_Hexcasters might be used to. This has about as much _media inside as five $(l:items/amethyst)$(item)Amethyst Dust/$.", crystal: "Finally, I'll rarely find a large crystal crackling with energy. This has about as much _media inside as ten units of $(l:items/amethyst)$(item)Amethyst Dust/$ (or two $(l:items/amethyst)$(item)Amethyst Shards/$).", lore: "$(italic)The old man sighed and raised a hand toward the fire. He unlocked a part of his brain that held the memories of the mountains around them. He pulled the energies from those lands, as he learned to do in Terisia City with Drafna, Hurkyl, the archimandrite, and the other mages of the Ivory Towers. He concentrated, and the flames writhed as they rose from the logs, twisting upon themselves until they finally formed a soft smile./$", }, - + staff: { "1": "A $(l:items/staff)$(item)Staff/$ is my entry point into casting all _Hexes, large and small. By holding it and pressing $(thing)$(k:use)/$, I begin casting a _Hex; then I can click and drag to draw patterns.$(br2)It's little more than a chunk of _media on the end of a stick; that's all that's needed, after all.", "crafting.header": "Staves", "crafting.desc": "$(italic)Don't fight; flame, light; ignite; burn bright./$", }, - + lens: { "1": "_Media can have peculiar effects on any type of information, in specific circumstances. Coating a glass in a thin film of it can lead to ... elucidating insights.$(br2)By holding a $(l:items/lens)$(item)Scrying Lens/$ in my hand, certain blocks will display additional information when I look at them.", "2": "For example, looking at a piece of $(item)Redstone/$ will display its signal strength. I suspect I will discover other blocks with additional insight as my studies into my art progress.$(br2)In addition, holding it while casting using a $(l:items/staff)$(item)Staff/$ will shrink the spacing between dots, allowing me to draw more on my grid.$(br2)I can also wear it on my head as a strange sort of monocle.", "crafting.desc": "$(italic)You must learn... to see what you are looking at./$", }, - + thought_knot: { "1": "The forgetful often tie a piece of string about their finger to help them remember something important. I believe this idea might be of use in my art. A specially knotted piece of string should be able to hold a single iota stably, irregardless of my stack.$(br2)I will call my invention a $(item)Thought-Knot/$.", "2": "When I craft it, it stores no iota. Using $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ while holding a $(item)Thought-Knot/$ in my other hand will remove the top of the stack and save it into the $(item)Thought-Knot/$. Using $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$ will copy whatever iota's in the $(item)Thought-Knot/$ and add it to the stack.$(br2)Once a $(item)Thought-Knot/$ has been written to, the string is indelibly tangled; the iota can be read any number of times, but there is no way to erase or overwrite it. Fortunately, they are not expensive.", "3": "Also, if I store an entity in a $(item)Thought-Knot/$ and try to recall it after the referenced entity has died or otherwise disappeared, the $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$ will add $(l:casting/influences)$(thing)Null/$ to the stack instead.", "crafting.desc": "$(italic)How would you feel if someone saw you wearing a sign that said, \"I am dashing and handsome?\"/$", }, - + focus: { "1": "A $(item)Focus/$ is like a $(l:items/thought_knot)$(item)Thought-Knot/$, in that iota can be written to or read from it. However, the advantage of a focus is that it is $(italic)reusable/$. If I make a mistake in the iota I write to a $(item)Focus/$, I can simply cast $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ again and write over the iota inside.", "2": "If I wish to protect a $(l:items/focus)$(item)focus/$ from accidentally being overwritten, I can seal it with wax by crafting it with a $(item)Honeycomb/$. Attempting to use $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ on a sealed focus will fail.$(br2)$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item/$ will remove this seal along with the contents.", "3": "Indeed, the only advantage of my $(l:items/thought_knot)$(item)Thought-Knot/$s have over $(item)Foci/$ is that $(item)Foci/$ are more expensive to produce. My research indicates that the early practitioners of the art used exclusively $(item)Foci/$, with the $(l:items/thought_knot)$(item)Thought-Knot/$ being an original creation of mine.$(br2)Whoever those ancient people were, they must have been very prosperous.", "crafting.desc": "$(italic)Poison apples, poison worms./$", }, - + abacus: { "1": "Although there are $(l:patterns/numbers)$(action)patterns for drawing numbers/$, I find them ... cumbersome, to say the least.$(br2)Fortunately, the old masters of my craft invented an ingenious device called an $(l:items/abacus)$(item)Abacus/$ to provide numbers to my casting. I simply set the number to what I want, then read the value using $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$, just like I would read a $(l:items/thought_knot)$(item)Thought-Knot/$ or $(l:items/focus)$(item)Focus/$.", - "2": "To operate one, I simply hold it, sneak, and scroll. If in my main hand, the number will increment or decrement by 1, or 10 if I am also holding Control/Command. If in my off hand, the number will increment or decrement by 0.1, or 0.001 if I am also holding Control/Command.$(br2)I can shake the abacus to reset it to zero by sneak-right-clicking.", + "2": "To operate one, I simply hold it, sneak, and scroll. If in my main hand, the number will increment or decrement by 1, or 10 if I am also holding $(k:sprint). If in my off hand, the number will increment or decrement by 0.1, or 0.001 if I am also holding $(k:sprint).$(br2)I can shake the abacus to reset it to zero by sneak-right-clicking.", "crafting.desc": "$(italic)Mathematics? That's for eggheads!/$", }, - + spellbook: { "1": "A $(l:items/spellbook)$(item)Spellbook/$ is the culmination of my art-- it acts like an entire library of $(l:items/focus)$(item)Foci/$. Up to $(thing)sixty-four/$ of them, to be exact.$(br2)Each page can hold a single iota, and I can select the active page (the page that iotas are saved to and copied from) by sneak-scrolling while holding it, or simply holding it in my off-hand and scrolling while casting a _Hex.", "2": "Like a $(l:items/focus)$(item)Focus/$, there exists a simple method to prevent accidental overwriting. Crafting it with a $(item)Honeycomb/$ will lacquer the current page, preventing $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ from modifying its contents. Also like a $(l:items/focus)$(item)Focus/$, using $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item/$ will remove the lacquer along with the page's contents.$(br2)I can also name each page individually in an anvil. Naming it will change only the name of the currently selected page, for easy browsing.", "crafting.desc": "$(italic)Wizards love words. Most of them read a great deal, and indeed one strong sign of a potential wizard is the inability to get to sleep without reading something first.", }, - + scroll: { "1": "A $(l:items/scroll)$(item)Scroll/$ is a convenient method of sharing a pattern with others. I can copy a pattern onto one with $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$, after which it will display in a tooltip.$(br2)I can also place them on the wall as decoration or edification, like a painting, in sizes from 1x1 to 3x3 blocks. Using $(l:items/amethyst)$(item)Amethyst Dust/$ on such a scroll will have it display the stroke order.", "2": "In addition, I can also find so-called $(l:items/scroll)$(item)Ancient Scrolls/$ in the dungeons and strongholds of the world. These contain the stroke order of $(thing)Great Spells/$, powerful magicks rumored to be too powerful for the hands and minds of mortals...$(br2)If those \"mortals\" couldn't cast them, I'm not sure they deserve to know them.", "crafting.desc": "$(italic)I write upon clean white parchment with a sharp quill and the blood of my students, divining their secrets./$", }, - + slate: { "1": "$(l:items/slate)$(item)Slates/$ are similar to $(l:items/scroll)$(item)Scrolls/$; I can copy a pattern to them and place them in the world to display the pattern.$(br2)However, I have read vague tales of grand assemblies of $(l:items/slate)$(item)Slates/$, used to cast $(l:greatwork/spellcircles)$(thing)great rituals/$ more powerful than can be handled by a $(l:items/staff)$(item)Staff/$.", "2": "Perhaps this knowledge will be revealed to me with time. But for now, I suppose they make a quaint piece of decor.$(br2)At the least, they can be placed on any side of a block, unlike $(l:items/scroll)$(item)Scrolls/$.", "crafting.desc": "$(italic)This is the letter \"a.\" Learn it./$", "3": "I'm also aware of other types of $(l:items/slate)$(item)Slates/$, slates that do not contain patterns but seem to be inlaid with other ... strange ... oddities. It hurts my brain to think about them, as if my thoughts get bent around their designs, following their pathways, bending and wefting through their labyrinthine depths, through and through and through channeled through and processed and--$(br2)... I almost lost myself. Maybe I should postpone my studies of those.", }, - + // roll credits hexcasting: { "1": "Although the flexibility of casting _Hexes \"on the go\" with my $(l:items/staff)$(item)Staff/$ is quite helpful, it's a huge pain to have to wave it around repeatedly just to accomplish a basic task. If I could save a common spell for later reuse, it would simplify things a lot-- and allow me to share my _Hexes with friends, too.", @@ -1424,57 +1423,57 @@ "5": "Each infusion spell requires an entity and a list of patterns on the stack. The entity must be a _media-holding item entity (i.e. $(l:items/amethyst)$(item)amethyst/$ crystals, dropped on the ground); the entity is consumed and forms the battery.$(br2)Usefully, it seems that the _media in the battery is not consumed in chunks as it is when casting with a $(l:items/staff)$(item)Staff/$-- rather, the _media \"melts down\" into one continuous pool. Thus, if I store a _Hex that only costs one $(l:items/amethyst)$(item)Amethyst Dust/$'s worth of media, a $(l:items/amethyst)$(item)Charged Crystal/$ used as the battery will allow me to cast it 10 times.", "crafting.desc": "$(italic)We have a saying in our field: \"Magic isn't\". It doesn't \"just work,\" it doesn't respond to your thoughts, you can't throw fireballs or create a roast dinner from thin air or turn a bunch of muggers into frogs and snails./$", }, - + phials: { "1": "I find it quite ... irritating, how Nature refuses to give me change for my work. If all I have on hand is $(l:items/amethyst)$(item)Charged Amethyst/$, even the tiniest $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$ will consume the entire crystal, wasting the remaining _media.$(br2)Fortunately, it seems I've found a way to somewhat allay this problem.", "2": "I've found old scrolls describing a $(item)Glass Bottle/$ infused with _media. When casting _Hexes, my spells would then draw _media out of the phial. The liquid form of the _media would let me take exact change, so to speak; nothing would be wasted. It's quite like the internal battery of a $(l:items/hexcasting)$(item)Trinket/$, or similar; I can even $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge/$ them in the same manner.", "3": "Unfortunately, the art of actually $(italic)making/$ the things seems to have been lost to time. I've found a $(l:patterns/great_spells/make_battery#hexcasting:craft/battery)$(thing)hint at the pattern used to craft it/$, but the technique is irritatingly elusive, and I can't seem to do it successfully. I suspect I will figure it out with study and practice, though. For now, I will simply deal with the wasted _media...$(br2)But I won't settle for it forever.", desc: "$(italic)Drink the milk./$", }, - + pigments: { "1": "The old practitioners of my art sometimes identified themselves by a color, emblematic of them and their _Hexes. Although their names have faded, their colors remain. It seems a special kind of pigment, offered to Nature in the right way, would \"[...] paint one's thoughts in a manner pleasing to Nature, inducing a miraculous change in personal colour.\"", "2": "I'm not certain on the specifics, but I believe I have isolated the formulae for many different colors and blends of pigments. To apply a pigment, I hold it in one hand and cast $(l:patterns/spells/colorize)$(action)Internalize Pigment/$ with the other; this consumes the pigment.$(br2)The pigments seem to affect the color of the sparks of _media emitted when I cast a _Hex and my $(l:patterns/spells/sentinels)$(thing)sentinel/$, but I don't doubt that the color will show up elsewhere.", - + "colored.crafting.header": "Chromatic Pigments", "colored.crafting.desc": "Pigments in all the colors of the rainbow.", - + special: "And finally, a pair of special pigments. $(item)Soulglimmer Pigment/$ shines with colors wholly unique to me, and $(item)Vacant Pigment/$ restores my original purplish-orange spread.$(br2)$(italic)And all the colors I am inside have not been invented yet./$", }, - + edified: { "1": "By infusing _media into a sapling via the use of $(l:patterns/spells/blockworks#hexcasting:edify)$(action)Edify Sapling/$, I can create what is called an $(l:items/edified)$(thing)Edified Tree/$. They tend to be tall and pointy, with ridged bark and wood that grows in a strange spiral pattern. Their leaves come in three pretty colors.", "2": "I would assume the wood would have some properties relevant to _Hexcasting. But, if it does, I cannot seem to find them. For all intents and purposes it appears to be just wood, albeit of a very strange color.$(br2)I suppose for now I will use it for decoration; the full suite of standard wood blocks can be crafted from them.$(br2)Of course, I can strip them with an axe as well.", "crafting.desc": "$(italic)Their smooth trunks, with white bark, gave the effect of enormous columns sustaining the weight of an immense foliage, full of shade and silence./$", }, - + jeweler_hammer: { "1": "After being careless with the sources of my _media one too many times, I have devised a tool to work around my clumsiness.$(br2)Using the delicate nature of crystallized _media as a fixture for a pickaxe, I can create the $(l:items/jeweler_hammer)$(item)Jeweler's Hammer/$. It acts like an $(item)Iron Pickaxe/$, for the most part, but can't break anything that takes up an entire block's space.", "crafting.desc": "$(italic)Carefully, she cracked the half ruby, letting the spren escape./$", }, - + decoration: { "1": "In the course of my studies I have discovered some building blocks and trifles that I may find aesthetically pleasing. I've compiled the methods of making them here.", "ancient_scroll.crafting.desc": "Brown dye works well enough to simulate the look of an $(l:items/scroll)$(item)ancient scroll/$.", "tiles.crafting.desc": "$(l:items/decoration)$(item)Amethyst Tiles/$ can also be made in a Stonecutter.$(br2)$(l:items/decoration)$(item)Blocks of Amethyst Dust/$ (next page) will fall like sand.", "sconce.crafting.desc": "$(l:items/decoration)$(item)Amethyst Sconces/$ emit light and particles, as well as a pleasing chiming sound.", }, - - + + // The Work the_work: { "1": "I have seen so many things. Unspeakable things. Innumerable things. I could write three words and turn my mind inside-out and smear my brains across the shadowed walls of my skull to decay into fluff and nothing.", "2": "I have seen staccato-needle patterns and acid-etched schematics written on the inside of my eyelids. They smolder there-- they dance, they taunt, they $(italic)ache/$. I'm possessed by an intense $(italic)need/$ to draw them, create them. Form them. Liberate them from the gluey shackles of my mortal mind-- present them in their Glory to the world for all to see.$(p)All shall see.$(p)All will see.", }, - + brainsweeping: { "1": "A secret was revealed to me. I saw it. I cannot forget its horror. The idea skitters across my brain.$(br2)I believed-- oh, foolishly, I $(italic)believed/$ --that _Media is the spare energy left over by thought. But now I $(italic)know/$ what it is: the energy $(italic)of/$ thought.", "2": "It is produced by thinking sentience and allows sentience to think. It is a knot tying that braids into its own string. The Entity I naively anthromorphized as Nature is simply a grand such tangle, or perhaps the set of all tangles, or ... if I think it hurts I have so many synapses and all of them can think pain at once ALL OF THEM CAN SEE$(br2)I am not holding on. My notes. Quickly.", "3": "The villagers of this world have enough consciousness left to be extracted. Place it into a block, warp it, change it. Intricate patterns caused by different patterns of thought, the abstract neural pathways of their jobs and lives mapped into the cold physic of solid atoms.$(br2)This is what $(l:patterns/great_spells/brainsweep)$(action)Flay Mind/$ does, the extraction. Target the villager entity and the destination block. Ten $(l:items/amethyst)$(item)Charged Amethyst/$ for this perversion of will.", budding_amethyst: "And an application. For this flaying, any sort of villager will do, if it has developed enough. Other recipes require more specific types. NO MORE must I descend into the hellish earth for my _media.", }, - + spellcircles: { "1": "I KNOW what the $(l:items/slate)$(item)slates/$ are for. The grand assemblies lost to time. The patterns scribed on them can be actuated in sequence, automatically. Thought and power ricocheting through, one by one by one by one by one by through and through and THROUGH AND -- I must not I must not I should know better than to think that way.", "2": "To start the ritual I need an $(l:greatwork/impetus)$(item)Impetus/$ to create a self-sustaining wave of _media. That wave travels along a track of $(l:items/slate)$(item)slates/$ or other blocks suitable for the energies, one by one, collecting any patterns it finds. Once the wave circles back around to the $(l:greatwork/impetus)$(item)Impetus/$, all the patterns encountered are cast in order.$(br2)The direction the _media exits any given block MUST be unambiguous, or the casting will fail at the block with too many neighbors.", @@ -1485,37 +1484,37 @@ "7": "I also found a sketch of a spell circle used by the ancients buried in my notes. Facing this page is my (admittedly poor) copy of it.$(br2)The patterns there would have been executed counter-clockwise, starting with $(l:patterns/basics#hexcasting:get_caster)$(action)Mind's Reflection/$ and ending with $(l:patterns/great_spells/teleport#hexcasting:teleport/great)$(action)Greater Teleport/$.", "teleport_circle.title": "Teleportation Circle", }, - + impetus: { "1": "The fluctuation of _media required to actuate a spell circle is complex. Even the mortal with sharpest eyes and steadiest hands could not serve as an $(l:greatwork/impetus)$(item)Impetus/$ and weave _media into the self-sustaining oroboros required.$(br2)The problem is that the mind is too full of other useless $(italics)garbage/$.", "2": "At a ... metaphysical level-- I must be careful with these thoughts, I cannot lose myself, I have become too valuable --moving _media moves the mind, and the mind must be moved for the process to work. But, the mind is simply too $(italic)heavy/$ with other thoughts to move nimbly enough.$(br2)It is like an artisan trying to repair a watch while wearing mittens.", "3": "There are several solutions to this conundrum: through meditative techniques one can learn to blank the mind, although I am not certain a mind free enough to actuate a circle can concentrate hard enough to do the motions.$(br2)Certain unsavory compounds can create a similar effect, but I know nothing of them and do not plan to learn. I must not rely on the chemicals of my brain.", "4": "The solution I aim for, then, is to specialize a mind. Remove it from the tyranny of nerves, clip all outputs but delicate splays of _media-manipulating apparati, cauterize all inputs but the signal to start its work.$(br2)The process of $(l:greatwork/brainsweeping)$(action)mindflaying/$ I am now familiar with will do excellently; the mind of a villager is complex enough to do the work, but not so complex as to resist its reformation.", - + empty_impetus: "First, the cradle. Although it does not work as an $(l:greatwork/impetus)$(item)Impetus/$, the flow of _media in a circle will only exit out the side pointed to by the arrows. This allows me to change the plane in which the wave flows, for example.", impetus_rightclick: "Then, to transpose the mind. Villagers of different professions will lend different actuation conditions to the resulting $(l:greatwork/impetus)$(item)Impetus/$. A $(l:greatwork/impetus)$(item)Toolsmith Impetus/$ activates on a simple $(k:use).", impetus_storedplayer: { - "1": "A $(l:greatwork/impetus)$(item)Cleric Impetus/$ must be bound to a player by using an item with a reference to that player, like a $(l:items/focus)$(item)Focus/$, on the block. Then, it activates when receiving a redstone signal.", + "1": "A $(l:greatwork/impetus)$(item)Cleric Impetus/$ activates when receiving a redstone signal. It may be bound to a player by using an item with a reference to that player, like a $(l:items/focus)$(item)Focus/$, on the block.", "2": "Peculiarly to this $(l:greatwork/impetus)$(item)Impetus/$, the bound player, as well as a small region around them, are always accessible to the spell circle. It's as if they were standing within the bounds of the circle, no matter how far away they might stand.$(br2)The bound player is shown when looking at a $(l:greatwork/impetus)$(item)Cleric Impetus/$ through a $(l:items/lens)$(item)Scrying Lens/$.", }, impetus_look: "A $(l:greatwork/impetus)$(item)Fletcher Impetus/$ activates when looked at for a short time.", }, - + directrix: { "1": "Simpler than the task of creating a self-sustaining wave of _media is the task of directing it. Ordinarily the wave disintegrates when coming upon a crossroads, but with a mind to guide it, an exit direction can be controlled.$(br2)This manipulation is not nearly so fine as the delicacy of actuating a spell circle. In fact, it might be possible to do it by hand... but the packaged minds I have access to now would be so very convenient.", "2": "A $(l:greatwork/directrix)$(item)Directrix/$ accepts a wave of _media and determines to which of the arrows it will exit from, depending on the villager mind inside.$(br2)I am not certain if this idea was bestowed upon me, or if my mind is bent around the barrier enough to splint off its own ideas now... but if the idea came from my own mind, if I thought it, can it be said it was bestowed? The brain is a vessel for the mind and the mind is a vessel for ideas and the ideas vessel thought and thought sees all and knows all-- I MUST N O T", - + empty_directrix: "Firstly, a design for the cradle ... although, perhaps \"substrate\" would be more accurate a word. Without a mind guiding it, the output direction is determined by microscopic fluctuations in the _media wave and surroundings, making it effectively random.", directrix_redstone: "A $(l:greatwork/directrix)$(item)Mason Directrix/$ switches output side based on a redstone signal. Without a signal, the exit is the _media-color side; with a signal, the exit is the redstone-color side.", }, - + akashiclib: { "1": "I KNOW SO MUCH it is ONLY RIGHT to have a place to store it all. Information can be stored in books but it is oh so so so so $(italic)slow/$ to write by hand and read by eye. I demand BETTER. And so I shall MAKE better.$(br2)... I am getting worse ... do not know if I have time to write everything bursting through my head before expiring.", "2": "The library. Here. My plans.$(br2)Like how patterns are associated with actions, I can associate my own patterns with iotas in any way I choose. An $(l:greatwork/akashiclib)$(item)Akashic Record/$ controls the library, and each $(l:greatwork/akashiclib)$(item)Akashic Bookshelf/$ stores one pattern mapped to one iota. These must all be directly connected together, touching, within 32 blocks. An $(l:greatwork/akashiclib)$(item)Akashic Ligature/$ doesn't do anything but count as a connecting block, to extend the size of my library.", akashic_record: "Allocating and assigning patterns is simple but oh so boring. I have better things to do. I will need a mind well-used to its work for the extraction to stay sound.", "3": "Then to operate the library is simple, the patterns are routed through the librarian and it looks them up and returns the iota to you. Two actions do the work. $(l:patterns/akashic_patterns)Notes here/$.$(br2)Using an empty $(l:items/scroll)$(item)scroll/$ on a bookshelf copies the pattern there onto the $(l:items/scroll)$(item)scroll/$. Sneaking and using an empty hand clears the datum in the shelf.", }, - + quenching_allays: { "1": "THEY ARE BITS OF MEDIA. How did I not see it sooner? They are -- as I am a heap of flesh with a scrap, blessed with a scrap of thought, an Allay is a self-sustaining quarrel of media pinned to a scrap of flesh. It explains everything -- their propensity for media, their response to music, I SEE NOW, HOW did the ones before NOT?", "2": "And given this it is only RIGHT I conquer their peculiar minds -- their peculiar selves -- that is all they are, a mind, a self, a coda. Something about their phase speaks to me. I can... I can compress _media with them, overlay two wends of thought in one space, physical and cognitive, all and once.$(br2)Somehow, the process produces _media of its own. How? Perhaps -- perhaps MY work, the process of doing it --", @@ -1523,19 +1522,19 @@ "4": "The product is fragile. Breaking it shatters it into pieces, with $(thing)Fortune/$ increasing the yield... if I wish the block itself I need a silken touch.$(br2)The produced shards are worth thrice a $(l:items/amethyst)$(item)Charged Amethyst Crystal/$ apiece. The block itself is worth four of the shards.", "5": "They are mercurial, they seem to twist and wink under my fingers, and by giving them a mentor in another form of _media they may be coerced into its shape, in an equivalent exchange of _media.", }, - - + + "fanciful_staves.1": "It is only right as I shed the husk of ignorance I replace my tools, my palm-polished staves. These new constructions of mine have no additional properties -- but they are so glorious, oh so Glorious... They match the radiance winking at the corners of my sight.", // Patterns - + readers_guide: { "1": "I've divided all the valid patterns I've found into sections based on what they do, more or less. I've written down the stroke order of the patterns as well, if I managed to find it in my studies, with the start of the pattern marked with a red dot.$(br2)If an action is cast by multiple patterns, as is the case with some, I'll write them all side-by-side.", "2": "For a few patterns, however, I was $(italic)not/$ able to find the stroke order, just the shape. I suspect the order to draw them in are out there, locked away in the ancient libraries and dungeons of the world.$(br2)In such cases I just draw the pattern without any information on the order to draw it in.", "3": "I also write the types of iota that the action will consume or modify, a \"\u2192\", and the types of iota the action will create.$(p)For example, \"$(n)vector, number/$ \u2192 $(n)vector/$\" means the action will remove a vector and a number from the top of the stack, and then add a vector; or, put another way, will remove a number from the stack, and then modify the vector at the top of the stack. (The number needs to be on the top of the stack, with the vector right below it.)", "4": "\"\u2192 $(n)entity/$\" means it'll just push an entity. \"$(n)entity, vector/$ \u2192\" means it removes an entity and a vector, and doesn't push anything.$(br2)Finally, if I find the little dot marking the stroke order too slow or confusing, I can press $(thing)Control/Command/$ to display a gradient, where the start of the pattern is darkest and the end is lightest. This works on scrolls and when casting, too!", }, - + basics_pattern: { get_caster: "Adds me, the caster, to the stack.", "entity_pos/eye": "Transforms an entity on the stack into the position of its eyes. I should probably use this on myself.", @@ -1554,47 +1553,47 @@ get_entity_height: "Transforms an entity on the stack into its height.", get_entity_velocity: "Transforms an entity on the stack into the direction in which it's moving, with the speed of that movement as that direction's magnitude.", }, - + numbers: { "1": "Irritatingly, there is no easy way to draw numbers. Here is the method Nature deigned to give us.", "2": "First, I draw one of the two shapes shown on the other page. Next, the $(italic)angles/$ following will modify a running count starting at 0.$(li)Forward: Add 1$(li)Left: Add 5$(li)Right: Add 10$(li)Sharp Left: Multiply by 2$(li)Sharp Right: Divide by 2.$(br)The clockwise version of the pattern, on the right of the other page, will negate the value at the very end. (The left-hand counter-clockwise version keeps the number positive).$(p)Once I finish drawing, the number's pushed to the top of the stack.", example: { "10.header": "Example 1", "10": "This pattern pushes 10.", - + "7.header": "Example 2", "7": "This pattern pushes 7: 5 + 1 + 1.", - + "-32.header": "Example 3", "-32": "This pattern pushes -32: negate 1 + 5 + 10 * 2.", - + "4.5.header": "Example 4", "4.5": "This pattern pushes 4.5: 5 / 2 + 1 + 1.", }, "3": "In certain cases it might be easier to just use an $(l:items/abacus)$(item)Abacus/$. But, it's worth knowing the \"proper\" way to do things.", }, - + math: { numvec: "Many mathematical operations function on both numbers and vectors. Such arguments are written as \"num|vec\".", - + "add.1": "Perform addition.", "add.2": "As such:$(li)With two numbers at the top of the stack, combines them into their sum.$(li)With a number and a vector, removes the number from the stack and adds it to each element of the vector.$(li)With two vectors, combines them by summing corresponding components into a new vector (i.e. [1, 2, 3] + [0, 4, -1] = [1, 6, 2]).", - + "sub.1": "Perform subtraction.", "sub.2": "As such:$(li)With two numbers at the top of the stack, combines them into their difference.$(li)With a number and a vector, removes the number from the stack and subtracts it from each element of the vector.$(li)With two vectors, combines them by subtracting each component.$(br2)In all cases, the top of the stack or its components are subtracted $(italic)from/$ the second-from-the-top.", - + "mul.1": "Perform multiplication or the dot product.", "mul.2": "As such:$(li)With two numbers, combines them into their product.$(li)With a number and a vector, removes the number from the stack and multiplies each component of the vector by that number.$(li)With two vectors, combines them into their $(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)dot product/$.", - + "div.1": "Perform division or the cross product.", "div.2": "As such:$(li)With two numbers, combines them into their quotient.$(li)With a number and a vector, removes the number and divides it by each element of the vector.$(li)With two vectors, combines them into their $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)cross product/$.$(br2)In the first and second cases, the top of the stack or its components comprise the dividend, and the second-from-the-top or its components are the divisor.$(p)WARNING: Never divide by zero!", - + "abs.1": "Compute the absolute value or length.", "abs.2": "Replaces a number with its absolute value, or a vector with its length.", - + "pow.1": "Perform exponentiation or vector projection.", "pow.2": "With two numbers, combines them by raising the first to the power of the second.$(li)With a number and a vector, removes the number and raises each component of the vector to the number's power.$(li)With two vectors, combines them into the $(l:https://en.wikipedia.org/wiki/Vector_projection)vector projection/$ of the top of the stack onto the second-from-the-top.$(br2)In the first and second cases, the first argument or its components are the base, and the second argument or its components are the exponent.", - + floor: "\"Floors\" a number, cutting off the fractional component and leaving an integer value. If passed a vector, instead floors each of its components.", ceil: "\"Ceilings\" a number, raising it to the next integer value if it has a fractional component. If passed a vector, instead ceils each of its components.", construct_vec: "Combine three numbers at the top of the stack into a vector's X, Y, and Z components (bottom to top).", @@ -1603,7 +1602,7 @@ coerce_axial: "For a vector, coerce it to its nearest axial direction, a unit vector. For a number, return the sign of the number; 1 if positive, -1 if negative. In both cases, zero is unaffected.", random: "Creates a random number between 0 and 1.", }, - + advanced_math: { sin: "Takes the sine of an angle in radians, yielding the vertical component of that angle drawn on a unit circle. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", cos: "Takes the cosine of an angle in radians, yielding the horizontal component of that angle drawn on a unit circle. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", @@ -1614,46 +1613,46 @@ arctan2: "Takes the inverse tangent of a Y and X value, yielding the angle between the X-axis and a line from the origin to that point.", logarithm: "Removes the number at the top of the stack, then takes the logarithm of the number at the top using the other number as its base. Related to the value of $(l:patterns/consts#hexcasting:const/double/e)$(thing)$(italic)e/$.", }, - + sets: { numlist: "Set operations are odd, in that some of them can accept two numbers or two lists, but not a combination thereof. Such arguments will be written as \"(num, num)|(list, list)\".$(br2)When numbers are used in those operations, they are being used as so-called binary \"bitsets\", lists of 1 and 0, true and false, \"on\" and \"off\".", - + "or.1": "Unifies two sets.", "or.2": "As such:$(li)With two numbers at the top of the stack, combines them into a bitset containing every \"on\" bit in either bitset.$(li)With two lists, this creates a list of every element from the first list, plus every element from the second list that is not in the first list. This is similar to $(l:patterns/lists#hexcasting:add)$(action)Combination Distillation/$.", - + "and.1": "Takes the intersection of two sets.", "and.2": "As such:$(li)With two numbers at the top of the stack, combines them into a bitset containing every \"on\" bit present in $(italics)both/$ bitsets.$(li)With two lists, this creates a list of every element from the first list that is also in the second list.", - + "xor.1": "Takes the exclusive disjunction of two sets.", "xor.2": "As such:$(li)With two numbers at the top of the stack, combines them into a bitset containing every \"on\" bit present in $(italics)exactly one/$ of the bitsets.$(li)With two lists, this creates a list of every element in both lists that is $(italics)not/$ in the other list.", - + not: "Takes the inversion of a bitset, changing all \"on\" bits to \"off\" and vice versa. In my experience, this will take the form of that number negated and decreased by one. For example, 0 will become -1, and -100 will become 99.", to_set: "Removes duplicate entries from a list.", }, - + "consts.const/": { "null": "Adds the $(l:casting/influences)$(thing)Null/$ influence to the top of the stack.", "true": "Adds $(thing)True/$ to the top of the stack.", "false": "Adds $(thing)False/$ to the top of the stack.", - + "vec/": { x: "The left-hand counter-clockwise pattern adds [1, 0, 0] to the stack; the right-hand clockwise pattern adds [-1, 0, 0].", y: "The left-hand counter-clockwise pattern adds [0, 1, 0] to the stack; the right-hand clockwise pattern adds [0, -1, 0].", z: "The left-hand counter-clockwise pattern adds [0, 0, 1]; the right-hand clockwise pattern adds [0, 0, -1].", "0": "Adds [0, 0, 0] to the stack.", }, - + "double/": { tau: "Adds τ, the radial representation of a complete circle, to the stack.", pi: "Adds π, the radial representation of half a circle, to the stack.", "e": "Adds $(italic)e/$, the base of natural logarithms, to the stack.", }, }, - + stackmanip: { "pseudo-novice.title": "Novice's Gambit", "pseudo-novice": "Removes the first iota from the stack.$(br2)This seems to be a special case of $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambit/$.", - + swap: "Swaps the top two iotas of the stack.", rotate: "Yanks the iota third from the top of the stack to the top. [0, 1, 2] becomes [1, 2, 0].", rotate_reverse: "Yanks the top iota to the third position. [0, 1, 2] becomes [2, 0, 1].", @@ -1665,19 +1664,19 @@ duplicate_n: "Removes the number at the top of the stack, then copies the top iota of the stack that number of times. (A count of 2 results in two of the iota on the stack, not three.)", fisherman: "Grabs the element in the stack indexed by the number and brings it to the top. If the number is negative, instead moves the top element of the stack down that many elements.", "fisherman/copy": "Like $(l:patterns/stackmanip#hexcasting:fisherman)$(action)Fisherman's Gambit/$, but instead of moving the iota, copies it.", - + mask: { "1": "An infinite family of actions that keep or remove elements at the top of the stack based on the sequence of dips and lines.", "2": "Assuming that I draw a Bookkeeper's Gambit pattern left-to-right, the number of iotas the action will require is determined by the horizontal distance covered by the pattern. From deepest in the stack to shallowest, a flat line will keep the iota, whereas a triangle dipping down will remove it.$(br2)If my stack contains $(italic)0, 1, 2/$ from deepest to shallowest, drawing the first pattern opposite will give me $(italic)1/$, the second will give me $(italic)0/$, and the third will give me $(italic)0, 2/$ (the 0 at the bottom is left untouched).", }, - + swizzle: { "1": "Rearranges the top elements of the stack based on the given numerical code, which is the index of the permutation wanted.", "2": "Although I can't pretend to know the mathematics behind calculating this permutation code, I have managed to dig up an extensive chart of them, enumerating all permutations of up to six elements.$(br2)If I wish to do further study, the key word is \"Lehmer Code.\"", link: "Table of Codes", }, }, - + logic: { bool_coerce: "Convert an argument to a boolean. The number $(thing)0/$, $(l:casting/influences)$(thing)Null/$, False, and the empty list become False; everything else becomes True.", bool_to_number: "Convert a boolean to a number; True becomes $(thing)1/$, and False becomes $(thing)0/$.", @@ -1693,7 +1692,7 @@ greater_eq: "If the first argument is greater than or equal to the second, return True. Otherwise, return False.", less_eq: "If the first argument is less than or equal to the second, return True. Otherwise, return False.", }, - + entities: { get_entity: "Transform the position on the stack into the entity at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", "get_entity/": { @@ -1703,7 +1702,7 @@ player: "Transform the position on the stack into the player at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", living: "Transform the position on the stack into the living creature at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", }, - + zone_entity: "Take a position and maximum distance on the stack, and combine them into a list of all entities near the position.", "zone_entity/": { animal: "Take a position and maximum distance on the stack, and combine them into a list of animals near the position.", @@ -1718,7 +1717,7 @@ not_living: "Take a position and maximum distance on the stack, and combine them into a list of non-living entities near the position.", }, }, - + lists: { index: "Remove the number at the top of the stack, then replace the list at the top with the nth element of that list (where n is the number you removed). Replaces the list with $(l:casting/influences)$(thing)Null/$ if the number is out of bounds.", slice: "Remove the two numbers at the top of the stack, then take a sublist of the list at the top of the stack between those indices, lower bound inclusive, upper bound exclusive. For example, the 0, 2 sublist of [0, 1, 2, 3, 4] would be [0, 1].", @@ -1737,7 +1736,7 @@ construct: "Remove the top iota, then add it as the first element to the list at the top of the stack.", deconstruct: "Remove the first iota from the list at the top of the stack, then push that iota to the stack.", }, - + patterns_as_iotas: { "1": "One of the many peculiarities of this art is that $(italic)patterns themselves/$ can act as iotas-- I can even put them onto my stack when casting.$(br2)This raises a fairly obvious question: how do I express them? If I simply drew a pattern, it would hardly tell Nature to add it to my stack-- rather, it would simply be matched to an action.", "2": "Fortunately, Nature has provided me with a set of $(l:casting/influences)influences/$ that I can use to work with patterns directly.$(br2)In short, $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Consideration/$ lets me add one pattern to the stack, and $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ let me add a whole list.", @@ -1752,7 +1751,7 @@ }, undo: "Finally, if I make a mistake while drawing patterns inside $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Intro-/$ and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ I can draw $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)Evanition/$ to remove the last pattern that I drew from the pattern list that is being constructed.", }, - + readwrite: { "1": "This section deals with the storage of $(thing)Iotas/$ in a more permanent medium. Nearly any iota can be stored to a suitable item, such as a $(l:items/focus)$(item)Focus/$ or $(l:items/spellbook)$(item)Spellbook/$, and read back later. Certain items, such as an $(l:items/abacus)$(item)Abacus/$, can only be read from.$(br2)Iotas are usually read and written from the other hand, but it is also possible to read and write with an item when it is sitting on the ground as an item entity, or when in an item frame.", "2": "There may be other entities I can interact with in this way. For example, a $(l:items/scroll)$(item)Scroll/$ hung on the wall can have its pattern read off of it.$(br2)However, it seems I am unable to save a reference to another player, only me. I suppose an entity reference is similar to the idea of a True Name; perhaps Nature is helping to keep our Names out of the hands of enemies. If I want a friend to have my Name I can make a $(l:items/focus)$(item)Focus/$ for them.", @@ -1769,37 +1768,37 @@ "write/local": "Removes the top iota from the stack, and saves it to my $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$, storing it there until I stop casting the _Hex.", "read/local": "Copy the iota out of my $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$, which I likely just wrote with $(l:patterns/readwrite#hexcasting:write/local)$(action)Huginn's Gambit/$.", }, - + meta: { "eval.1": "Remove a pattern or list of patterns from the stack, then cast them as if I had drawn them myself with my $(l:items/staff)$(item)Staff/$ (until a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit/$ is encountered). If an iota is escaped with $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Consideration/$ or $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)its ilk/$, it will be pushed to the stack. Otherwise, non-patterns will fail.", "eval.2": "This can be $(italic)very/$ powerful in tandem with $(l:items/focus)$(item)Foci/$.$(br2)It also makes the bureaucracy of Nature a \"Turing-complete\" system, according to one esoteric scroll I found.$(br2)However, it seems there's a limit to how many times a _Hex can cast itself-- Nature doesn't look kindly on runaway spells!$(br2)In addition, with the energies of the patterns occurring without me to guide them, any mishap will cause the remaining actions to become too unstable and immediately unravel.", - + "for_each.1": "Remove a list of patterns and a list from the stack, then cast the given pattern over each element of the second list.", "for_each.2": "More specifically, for each element in the second list, it will:$(li)Create a new stack, with everything on the current stack plus that element$(li)Draw all the patterns in the first list$(li)Save all the iotas remaining on the stack to a list$(br)Then, after all is said and done, pushes the list of saved iotas onto the main stack.$(br2)No wonder all the practitioners of this art go mad.", - + "halt.1": "This pattern forcibly halts a _Hex. This is mostly useless on its own, as I could simply just stop writing patterns, or put down my staff.", "halt.2": "But when combined with $(l:patterns/meta#hexcasting:eval)$(action)Hermes'/$ or $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambits/$, it becomes $(italics)far/$ more interesting. Those patterns serve to 'contain' that halting, and rather than ending the entire _Hex, those gambits end instead. This can be used to cause $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$ not to operate on every iota it's given. An escape from the madness, as it were.", - + "eval/cc.1": "Cast a pattern or list of patterns from the stack exactly like $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, except that a unique \"Jump\" iota is pushed to the stack beforehand. ", "eval/cc.2": "When the \"Jump\"-iota is executed, it'll skip the rest of the patterns and jump directly to the end of the pattern list.$(p)While this may seem redundant given $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit/$ exists, this allows you to exit $(italic)nested/$ $(l:patterns/meta#hexcasting:eval)$(action)Hermes'/$ invocations in a controlled way, where Charon only allows you to exit one.$(p)The \"Jump\" iota will apparently stay on the stack even after execution is finished... better not think about the implications of that.", - + "thanatos.1": "Adds the number of patterns a _Hex is still capable of evaluating to the stack. This is reduced by one for each pattern cast by the _Hex." }, - + circle_patterns: { disclaimer: "These patterns must be cast from a $(l:greatwork/spellcircles)$(item)Spell Circle/$; trying to cast them through a $(l:items/staff)$(item)Staff/$ will fail rather spectacularly.", - + "circle/impetus_pos": "Returns the position of the $(l:greatwork/impetus)$(item)Impetus/$ of this spell circle.", "circle/impetus_dir": "Returns the direction the $(l:greatwork/impetus)$(item)Impetus/$ of this spell circle is facing as a unit vector.", "circle/bounds/min": "Returns the position of the lower-north-west corner of the bounds of this spell circle.", "circle/bounds/max": "Returns the position of the upper-south-east corner of the bounds of this spell circle.", }, - + akashic_patterns: { "akashic/read": "Read the iota associated with the given pattern out of the $(l:greatwork/akashiclib)$(item)Akashic Library/$ with its $(l:greatwork/akashiclib)$(item)Record/$ at the given position. This has no range limit. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", "akashic/write": "Associate the iota with the given pattern in the $(l:greatwork/akashiclib)$(item)Akashic Library/$ with its $(l:greatwork/akashiclib)$(item)Record/$ at the given position. This $(italic)does/$ have a range limit. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", }, - + // Normal Spells itempicking: { @@ -1807,24 +1806,24 @@ "2": "More specifically:$(li)First, the spell will search for the first valid item in my hotbar to the $(italic)right of my $(l:items/staff)$(item)staff/$, wrapping around at the right-hand side, and starting at the first slot if my $(l:items/staff)$(item)staff/$ is in my off-hand.$(li)Second, the spell will draw that item from as $(italic)far back in my inventory/$ as possible, prioritizing the main inventory over the hotbar.", "3": "This way, I can keep a \"chooser\" item on my hotbar to tell the spell what to use, and fill the rest of my inventory with that item to keep the spell well-stocked.", }, - + basic_spell: { "explode.1": "Remove a number and vector from the stack, then create an explosion at the given location with the given power.", "explode.2": "A power of 3 is about as much as a Creeper's blast; 4 is about as much as a TNT blast. Nature refuses to give me a blast of more than 10 power, though.$(br2)Strangely, this explosion doesn't seem to harm me. Perhaps it's because $(italic)I/$ am the one exploding?$(br2)Costs a negligible amount at power 0, plus 3 extra $(l:items/amethyst)$(item)Amethyst Dust/$ per point of explosion power.", - + "explode.fire.1": "Remove a number and vector from the stack, then create a fiery explosion at the given location with the given power.", "explode.fire.2": "Costs one $(l:items/amethyst)$(item)Amethyst Dust/$, plus about 3 extra $(l:items/amethyst)$(item)Amethyst Dust/$s per point of explosion power. Otherwise, the same as $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$, except with fire.", - + add_motion: "Remove an entity and direction from the stack, then give a shove to the given entity in the given direction. The strength of the impulse is determined by the length of the vector.$(br)Costs units of $(l:items/amethyst)$(item)Amethyst Dust/$ equal to the square of the length of the vector, plus one for every Impulse except the first targeting an entity.", blink: "Remove an entity and length from the stack, then teleport the given entity along its look vector by the given length.$(br)Costs about one $(l:items/amethyst)$(item)Amethyst Shard/$ per two blocks travelled.", - + "beep.1": "Remove a vector and two numbers from the stack. Plays an $(thing)instrument/$ defined by the first number at the given location, with a $(thing)note/$ defined by the second number. Costs a negligible amount of _media.", "beep.2": "There appear to be 16 different $(thing)instruments/$ and 25 different $(thing)notes/$. Both are indexed by zero.$(br2)These seem to be the same instruments I can produce with a $(item)Note Block/$, though the reason for each instrument's number being what it is eludes me.$(br2)Either way, I can find the numbers I need to use by inspecting a $(item)Note Block/$ through a $(l:items/lens)$(item)Scrying Lens/$.", }, - + blockworks: { place_block: "Remove a location from the stack, then pick a block item and place it at the given location.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$.", - break_block: "Remove a location from the stack, then break the block at the given location. This spell can break nearly anything a Diamond Pickaxe can break.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$.", + break_block: "Remove a location from the stack, then break the block at the given location. This spell can break nearly anything a Diamond Pickaxe can break.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust, or a negligible amount if breaking a $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Conjured Block/$ or $(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)Conjured Light/$.", create_water: "Summon a block of water (or insert up to a bucket's worth) into a block at the given position. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", destroy_water: "Drains either a liquid container at, or a body of liquid around, the given position. Costs about two $(l:items/amethyst)$(item)Charged Amethyst/$.", conjure_block: "Conjure an ethereal, but solid, block that sparkles with my pigment at the given position. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", @@ -1834,98 +1833,100 @@ ignite: "Start a fire on top of the given location, as if a $(item)Fire Charge/$ was applied. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", extinguish: "Extinguish blocks in a large area. Costs about six $(l:items/amethyst)$(item)Amethyst Dust/$.", }, - + nadirs: { "1": "This family of spells all impart a negative potion effect upon an entity. They all take an entity, the recipient, and one or two numbers, the first being the duration and the second, if present, being the potency (starting at 1).$(br2)Each one has a \"base cost;\" the actual cost is equal to that base cost, multiplied by the potency squared.", "2": "According to certain legends, these spells and their sisters, the $(l:patterns/great_spells/zeniths)$(action)Zeniths/$, were \"[...] inspired by a world near to this one, where powerful wizards would gather magic from the land and hold duels to the death. Unfortunately, much was lost in translation...\"$(br2)Perhaps that is the reason for their peculiar names.", - + "potion/weakness": "Inflicts $(thing)weakness/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 10 seconds.", "potion/levitation": "Inflicts $(thing)levitation/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 5 seconds.", "potion/wither": "Inflicts $(thing)withering/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per second.", "potion/poison": "Inflicts $(thing)poison/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 3 seconds.", "potion/slowness": "Inflicts $(thing)slowness/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 5 seconds.", }, - + hexcasting_spell: { basics: "These three spells each create an $(l:items/hexcasting)$(thing)item that casts a _Hex./$$(br)They all require me to hold the empty item in my off-hand, and require two things: the list of patterns to be cast, and an entity representing a dropped stack of $(l:items/amethyst)$(item)Amethyst/$ to form the item's battery.$(br2)See $(l:items/hexcasting)this entry/$ for more information.", "craft/cypher": "Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", "craft/trinket": "Costs about five $(l:items/amethyst)$(item)Charged Amethysts/$.", "craft/artifact": "Costs about ten $(l:items/amethyst)$(item)Charged Amethysts/$.", - + "recharge.1": "Recharge a _media-containing item in my other hand. Costs about one $(l:items/amethyst)$(item)Amethyst Shard/$.", "recharge.2": "This spell is cast in a similar method to the crafting spells; an entity representing a dropped stack of $(l:items/amethyst)$(item)Amethyst/$ is provided, and recharges the _media battery of the item in my other hand.$(br2)This spell $(italic)cannot/$ recharge the item farther than its original battery size.", - + "erase.1": "Clear a _Hex-containing item in my other hand. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", "erase.2": "The spell will also void all the _media stored inside the item, releasing it back to Nature and returning the item to a perfectly clean slate. This way, I can re-use $(l:items/hexcasting)$(item)Trinkets/$ I have put an erroneous spell into, for example.$(br2)This also works to clear a $(l:items/focus)$(item)Focus/$ or $(l:items/spellbook)$(item)Spellbook/$ page, unsealing them in the process.", }, - + sentinels: { "1": "$(italic)Hence, away! Now all is well,$(br)One aloof stand sentinel./$$(br2)A $(l:patterns/spells/sentinels)$(thing)Sentinel/$ is a mysterious force I can summon to assist in the casting of _Hexes, like a familiar or guardian spirit. It appears as a spinning geometric shape to my eyes, but is invisible to everyone else.", "2": "It has several interesting properties:$(li)It does not appear to be tangible; no one can touch it.$(li)Only my _Hexes can interact with it.$(li)Once summoned, it stays in place until banished.$(li)I am always able to see it if I'm close enough, even through solid objects.", - + "sentinel/create": "Summons my $(l:patterns/spells/sentinels)$(thing)sentinel/$ at the given position. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", "sentinel/destroy": "Banish my $(l:patterns/spells/sentinels)$(thing)sentinel/$, and remove it from the world. Costs a negligible amount of _media.", "sentinel/get_pos": "Add the position of my $(l:patterns/spells/sentinels)$(thing)sentinel/$ to the stack, or $(l:casting/influences)$(thing)Null/$ if it isn't summoned. Costs a negligible amount of _media.", "sentinel/wayfind": "Transform the position vector on the top of the stack into a unit vector pointing from that position to my $(l:patterns/spells/sentinels)$(thing)sentinel/$, or $(l:casting/influences)$(thing)Null/$ if it isn't summoned. Costs a negligible amount of _media.", }, - - colorize: "I must be holding a $(l:items/pigments)$(item)Pigment/$ in my other hand to cast this spell. When I do, it will consume the dye and permanently change my mind's coloration (at least, until I cast the spell again). Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + colorize: "I must be holding a $(l:items/pigments)$(item)Pigment/$ in my other hand to cast this spell. When I do, it will consume the dye and permanently change my mind's coloration (at least, until I cast the spell again). Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + + cycle_variant: "Certain items I create seem oddly receptive to the influence of _media. By holding a $(l:items/hexcasting)$(item)Cypher/$, $(l:items/hexcasting)$(item)Trinket/$, $(l:items/hexcasting)$(item)Artifact/$, $(l:items/focus)$(item)Focus/$, or $(l:items/spellbook)$(item)Spellbook/$ in my other hand, I can use this spell to change the appearance of the item. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + flights: { "1": "Although it seems that true, limitless flight is out of my grasp, I have nonetheless found some methods of holding one in the sky, each with their respective drawbacks.$(br2)All forms produce a shimmer of excess _media; as the spell gets closer to ending, the sparks are shot through with more red and black.", "2": "Other forms of flight do exist, of course. For example, a combination of $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse/$ and $(l:patterns/spells/nadirs#hexcasting:potion/levitation)$(action)Blue Sun's Nadir/$ has been used since antiquity for a flight of sorts.$(br2)I've also heard tell of a thin membrane worn on the back that allows the ability to glide. From my research, I believe the Great spell $(l:patterns/great_spells/altiora)$(action)Altiora/$ may be used to mimic it.", - + "range.1": "A flight limited in its range.", "range.2": "The second argument is a horizontal radius, in meters, in which the spell is stable. Moving outside of that radius will end the spell, dropping me out of the sky. As long as I stay inside the safe zone, however, the spell lasts indefinitely. An additional shimmer of _media marks the origin point of the safe zone. $(br2)Costs about 1 $(l:items/amethyst)$(item)Amethyst Dust/$ per meter of safety.", - + "time.1": "A flight limited in its duration.", "time.2": "The second argument is an amount of time in seconds for which the spell is stable. After that time, the spell ends and I am dropped from the sky. $(br2)It is relatively expensive at about 1 $(l:items/amethyst)$(item)Charged Crystal/$ per second of flight; I believe it is best suited for travel.", }, - + create_lava: { "1": "Summon a block of lava (or insert up to a bucket's worth) into a block at the given position. Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", "2": "It may be advisable to keep my knowledge of this spell secret. A certain faction of botanists get... touchy about it, or so I've heard.$(br2)Well, no one said tracing the deep secrets of the universe was going to be an easy time.", }, - + weather_manip: { lightning: "I command the heavens! This spell will summon a bolt of lightning to strike the earth where I direct it. Costs about three $(l:items/amethyst)$(item)Amethyst Shards/$.", summon_rain: "I control the clouds! This spell will summon rain across the world I cast it upon. Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$. Does nothing if it is already raining.", dispel_rain: "A counterpart to summoning rain. This spell will dispel rain across the world I cast it upon. Costs about one $(l:items/amethyst)$(item)Amethyst Shard/$. Does nothing if the skies are already clear.", }, - + altiora: { "1": "Summon a sheaf of _media about me in the shape of wings, endowed with enough substance to allow gliding.", "2": "Using them is identical to using $(item)Elytra/$; the target (which must be a player) is lofted into the air, after which pressing $(k:jump) will deploy the wings. The wings are fragile, and break upon touching any surface. Longer flights may benefit from $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse/$ or (for the foolhardy) $(item)Fireworks/$.$(br2)Costs about one $(l:items/amethyst)$(item)Charged Crystal/$.", }, - + "teleport/great": { "1": "Far more powerful than $(l:patterns/spells/basic#hexcasting:blink)$(action)Blink/$, this spell lets me teleport nearly anywhere in the entire world! There does seem to be a limit, but it is $(italic)much/$ greater than the normal radius of influence I am used to.", "2": "The entity will be teleported by the given vector. Curiously, this vector seems to be an offset, not an absolute position in the world; for example, if I use $(l:patterns/consts#hexcasting:const/vec/x)$(action)Vector Reflection +X/$, the entity will end up precisely one block east of its original position. No matter the distance, it always seems to cost about ten $(l:items/amethyst)$(item)Charged Amethyst/$.$(br2)The transference is not perfect, and it seems when teleporting something as complex as a player, their inventory doesn't $(italic)quite/$ stay attached, and tends to splatter everywhere at the destination. In addition, the target will be forcibly removed from anything inanimate they are riding or sitting on ... but I've read scraps that suggest animals can come along for the ride, so to speak.", }, - + zeniths: { "1": "This family of spells all impart a positive potion effect upon an entity, similar to the $(l:patterns/spells/nadirs)$(action)Nadirs/$. However, these have their _media costs increase with the $(italic)cube/$ of the potency.", - + "potion/regeneration": "Bestows $(thing)regeneration/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per second.", "potion/night_vision": "Bestows $(thing)night vision/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 5 seconds.", "potion/absorption": "Bestows $(thing)absorption/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per second.", "potion/haste": "Bestows $(thing)haste/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 3 seconds.", "potion/strength": "Bestows $(thing)strength/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 3 seconds.", }, - + greater_sentinel: { "1": "Summon a greater version of my $(l:patterns/spells/sentinels)$(thing)Sentinel/$. Costs about two $(l:items/amethyst)$(item)Amethyst Dust/$.", "2": "The stronger $(l:patterns/spells/sentinels)$(thing)sentinel/$ acts like the normal one I can summon without the use of a Great Spell, if a little more visually interesting. However, the range in which my spells can work is extended to a small region around my greater $(l:patterns/spells/sentinels)$(thing)sentinel/$, about 16 blocks. In other words, no matter where in the world I am, I can interact with things around my $(l:patterns/spells/sentinels)$(thing)sentinel/$ (the mysterious forces of chunkloading notwithstanding).", }, - + make_battery: { "1": "Infuse a bottle with _media to form a $(l:items/phials)$(item)Phial./$", "2": "Similarly to the spells for $(l:patterns/spells/hexcasting)$(action)Crafting Casting Items/$, I must hold a $(item)Glass Bottle/$ in my other hand, and provide the spell with a dropped stack of $(l:items/amethyst)$(item)Amethyst/$. See $(l:items/phials)this page/$ for more information.$(br2)Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", }, - + "brainsweep_spell.1": "I cannot make heads or tails of this spell... To be honest, I'm not sure I want to know what it does.", - + lore: { cardamom1: { "1": "$(italic)Full title: Letter from Cardamom Steles to Her Father, #1/$$(br2)Dear Papa,$(br)Every day it seems I have more reason to thank you for saving up to send me to the Grand Library. The amount I am learning is incredible! I feel I don't have the skill with words needed to express myself fully... it is wonderful to be here.", @@ -1937,7 +1938,7 @@ "7": "As a student, I am entitled to send one letter by Akashic post every three months, free of charge. Unfortunately, you know how thin my moneybags are ... so I am afraid this offer is the only method I may communicate with you. I will of course appreciate immensely if you manage to scrounge together the money to send a letter back, but it seems our communications may be limited. I hate to be cut off from you so, but the skills I gain here will be more than repayment. Imagine, I will be the first member of our family to be anything other than a farmer!", "8": "So, I suppose I will write again in three months' time.$(br2)Yours,$(br)-- Cardamom Steles", }, - + cardamom2: { "1": "$(italic)Full title: Letter from Cardamom Steles to Her Father, #2/$$(br2)Dear Papa,$(br)... Goodness, what an ordeal it is to try to summarize the last three months into a short letter. Such a cruel task set before me by this miracle I receive entirely for free! Woe is me.", "2": "My studies with the Geology Corps have been progressing smoothly. We have gone on more expeditions, deeper into the earth, to where the smooth gray stone makes way to a hard, flaky slate. It creates such an awful, choking dust under your feet... it's incredible what hostility there is below all of our feet all the time, even disregarding the creatures of the dark. (I have had one or two encounters with them, but I know how you shudder to think of me having to fight for my life, so I will not write of them.)", @@ -1947,7 +1948,7 @@ "6": "It is quite possible I was unable to sense it on the amethyst in the cave due to the stress of being undergound-- my hands were shaking the one time I managed to touch some, and the feeling is very light --but it does not seem the same to me. The light reflects slightly differently.$(br2)I suppose if I ever manage to get my hands on a crystal of amethyst outside of a cave, I will ask Amanita to see if she can cast a spell with it. Every time we meet she seems to have some new fantastic trick.", "7": "Just last week she suspended me in the air supported by nothing at all! It is an immensely strange feeling to have your body tingling and lighter than air with your clothing still the same weight... I am just glad she tugged me over my bed before the effect ran out.$(br2)Yours,$(br)-- Cardamom Steles", }, - + cardamom3: { "1": "$(italic)Full title: Letter from Cardamom Steles to her father, #3, part 1/2/$$(br2)Dear Papa,$(br)Two very peculiar things have happened since I last wrote.$(br2)Firstly, the professor in charge of the entry-level Hexcasting Corps students has disappeared. Nobody knows where he has gone. His office and living quarters were found locked, but still in their usual state of disarray.", "2": "Even more peculiarly, any attempts by the students of the Grand to rouse the administrative portions of the gnarled bureaucracy have been very firmly rejected. Even other professors seem reluctant to talk about him.$(br2)As you might imagine, Amanita is sorely distressed. Whatever replacement professors the Grand managed to dredge up have none of the old professor's tact or skill with beginners.", @@ -1962,7 +1963,7 @@ "11": "As we left, I couldn't help but notice that on the surfaces of those dark, scored places we left unmined, there seemed to be the faintest buds of new crystal, like they were somehow growing out of them. Everything I had learned about the geology of crystals said they took thousands of years to grow, but here there was new growth in less than a day. I suppose the prefects' warnings against breaking those spots were warranted, at least.", "12": "Our journey back to the surface was uneventful, and we got back to our tents just as the sun was setting-- My apologies, I am nearly out of paper for this letter. There's only so much you can write on one Akashic letter ... This tale is worth purchasing another letter for. I'll send them both at once, so they should arrive together.$(br2)Yours,$(br)-- Cardamom Steles", }, - + cardamom4: { "1": "$(italic)Full title: Letter from Cardamom Steles to her father, #3, part 2/2/$$(br2)Dear Papa,$(br)As I was saying, I was running out of paper to write my story, so the rest of it is in this letter. We made it back to camp just as the sun was setting. And that night was the most horrible event of the whole strange outing.", "2": "I had gotten up in the middle of the night to relieve myself. The moon was covered with clouds, and I confess I got lost in the winds of the forest and could not find the way back to the camp. Fearing the monsters of the night, I decided I would find my way to the village and see if I could find a bed there. At the least, I would be protected there.", @@ -1975,7 +1976,7 @@ "9": "She also mentioned something interesting: apparently media can be used in a similar way to true amethyst in those niche glasses I mentioned a few letters ago. The physical manner in which they both crystallise happens to be nearly identical, and it has nothing to do with media's magical properties, or so she says.$(br2)I chose not to tell her of the village full of monsters.", "10": "I know how tight money is for you, and how expensive it is to send a letter all the way back to the Grand, but I beg of you, please send a word of advice back. I am greatly distraught, and reading your words would do me much good.$(br2)Yours,$(br)-- Cardamom Steles", }, - + cardamom5: { "1": "$(italic)Full title: Letter from Cardamom Steles to her father, #4/$$(br2)Amanita has disappeared.$(br2)I don't know where she has gone, Papa. The last I saw her was over dinner, and she had just spoken to someone about the disappearances, and then--", "2": "then-- then she was gone too. And no one speaks of her, and I am so so scared, Papa, do they all know? Everyone must have a friend who's just $(italic)vanished/$, into thin air, into non-being.$(br2)Where did they $(italic)go/$?", @@ -1983,7 +1984,7 @@ "4": "This letter has taken so much courage to write, and I don't have the courage to tell people myself, but if no one here can hold the knowledge I hope and pray you can send the word out... it's a vain hope for this to spread from somewhere as backwater as Brackenfalls, but please, please, do your best. Remember them, Papa... Amanita Libera, Jasmine Ward, Theodore Cha... please, remember them... and please forgive my cowardice, that I foist the responsibility onto you.", "5": "i can no longer write, my hands shake so much, please, rescue us.", }, - + inventory: { "1": "Cell 39, Restoration Log #72, Detainment Center Beta$(br2)Prisoner Name: Raphael Barr$(br)Crime: Knowledge of Project Wooleye$(br)Reason for Cell Vacancy: Death$(br)Additional notes: The following letter was scrawled over most of the wall space.", "2": "I see hexagons when I close my eyes.$(br2)The patterns, they invade the space between my eyes and my eyelids, my mind, my dreams. I sparkle in and out of lucidity, like a crystal dangling from a string, sometimes catching the light, sometimes consumed by it.", @@ -1999,7 +2000,7 @@ "12": "they're going to kill everyone n the whole world aren't they the grand needs to eat just as much as i ... when did i lasst eat$(br2)everyone else has to eat and they cannot do that if all the farmers in the world are empty and all the knowledge of farming is underground or at least someone else is going to Find out and melt their smug faces to wax", "13": "maybe wake up someday and wonder about all the thngs we left them and wonder why there are million miles of tunnels underground with no one smart enough to mine them$(br2)i can see them reading this . they ... will be too far gone to care", }, - + experiment1: { "1": "$(italic)I only managed to find these five entries from this log./$$(br2)Detonation #26$(li)Location: Carpenter's North$(li)Population: 174$(li)Nodes Formed: 3$(li)Node Distance from Epicenter: 55-80m vertical, 85-156m horizontal$(li)Media Generation: 1320 uθ/min", "2": "Detonation #27$(li)Location: Brackenfalls$(li)Population: 79$(li)Nodes Formed: 1$(li)Node Distance from Epicenter: 95m vertical, 67m horizontal$(li)Media Generation: 412 uθ/min", @@ -2008,7 +2009,7 @@ "5": "Detonation #30$(li)Location: Boiling Brook$(li)Population: 231$(li)Nodes Formed: 4$(li)Node Distance from Epicenter: 61-89m vertical, 78-191m horizontal$(li)Media Generation: 1862 uθ/min", "6": "Conclusion: approx 60 needed for one node. Too few consumes them but does not provide enough energy for node formation. Little correlation between input count and breadth/depth.$(br2)Effects on inhabitants still consistently more severe than with single-target testing, especially the physical effects.", }, - + experiment2: { "1": "$(italic)These documents were heavily redacted. I have copied the readable text from them here./$$(br2)Subject #1 \"A.E.\"$(br)Stopped struggling immediately after procedure. Facial expression and limbs slack, but can stand unassisted. When left unattended, absently pantomimes actions commonly done in previous profession (groundskeeping).", "2": "Heartrate high immediately after procedure, but this is inconclusive due to state of fear immediately before. Resulting bud produced 35 uθ/min.$(br)...$(br)Subject #4 \"P.I.\"$(br)Psychological tests run on P.I. Subject has object permanence, spatial awareness, basic numerical reasoning. Difficulty learning new tasks. $(br2) ...", @@ -2017,18 +2018,18 @@ }, }, // ^ lore - + interop: { "1": "The art of _Hexcasting is versatile. If I find that my world has been $(italic)modified/$ by certain other powers, it's possible that I may use _Hexcasting in harmony and combination with them.", "2": "I should keep in mind, however, that Nature seems to have paid less attention in crafting these aspects of my art; strange behavior and bugs are to be expected. I'm sure the mod developer will do her best to correct them, but I must remember this is a less important pastime to her.$(br2)I may also find that there are sharp disregards to balance in the costs and effects of the interoperating powers. In such a case I suppose I will have to be responsible and restrain myself from using them.", "3": "Finally, if I find myself interested in the lore and stories of this world, I do not think any notes compiled while examining these interoperations should be considered as anything more than light trifles.", - + gravity: { "1": "I have discovered actions to get and set an entity's gravity. I find them interesting, if slightly nauseating.$(br2)Interestingly, although the $(l:patterns/spells/flight)$(action)Flight/$ spells are limited in range or duration, and manipulate gravity similarly, these are not. It baffles me why... Perhaps the mod developer wanted players to have fun, for once.", get: "Get the main direction gravity pulls the given entity in, as a unit vector. For most entities, this will be down, <0, -1, 0>.", set: "Set the main direction gravity pulls the given entity in. The given vector will be coerced into the nearest axis, as per $(l:patterns/math#hexcasting:coerce_axial)$(action)Axial Purification/$. Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", }, - + pehkui: { "1": "I have discovered methods of changing the size of entities, and querying how much larger or smaller they are than normal.", get: "Get the scale of the entity, as a proportion of their normal size. For most entities, this will be 1.", diff --git a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 index c292598401..1b94caa75f 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 @@ -409,7 +409,6 @@ "death.attack.hexcasting": { overcast: "Разум %s был полноценно поглощён как оплата заклинания.", - shame: "Позор %s!", }, "command.hexcasting": { @@ -895,8 +894,7 @@ disallowed_circle: "был запрещен в кругах заклинаний администраторами сервера", invalid_spell_datum_type: "Пытался использовать значение недопустимого типа в качестве параметра для написания: %s (класс %s). Это ошибка в настройках.", unknown: "возникло исключение (%s). Это ошибка в моде.", - shame: "Как вам не стыдно!", - + invalid_value: { "": "ожидал %s по индексу %s стека, но получил %s", diff --git a/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 index 93afd2a2f2..20c7e04591 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 @@ -409,7 +409,6 @@ "death.attack.hexcasting": { overcast: "%s的意识消散为了能量", - shame: "%s真是可耻!", }, "command.hexcasting": { @@ -900,7 +899,6 @@ disallowed_circle: "已被服务器管理员禁用于法术环", invalid_spell_datum_type: "尝试将某无效类型的值用作SpellDatum:%s(class %s)。这是模组中的bug。", unknown: "抛出异常(%s)。这是模组中的bug。", - shame: "你真是可耻!", invalid_value: { "": "本应在栈下标为%2$s处接受%1$s,而实际接受了%3$s", diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/cyclevariant.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/cyclevariant.json new file mode 100644 index 0000000000..bcbb7d9de7 --- /dev/null +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/cyclevariant.json @@ -0,0 +1,18 @@ +{ + "name": "hexcasting.action.hexcasting:cycle_variant", + "category": "hexcasting:patterns/spells", + "icon": "minecraft:smithing_table", + "sortnum": 6, + "advancement": "hexcasting:root", + "read_by_default": true, + "pages": [ + { + "type": "hexcasting:pattern", + "op_id": "hexcasting:cycle_variant", + "anchor": "hexcasting:cycle_variant", + "input": "", + "output": "", + "text": "hexcasting.page.cycle_variant" + } + ] +} diff --git a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/flight.json b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/flight.json index 5f06e65e25..f3f74392a6 100644 --- a/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/flight.json +++ b/Common/src/main/resources/assets/hexcasting/patchouli_books/thehexbook/en_us/entries/patterns/spells/flight.json @@ -3,7 +3,7 @@ "category": "hexcasting:patterns/spells", "icon": "minecraft:feather", "advancement": "hexcasting:root", - "sortnum": 6, + "sortnum": 7, "read_by_default": true, "pages": [ "hexcasting.page.flights.1", diff --git a/Common/src/main/resources/assets/hexcasting/sounds/abacus1.ogg b/Common/src/main/resources/assets/hexcasting/sounds/abacus1.ogg index a9a9c04f02..99dacb396c 100644 Binary files a/Common/src/main/resources/assets/hexcasting/sounds/abacus1.ogg and b/Common/src/main/resources/assets/hexcasting/sounds/abacus1.ogg differ diff --git a/Common/src/main/resources/assets/hexcasting/sounds/abacus2.ogg b/Common/src/main/resources/assets/hexcasting/sounds/abacus2.ogg index 42b0dd7639..8dc3e5c269 100644 Binary files a/Common/src/main/resources/assets/hexcasting/sounds/abacus2.ogg and b/Common/src/main/resources/assets/hexcasting/sounds/abacus2.ogg differ diff --git a/Common/src/main/resources/assets/hexcasting/sounds/abacus3.ogg b/Common/src/main/resources/assets/hexcasting/sounds/abacus3.ogg index b83de311da..89be48b9c0 100644 Binary files a/Common/src/main/resources/assets/hexcasting/sounds/abacus3.ogg and b/Common/src/main/resources/assets/hexcasting/sounds/abacus3.ogg differ diff --git a/Common/src/main/resources/assets/hexcasting/sounds/abacus_shake.ogg b/Common/src/main/resources/assets/hexcasting/sounds/abacus_shake.ogg index 6e40a78f92..e3fa9ba8d2 100644 Binary files a/Common/src/main/resources/assets/hexcasting/sounds/abacus_shake.ogg and b/Common/src/main/resources/assets/hexcasting/sounds/abacus_shake.ogg differ diff --git a/Common/src/main/resources/assets/hexcasting/sounds/add_segment.ogg b/Common/src/main/resources/assets/hexcasting/sounds/add_segment.ogg index 4ecc75109c..f30e728b32 100644 Binary files a/Common/src/main/resources/assets/hexcasting/sounds/add_segment.ogg and b/Common/src/main/resources/assets/hexcasting/sounds/add_segment.ogg differ diff --git a/Common/src/main/resources/assets/hexcasting/sounds/cast/hermes.ogg b/Common/src/main/resources/assets/hexcasting/sounds/cast/hermes.ogg index 8d128b5d14..bbe25305ad 100644 Binary files a/Common/src/main/resources/assets/hexcasting/sounds/cast/hermes.ogg and b/Common/src/main/resources/assets/hexcasting/sounds/cast/hermes.ogg differ diff --git a/Common/src/main/resources/assets/hexcasting/sounds/cast/thoth.ogg b/Common/src/main/resources/assets/hexcasting/sounds/cast/thoth.ogg index f46de4e630..7a4011d4b1 100644 Binary files a/Common/src/main/resources/assets/hexcasting/sounds/cast/thoth.ogg and b/Common/src/main/resources/assets/hexcasting/sounds/cast/thoth.ogg differ diff --git a/Fabric/src/generated/resources/.cache/19f2b40f78e342d65a8cb499a41e3fcb2eadaca3 b/Fabric/src/generated/resources/.cache/19f2b40f78e342d65a8cb499a41e3fcb2eadaca3 index 4fa802b56f..e5e85cf919 100644 --- a/Fabric/src/generated/resources/.cache/19f2b40f78e342d65a8cb499a41e3fcb2eadaca3 +++ b/Fabric/src/generated/resources/.cache/19f2b40f78e342d65a8cb499a41e3fcb2eadaca3 @@ -1,58 +1,58 @@ -// 1.20.1 2024-08-21T16:55:57.0203612 Hex Casting/Loot Tables -4efd95d408d050c36ff21b18f3c37116491fef92 data\hexcasting\loot_tables\blocks\directrix\redstone.json -6eecc98b606d7ea5ec6f4c1fa4f63f7c1eba9223 data\hexcasting\loot_tables\blocks\slate_amethyst_bricks.json -a62ffbcec2aa40172e05cd9fcd8e70e295d008e9 data\hexcasting\loot_tables\blocks\edified_fence_gate.json -92331eb19422730ffda0a3e52427a75aa1f7aff2 data\hexcasting\loot_tables\blocks\ancient_scroll_paper_lantern.json -434c2a6d2645e56e9a6ca56249ffa84645558e3b data\hexcasting\loot_tables\blocks\quenched_allay_bricks_small.json -c15d3ced89c882dfe552f84435fcdd560b729567 data\hexcasting\loot_tables\blocks\scroll_paper.json -b706c8a064f717c57104c48ea42aa860b45cf7a4 data\hexcasting\loot_tables\blocks\amethyst_dust_block.json -1a1236e54c24b5aeff05919c73c76151da2cf115 data\hexcasting\loot_tables\blocks\amethyst_sconce.json -95be0cf7f277257671631929462131b6d611119a data\hexcasting\loot_tables\inject\amethyst_cluster.json -5f8d09e8c759d05cf9c2265ae28ea942cfbbe2be data\hexcasting\loot_tables\blocks\edified_pressure_plate.json -147e0739a712a9050856cebcad1757b3f418f647 data\hexcasting\loot_tables\blocks\edified_trapdoor.json -74159c21634679a6ab1dde1c181433db8b31c6ae data\hexcasting\loot_tables\blocks\edified_log_citrine.json -847bc3ead8a88a8f210a24e7732c28d50aa2f5dc data\hexcasting\loot_tables\blocks\edified_planks.json -9905b767be7849e02a8e4ec4170af1bdde4e7fab data\hexcasting\loot_tables\blocks\edified_stairs.json -2ac70e3c3600c88b2544d9755fc634216a7a523c data\hexcasting\loot_tables\blocks\edified_wood.json -2ab674e834184b4e17dc002556d4473cac137445 data\hexcasting\loot_tables\blocks\edified_slab.json -499af9f15cf0a7f16fd2939e5d3af60a8089cc3e data\hexcasting\loot_tables\blocks\slate_bricks.json -1dd4268edf7d6fa247013ab45541c7bfb915eef8 data\hexcasting\loot_tables\blocks\amethyst_bricks_small.json -30f06db8c1ea74c9f4d95474e412336d065ac888 data\hexcasting\loot_tables\blocks\edified_door.json -2c9af74a82ca462e5986354966d5a0a1fd5a2083 data\hexcasting\loot_tables\blocks\slate_tiles.json -601384d888edab27efe4a33027bb557eb7cb6ca2 data\hexcasting\loot_tables\blocks\edified_log_purple.json -b6c23fdde4f2c22c81f008604d5ff1c32ca8eb61 data\hexcasting\loot_tables\blocks\amethyst_tiles.json -849afa706e7479d1c11bb40ae223ae5833e71286 data\hexcasting\loot_tables\blocks\scroll_paper_lantern.json -10cb1b94596ac7131efe3bd5c36c1543ddba9302 data\hexcasting\loot_tables\blocks\impetus\redstone.json -2902c4dae60875a1b2daf0a948a49a3419d8ec9d data\hexcasting\loot_tables\blocks\edified_log.json -c426245d51f1e0fa0db7c4bfb454284d75506c9c data\hexcasting\loot_tables\blocks\quenched_allay_bricks.json -0b734693c926045b60fb515814b7a6695d0295fc data\hexcasting\loot_tables\blocks\impetus\look.json -45dc91d820caa5c421fe6f2afc7f71e45d6acd4d data\hexcasting\loot_tables\blocks\slate_pillar.json -dc4c6d270b8e93d05ac8ddeb1b9dd1d64828ac5d data\hexcasting\loot_tables\blocks\stripped_edified_wood.json -e6ff979aa47877c1b807075c448defd249cd3484 data\hexcasting\loot_tables\blocks\slate_amethyst_pillar.json -ab86e126a704550d3f21c0b43f99fdc2665e4b09 data\hexcasting\loot_tables\blocks\slate_amethyst_tiles.json -7123b1a0469d7bd5bf8a2772182d222bf354df1a data\hexcasting\loot_tables\blocks\slate_bricks_small.json -df5496da8e48b61a171bc7a3936495c016cc002e data\hexcasting\loot_tables\blocks\directrix\empty.json -6c35afda4ca349f3506fe08f86f0afe58a6f2c44 data\hexcasting\loot_tables\blocks\quenched_allay.json -6920654f50532b5e557646e34edc4872339eb79f data\hexcasting\loot_tables\blocks\edified_log_amethyst.json -cf6ff1ed1ee6fdbb05af16468a0a0ced79ac334e data\hexcasting\loot_tables\blocks\amethyst_bricks.json -92528799c8ee13ff26c3c505e4dfb286c30f97c7 data\hexcasting\loot_tables\blocks\akashic_connector.json -a4e0194d8966a24531e43e04437cdb2a96456898 data\hexcasting\loot_tables\blocks\edified_tile.json -49940d1cb2599212e2837d7ed66c6c66e54f80f8 data\hexcasting\loot_tables\blocks\akashic_record.json -1c6b077aae560e780be29e74ddcd4b0ca10ce3cf data\hexcasting\loot_tables\blocks\impetus\empty.json -cc7313cc33609fe1120baa7b4db631eaa29fbba1 data\hexcasting\loot_tables\blocks\citrine_edified_leaves.json -2ad288784b0dc106ace2e6e0a40669f83476c414 data\hexcasting\loot_tables\blocks\slate.json -c81a5cb81141ab1fe09dd5dd3a0968b69dfffbd7 data\hexcasting\loot_tables\blocks\stripped_edified_log.json -45ae0ec668a07aa5b33d491377b2978f69f9f019 data\hexcasting\loot_tables\blocks\edified_panel.json -44658abcf122575878834d276ebcf5d8a6b7b398 data\hexcasting\loot_tables\blocks\aventurine_edified_leaves.json -b19ac49146149555038e6d2e06200d514df1ef43 data\hexcasting\loot_tables\blocks\akashic_bookshelf.json -65fe724d4c4ba8b0ab7d7a11bf37687413d9119d data\hexcasting\loot_tables\blocks\edified_fence.json -d16fa9e366d48646686470c2d1f9bda4db3a1afa data\hexcasting\loot_tables\blocks\ancient_scroll_paper.json -55f265961463a89c243ec8ac1970c70185f064a6 data\hexcasting\loot_tables\blocks\edified_button.json -509ecbb9731e75b63638c6012b2f986f131fd42f data\hexcasting\loot_tables\blocks\slate_amethyst_bricks_small.json -ecaeb4d5703a7aa206627ed38ee71aeb7e93d688 data\hexcasting\loot_tables\blocks\impetus\rightclick.json -bedbc2bd04f79372aedea64214ba2ea49cde9640 data\hexcasting\loot_tables\blocks\amethyst_edified_leaves.json -8ea8fd68719a960c2e132df441564a70c0e376a8 data\hexcasting\loot_tables\blocks\amethyst_pillar.json -9ff760d5db5628328ea9274c98e18a08f1ab983e data\hexcasting\loot_tables\blocks\slate_block.json -7c9c94d5b6b570d25eff32d4fa2ecc1e842e5231 data\hexcasting\loot_tables\blocks\quenched_allay_tiles.json -f1145860d80ff053970b1ad4f3b2f5d9f28e7c73 data\hexcasting\loot_tables\blocks\directrix\boolean.json -8c6c0486170537d73b923a2b9f83722107fc8716 data\hexcasting\loot_tables\blocks\edified_log_aventurine.json +// 1.20.1 2024-08-27T12:42:38.112410929 Hex Casting/Loot Tables +1dd4268edf7d6fa247013ab45541c7bfb915eef8 data/hexcasting/loot_tables/blocks/amethyst_bricks_small.json +601384d888edab27efe4a33027bb557eb7cb6ca2 data/hexcasting/loot_tables/blocks/edified_log_purple.json +2c9af74a82ca462e5986354966d5a0a1fd5a2083 data/hexcasting/loot_tables/blocks/slate_tiles.json +7c9c94d5b6b570d25eff32d4fa2ecc1e842e5231 data/hexcasting/loot_tables/blocks/quenched_allay_tiles.json +ecaeb4d5703a7aa206627ed38ee71aeb7e93d688 data/hexcasting/loot_tables/blocks/impetus/rightclick.json +a4e0194d8966a24531e43e04437cdb2a96456898 data/hexcasting/loot_tables/blocks/edified_tile.json +847bc3ead8a88a8f210a24e7732c28d50aa2f5dc data/hexcasting/loot_tables/blocks/edified_planks.json +92331eb19422730ffda0a3e52427a75aa1f7aff2 data/hexcasting/loot_tables/blocks/ancient_scroll_paper_lantern.json +4efd95d408d050c36ff21b18f3c37116491fef92 data/hexcasting/loot_tables/blocks/directrix/redstone.json +8c6c0486170537d73b923a2b9f83722107fc8716 data/hexcasting/loot_tables/blocks/edified_log_aventurine.json +ab86e126a704550d3f21c0b43f99fdc2665e4b09 data/hexcasting/loot_tables/blocks/slate_amethyst_tiles.json +7123b1a0469d7bd5bf8a2772182d222bf354df1a data/hexcasting/loot_tables/blocks/slate_bricks_small.json +b6c23fdde4f2c22c81f008604d5ff1c32ca8eb61 data/hexcasting/loot_tables/blocks/amethyst_tiles.json +b706c8a064f717c57104c48ea42aa860b45cf7a4 data/hexcasting/loot_tables/blocks/amethyst_dust_block.json +6eecc98b606d7ea5ec6f4c1fa4f63f7c1eba9223 data/hexcasting/loot_tables/blocks/slate_amethyst_bricks.json +b19ac49146149555038e6d2e06200d514df1ef43 data/hexcasting/loot_tables/blocks/akashic_bookshelf.json +9ff760d5db5628328ea9274c98e18a08f1ab983e data/hexcasting/loot_tables/blocks/slate_block.json +2ab674e834184b4e17dc002556d4473cac137445 data/hexcasting/loot_tables/blocks/edified_slab.json +df5496da8e48b61a171bc7a3936495c016cc002e data/hexcasting/loot_tables/blocks/directrix/empty.json +49940d1cb2599212e2837d7ed66c6c66e54f80f8 data/hexcasting/loot_tables/blocks/akashic_record.json +c81a5cb81141ab1fe09dd5dd3a0968b69dfffbd7 data/hexcasting/loot_tables/blocks/stripped_edified_log.json +10cb1b94596ac7131efe3bd5c36c1543ddba9302 data/hexcasting/loot_tables/blocks/impetus/redstone.json +499af9f15cf0a7f16fd2939e5d3af60a8089cc3e data/hexcasting/loot_tables/blocks/slate_bricks.json +147e0739a712a9050856cebcad1757b3f418f647 data/hexcasting/loot_tables/blocks/edified_trapdoor.json +2ad288784b0dc106ace2e6e0a40669f83476c414 data/hexcasting/loot_tables/blocks/slate.json +6c35afda4ca349f3506fe08f86f0afe58a6f2c44 data/hexcasting/loot_tables/blocks/quenched_allay.json +e6ff979aa47877c1b807075c448defd249cd3484 data/hexcasting/loot_tables/blocks/slate_amethyst_pillar.json +55f265961463a89c243ec8ac1970c70185f064a6 data/hexcasting/loot_tables/blocks/edified_button.json +c15d3ced89c882dfe552f84435fcdd560b729567 data/hexcasting/loot_tables/blocks/scroll_paper.json +1c6b077aae560e780be29e74ddcd4b0ca10ce3cf data/hexcasting/loot_tables/blocks/impetus/empty.json +dc4c6d270b8e93d05ac8ddeb1b9dd1d64828ac5d data/hexcasting/loot_tables/blocks/stripped_edified_wood.json +a62ffbcec2aa40172e05cd9fcd8e70e295d008e9 data/hexcasting/loot_tables/blocks/edified_fence_gate.json +cc7313cc33609fe1120baa7b4db631eaa29fbba1 data/hexcasting/loot_tables/blocks/citrine_edified_leaves.json +6920654f50532b5e557646e34edc4872339eb79f data/hexcasting/loot_tables/blocks/edified_log_amethyst.json +849afa706e7479d1c11bb40ae223ae5833e71286 data/hexcasting/loot_tables/blocks/scroll_paper_lantern.json +9905b767be7849e02a8e4ec4170af1bdde4e7fab data/hexcasting/loot_tables/blocks/edified_stairs.json +92528799c8ee13ff26c3c505e4dfb286c30f97c7 data/hexcasting/loot_tables/blocks/akashic_connector.json +45dc91d820caa5c421fe6f2afc7f71e45d6acd4d data/hexcasting/loot_tables/blocks/slate_pillar.json +1a1236e54c24b5aeff05919c73c76151da2cf115 data/hexcasting/loot_tables/blocks/amethyst_sconce.json +74159c21634679a6ab1dde1c181433db8b31c6ae data/hexcasting/loot_tables/blocks/edified_log_citrine.json +30f06db8c1ea74c9f4d95474e412336d065ac888 data/hexcasting/loot_tables/blocks/edified_door.json +95be0cf7f277257671631929462131b6d611119a data/hexcasting/loot_tables/inject/amethyst_cluster.json +bedbc2bd04f79372aedea64214ba2ea49cde9640 data/hexcasting/loot_tables/blocks/amethyst_edified_leaves.json +44658abcf122575878834d276ebcf5d8a6b7b398 data/hexcasting/loot_tables/blocks/aventurine_edified_leaves.json +cf6ff1ed1ee6fdbb05af16468a0a0ced79ac334e data/hexcasting/loot_tables/blocks/amethyst_bricks.json +45ae0ec668a07aa5b33d491377b2978f69f9f019 data/hexcasting/loot_tables/blocks/edified_panel.json +5f8d09e8c759d05cf9c2265ae28ea942cfbbe2be data/hexcasting/loot_tables/blocks/edified_pressure_plate.json +c426245d51f1e0fa0db7c4bfb454284d75506c9c data/hexcasting/loot_tables/blocks/quenched_allay_bricks.json +0b734693c926045b60fb515814b7a6695d0295fc data/hexcasting/loot_tables/blocks/impetus/look.json +d16fa9e366d48646686470c2d1f9bda4db3a1afa data/hexcasting/loot_tables/blocks/ancient_scroll_paper.json +2ac70e3c3600c88b2544d9755fc634216a7a523c data/hexcasting/loot_tables/blocks/edified_wood.json +509ecbb9731e75b63638c6012b2f986f131fd42f data/hexcasting/loot_tables/blocks/slate_amethyst_bricks_small.json +2902c4dae60875a1b2daf0a948a49a3419d8ec9d data/hexcasting/loot_tables/blocks/edified_log.json +434c2a6d2645e56e9a6ca56249ffa84645558e3b data/hexcasting/loot_tables/blocks/quenched_allay_bricks_small.json +65fe724d4c4ba8b0ab7d7a11bf37687413d9119d data/hexcasting/loot_tables/blocks/edified_fence.json +f1145860d80ff053970b1ad4f3b2f5d9f28e7c73 data/hexcasting/loot_tables/blocks/directrix/boolean.json +8ea8fd68719a960c2e132df441564a70c0e376a8 data/hexcasting/loot_tables/blocks/amethyst_pillar.json diff --git a/Fabric/src/generated/resources/.cache/2ba8da2cf2d44ff18dc72cc891b094eca6836a5c b/Fabric/src/generated/resources/.cache/2ba8da2cf2d44ff18dc72cc891b094eca6836a5c index 043f40e911..d7f56c26ff 100644 --- a/Fabric/src/generated/resources/.cache/2ba8da2cf2d44ff18dc72cc891b094eca6836a5c +++ b/Fabric/src/generated/resources/.cache/2ba8da2cf2d44ff18dc72cc891b094eca6836a5c @@ -1,25 +1,25 @@ -// 1.20.1 2024-08-21T16:55:57.0223613 Hex Casting/Tags for minecraft:item -5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data\minecraft\tags\items\wooden_slabs.json -fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data\minecraft\tags\items\wooden_doors.json -37cff4ce449b8069b59b2327d78e073fc026d348 data\minecraft\tags\items\wooden_pressure_plates.json -5928bad07d3872bb60f29ef4f3c885c8e1967c20 data\hexcasting\tags\items\phial_base.json -e186f43ed06770e698c886691f91b2c6acdb5a2a data\hexcasting\tags\items\seal_materials.json -38d781b60c5c37dc025d4c7e9ec5aa680f2a5835 data\c\tags\items\gems.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data\minecraft\tags\items\logs_that_burn.json -5f3b600b4fd98744bd08c993ce7bcb9c2f195cd2 data\minecraft\tags\items\leaves.json -4461ef6db41a675fd077dd833cfd0ea537e755be data\c\tags\items\amethyst_dusts.json -5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data\minecraft\tags\items\wooden_trapdoors.json -5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data\minecraft\tags\items\slabs.json -e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data\minecraft\tags\items\planks.json -20183cd61968ff6548df2dde1100b6378d68d64b data\minecraft\tags\items\wooden_buttons.json -9d18fb7a889031a704ca0e553600e1d6f8c3759d data\hexcasting\tags\items\directrices.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data\hexcasting\tags\items\edified_logs.json -5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data\minecraft\tags\items\trapdoors.json -e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data\hexcasting\tags\items\edified_planks.json -c72a147bc65d26424df199388969ebd11119aed3 data\hexcasting\tags\items\brainswept_circle_components.json -fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data\minecraft\tags\items\doors.json -bdb90cee0e88e02f0b98f12d5dd212adfaca9afd data\hexcasting\tags\items\impeti.json -20183cd61968ff6548df2dde1100b6378d68d64b data\minecraft\tags\items\buttons.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data\minecraft\tags\items\logs.json -24145229528668829a1bcecf18a6377ebd07ccf8 data\hexcasting\tags\items\grants_root_advancement.json -30780136e6469a01369d7e278998edb6d7f6a16b data\hexcasting\tags\items\staves.json +// 1.20.1 2024-08-27T12:42:38.116625477 Hex Casting/Tags for minecraft:item +5928bad07d3872bb60f29ef4f3c885c8e1967c20 data/hexcasting/tags/items/phial_base.json +fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data/minecraft/tags/items/wooden_doors.json +fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data/minecraft/tags/items/doors.json +37cff4ce449b8069b59b2327d78e073fc026d348 data/minecraft/tags/items/wooden_pressure_plates.json +30780136e6469a01369d7e278998edb6d7f6a16b data/hexcasting/tags/items/staves.json +20183cd61968ff6548df2dde1100b6378d68d64b data/minecraft/tags/items/wooden_buttons.json +c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/hexcasting/tags/items/edified_logs.json +e186f43ed06770e698c886691f91b2c6acdb5a2a data/hexcasting/tags/items/seal_materials.json +4461ef6db41a675fd077dd833cfd0ea537e755be data/c/tags/items/amethyst_dusts.json +5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data/minecraft/tags/items/trapdoors.json +e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data/minecraft/tags/items/planks.json +c72a147bc65d26424df199388969ebd11119aed3 data/hexcasting/tags/items/brainswept_circle_components.json +5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data/minecraft/tags/items/wooden_trapdoors.json +bdb90cee0e88e02f0b98f12d5dd212adfaca9afd data/hexcasting/tags/items/impeti.json +e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data/hexcasting/tags/items/edified_planks.json +20183cd61968ff6548df2dde1100b6378d68d64b data/minecraft/tags/items/buttons.json +38d781b60c5c37dc025d4c7e9ec5aa680f2a5835 data/c/tags/items/gems.json +c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/minecraft/tags/items/logs_that_burn.json +24145229528668829a1bcecf18a6377ebd07ccf8 data/hexcasting/tags/items/grants_root_advancement.json +5f3b600b4fd98744bd08c993ce7bcb9c2f195cd2 data/minecraft/tags/items/leaves.json +9d18fb7a889031a704ca0e553600e1d6f8c3759d data/hexcasting/tags/items/directrices.json +c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/minecraft/tags/items/logs.json +5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data/minecraft/tags/items/slabs.json +5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data/minecraft/tags/items/wooden_slabs.json diff --git a/Fabric/src/generated/resources/.cache/3cb4ab563deee432e7d307024048f57946bafb1c b/Fabric/src/generated/resources/.cache/3cb4ab563deee432e7d307024048f57946bafb1c index 50f3885282..1e7f2dc25b 100644 --- a/Fabric/src/generated/resources/.cache/3cb4ab563deee432e7d307024048f57946bafb1c +++ b/Fabric/src/generated/resources/.cache/3cb4ab563deee432e7d307024048f57946bafb1c @@ -1,4 +1,4 @@ -// 1.20.1 2024-08-21T16:55:57.0253615 Hex Casting/Tags for hexcasting:action -6fe30f41e2bcd48589caab26d210a513dce1ab7c data\hexcasting\tags\action\requires_enlightenment.json -6fe30f41e2bcd48589caab26d210a513dce1ab7c data\hexcasting\tags\action\can_start_enlighten.json -6fe30f41e2bcd48589caab26d210a513dce1ab7c data\hexcasting\tags\action\per_world_pattern.json +// 1.20.1 2024-08-27T12:42:38.120411259 Hex Casting/Tags for hexcasting:action +6fe30f41e2bcd48589caab26d210a513dce1ab7c data/hexcasting/tags/action/per_world_pattern.json +6fe30f41e2bcd48589caab26d210a513dce1ab7c data/hexcasting/tags/action/requires_enlightenment.json +6fe30f41e2bcd48589caab26d210a513dce1ab7c data/hexcasting/tags/action/can_start_enlighten.json diff --git a/Fabric/src/generated/resources/.cache/812fdb58b7018b2d5c5af7da57a2b1857fa66794 b/Fabric/src/generated/resources/.cache/812fdb58b7018b2d5c5af7da57a2b1857fa66794 index 0109532eac..e7b75bcd42 100644 --- a/Fabric/src/generated/resources/.cache/812fdb58b7018b2d5c5af7da57a2b1857fa66794 +++ b/Fabric/src/generated/resources/.cache/812fdb58b7018b2d5c5af7da57a2b1857fa66794 @@ -1,32 +1,33 @@ -// 1.20.1 2024-08-21T16:55:57.0223613 Hex Casting/Tags for minecraft:block -357eddf3cee6f16725bed0701d57b2ca3097d74d data\minecraft\tags\blocks\mineable\shovel.json -5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data\minecraft\tags\blocks\trapdoors.json -643994ee757a533cfb5001689e0f0263956b8a35 data\minecraft\tags\blocks\mineable\axe.json -5f3b600b4fd98744bd08c993ce7bcb9c2f195cd2 data\minecraft\tags\blocks\mineable\hoe.json -fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data\minecraft\tags\blocks\doors.json -6f52ca5e42991af6d7b829f626010ce304277464 data\minecraft\tags\blocks\crystal_sound_blocks.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data\hexcasting\tags\blocks\edified_logs.json -281cb08b9b68ef049820c4f3f36b40820044681e data\minecraft\tags\blocks\wooden_stairs.json -e8d5ef7eabb567228b279b2419e4f042082d7491 data\minecraft\tags\blocks\fences.json -5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data\minecraft\tags\blocks\slabs.json -281cb08b9b68ef049820c4f3f36b40820044681e data\minecraft\tags\blocks\stairs.json -20183cd61968ff6548df2dde1100b6378d68d64b data\minecraft\tags\blocks\buttons.json -37cff4ce449b8069b59b2327d78e073fc026d348 data\minecraft\tags\blocks\wooden_pressure_plates.json -9d18fb7a889031a704ca0e553600e1d6f8c3759d data\hexcasting\tags\blocks\directrices.json -e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data\hexcasting\tags\blocks\edified_planks.json -5f3b600b4fd98744bd08c993ce7bcb9c2f195cd2 data\minecraft\tags\blocks\leaves.json -fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data\minecraft\tags\blocks\wooden_doors.json -7e1e353cb7f561f086898f991ece48e047991934 data\minecraft\tags\blocks\unstable_bottom_center.json -8cd7a960fd719f200b0bf38100cd17c73b66d39c data\minecraft\tags\blocks\mineable\pickaxe.json -7e1e353cb7f561f086898f991ece48e047991934 data\minecraft\tags\blocks\fence_gates.json -6ae561f7399e39ffa0e97bd0569aeffa9eabff6a data\hexcasting\tags\blocks\water_plants.json -5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data\minecraft\tags\blocks\wooden_slabs.json -5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data\minecraft\tags\blocks\wooden_trapdoors.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data\minecraft\tags\blocks\logs.json -e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data\minecraft\tags\blocks\planks.json -c72a147bc65d26424df199388969ebd11119aed3 data\hexcasting\tags\blocks\brainswept_circle_components.json -7acae0c88f5ead65339db1b11b16f60214434c86 data\minecraft\tags\blocks\wooden_fences.json -20183cd61968ff6548df2dde1100b6378d68d64b data\minecraft\tags\blocks\wooden_buttons.json -c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data\minecraft\tags\blocks\logs_that_burn.json -37cff4ce449b8069b59b2327d78e073fc026d348 data\minecraft\tags\blocks\pressure_plates.json -bdb90cee0e88e02f0b98f12d5dd212adfaca9afd data\hexcasting\tags\blocks\impeti.json +// 1.20.1 2024-08-27T12:42:38.115300691 Hex Casting/Tags for minecraft:block +c72a147bc65d26424df199388969ebd11119aed3 data/hexcasting/tags/blocks/brainswept_circle_components.json +357eddf3cee6f16725bed0701d57b2ca3097d74d data/minecraft/tags/blocks/mineable/shovel.json +20183cd61968ff6548df2dde1100b6378d68d64b data/minecraft/tags/blocks/buttons.json +8cd7a960fd719f200b0bf38100cd17c73b66d39c data/minecraft/tags/blocks/mineable/pickaxe.json +643994ee757a533cfb5001689e0f0263956b8a35 data/minecraft/tags/blocks/mineable/axe.json +5f3b600b4fd98744bd08c993ce7bcb9c2f195cd2 data/minecraft/tags/blocks/mineable/hoe.json +6ae561f7399e39ffa0e97bd0569aeffa9eabff6a data/hexcasting/tags/blocks/water_plants.json +e8d5ef7eabb567228b279b2419e4f042082d7491 data/minecraft/tags/blocks/fences.json +c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/minecraft/tags/blocks/logs_that_burn.json +eba53f6c7645de4ef5ffb1e10ef34a4c23e98887 data/hexcasting/tags/blocks/cheap_to_break_block.json +7e1e353cb7f561f086898f991ece48e047991934 data/minecraft/tags/blocks/unstable_bottom_center.json +5f3b600b4fd98744bd08c993ce7bcb9c2f195cd2 data/minecraft/tags/blocks/leaves.json +281cb08b9b68ef049820c4f3f36b40820044681e data/minecraft/tags/blocks/wooden_stairs.json +6f52ca5e42991af6d7b829f626010ce304277464 data/minecraft/tags/blocks/crystal_sound_blocks.json +5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data/minecraft/tags/blocks/trapdoors.json +37cff4ce449b8069b59b2327d78e073fc026d348 data/minecraft/tags/blocks/wooden_pressure_plates.json +20183cd61968ff6548df2dde1100b6378d68d64b data/minecraft/tags/blocks/wooden_buttons.json +5216ba5c57db29b8dee9aebc63a2e3b17c97dc17 data/minecraft/tags/blocks/wooden_trapdoors.json +7acae0c88f5ead65339db1b11b16f60214434c86 data/minecraft/tags/blocks/wooden_fences.json +fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data/minecraft/tags/blocks/wooden_doors.json +7e1e353cb7f561f086898f991ece48e047991934 data/minecraft/tags/blocks/fence_gates.json +c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/minecraft/tags/blocks/logs.json +c562b4be24d0b6b13f3c65599d3bfa3bf2c4ce21 data/hexcasting/tags/blocks/edified_logs.json +5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data/minecraft/tags/blocks/slabs.json +e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data/minecraft/tags/blocks/planks.json +281cb08b9b68ef049820c4f3f36b40820044681e data/minecraft/tags/blocks/stairs.json +bdb90cee0e88e02f0b98f12d5dd212adfaca9afd data/hexcasting/tags/blocks/impeti.json +9d18fb7a889031a704ca0e553600e1d6f8c3759d data/hexcasting/tags/blocks/directrices.json +37cff4ce449b8069b59b2327d78e073fc026d348 data/minecraft/tags/blocks/pressure_plates.json +fdb48f194d7937ab6b423fa4b90a4d438bf6dd90 data/minecraft/tags/blocks/doors.json +5bbfd513fd2eb2090b0c2d1ec33504deb79d53b9 data/minecraft/tags/blocks/wooden_slabs.json +e5df19a1dc6eadf14cd9b0f0fe45a74330b745e9 data/hexcasting/tags/blocks/edified_planks.json diff --git a/Fabric/src/generated/resources/.cache/c70ef2fe5da52437c1f53bcc9ea0e416f16bcc0b b/Fabric/src/generated/resources/.cache/c70ef2fe5da52437c1f53bcc9ea0e416f16bcc0b index 2812437a61..1a07bbdc44 100644 --- a/Fabric/src/generated/resources/.cache/c70ef2fe5da52437c1f53bcc9ea0e416f16bcc0b +++ b/Fabric/src/generated/resources/.cache/c70ef2fe5da52437c1f53bcc9ea0e416f16bcc0b @@ -1,218 +1,218 @@ -// 1.20.1 2024-08-21T16:55:57.0233614 Hex Casting/Recipes -7166cd4355d11c209bc7749bc862caddcfd795fb data\hexcasting\recipes\dye_colorizer_cyan.json -c2a0a489967db4064dfbe1ee6367e132665f3c00 data\hexcasting\recipes\edified_slab.json -7baf0777533737aef68bcac36944943b77138d29 data\hexcasting\recipes\edified_button.json -b6fa898369ac52cdd9d7f91e3b8a2cb881c3829f data\hexcasting\advancements\recipes\decorations\scroll_medium.json -3b03fdae3896212a0b8b9b3a2d4880d197e67d2d data\hexcasting\recipes\jeweler_hammer.json -8f8773a541bc6a4a6c55a23f4f98b5da4f61a031 data\hexcasting\recipes\scroll_paper.json -06402fb37fe4bb05918d13dbfdb89f4c2b67f3ec data\hexcasting\advancements\recipes\tools\cypher.json -31ec6474ddae967a6c1dadf9be8292d375510364 data\hexcasting\advancements\recipes\building_blocks\edified_tile.json -b94bc4dd4a63db10af86c524ba00eae157c1824b data\hexcasting\advancements\recipes\building_blocks\edified_fence_gate.json -ea87956c49dcfabb0d39af45c016130d258181da data\hexcasting\recipes\staff\birch.json -78958099bf4337ad281580d90f434b3074ad18c8 data\hexcasting\recipes\pride_colorizer_genderqueer.json -e765ee2bd324240e8ed3d625be431de3281f0070 data\hexcasting\recipes\dye_colorizer_gray.json -5f216dbb7b89fd837e2dd73e3ed41c8d412de234 data\hexcasting\advancements\recipes\misc\decompose_quenched_shard\dust.json -0b951ce7b9d1bfb07ae012b12225b595d36c6e66 data\hexcasting\recipes\amethyst_dust_packing.json -a3130e3098e35b75afae4f31996d9ab7468e0bc3 data\hexcasting\advancements\recipes\tools\thought_knot.json -7ca0f9fc6e8ae1ad08ef5c29a0b279b891f7d8d4 data\hexcasting\advancements\recipes\misc\pride_colorizer_aroace.json -417695497a95436186c1a4ed842d7975d754f9eb data\hexcasting\recipes\stripped_edified_wood.json -5a90084c03d6e8424872870c8b65f4771b447f03 data\hexcasting\recipes\brainsweep\budding_amethyst.json -63189af501442318a90c16d6951e51c0c5d6d4f3 data\hexcasting\recipes\compat\farmersdelight\cutting\edified_log_purple.json -daa7b13d5370f4306f8cdf3037fc346e8918950a data\hexcasting\recipes\dye_colorizer_brown.json -2cea013887734cbc4971bcd57e7e4f6a2b25c8e1 data\hexcasting\advancements\recipes\tools\focus.json -f4c56ea7143ce92a0ae0b663310e53644a7309f7 data\hexcasting\advancements\recipes\misc\pride_colorizer_pansexual.json -5d6d73e16a36da5f9df6a7b8ac859181d401766d data\hexcasting\recipes\uuid_colorizer.json -e11aeded7f5d3fdd224627c67661bbd993901703 data\hexcasting\recipes\edified_pressure_plate.json -5889e2df2fb4e1ea29f2590b96bb3aa94961a09a data\hexcasting\recipes\scroll.json -f0e71ae8c6a9170669f44096a55a875d11497c56 data\hexcasting\recipes\staff\warped.json -c1846dd794f5cc5814b8a839291e82512a02ba12 data\hexcasting\advancements\recipes\misc\pride_colorizer_plural.json -a8cab28cffdf495253a320094d202fccc5aeb113 data\hexcasting\advancements\recipes\decorations\ancient_scroll_paper_lantern.json -de38d15e7a91c77df24c1dc954b3e98ee197876f data\hexcasting\recipes\focus.json -71f821f5d24b0bf9ecd860d51e055628fe4af50c data\hexcasting\recipes\edified_panel.json -a9111ff52513200af47b79cf98b2e545699497bb data\hexcasting\advancements\recipes\building_blocks\amethyst_tiles.json -9ea4fe5272ce2241d98f30359f55cfc1936c7b48 data\hexcasting\advancements\recipes\tools\staff\cherry.json -b90ad4cbffc2e3c01671dfe8bda5e42d9b8a685c data\hexcasting\advancements\recipes\tools\staff\crimson.json -5e66982df6a1074c81f381898033b521ca337695 data\hexcasting\recipes\staff\quenched.json -e6a592721234448f2ee7ec402bca10a9b78b4677 data\hexcasting\advancements\recipes\decorations\slate.json -49e706193bb57a957091e419bd0d8aa58135da1f data\hexcasting\recipes\dye_colorizer_green.json -0f2e63a9361d18aac764f6a4a4f13b9b862ac2ee data\hexcasting\recipes\compat\create\crushing\amethyst_shard.json -9269b17eaae3217422352354fc6006c9808b398c data\hexcasting\recipes\dye_colorizer_black.json -45915b542d8070f2502a4047218679b08033b12d data\hexcasting\advancements\recipes\decorations\scroll_paper_lantern.json -f08a0aee92b281ae325d907e6fe4a3b03980f2aa data\hexcasting\advancements\recipes\tools\staff\edified.json -996c8361766377a70e0b5a5caff3076fc6031b0a data\hexcasting\recipes\impetus\empty.json -30352d8ad510768770bb1b2d378959b7a502f825 data\hexcasting\advancements\recipes\brainsweep\brainsweep\impetus_look.json -04902d4eca30560bc601a8196d82f74f3fa5b191 data\hexcasting\recipes\dynamicseal_spellbook.json -b1f8375aaf0d66035dee720ea59605f69fc0a154 data\hexcasting\recipes\edified_fence.json -3608f0ec056f2c5d29a9a89305218497fd2c4383 data\hexcasting\recipes\stonecutting\amethyst_tiles.json -93ed0491548920bc75797d18501c750ef07fe3ea data\hexcasting\advancements\recipes\misc\pride_colorizer_bisexual.json -aa1caae7eba6aede0f179619488e2253b3b723dd data\hexcasting\recipes\focus_rotated.json -61fafd43af83bdca6720d0993ab71f40a8bebd40 data\hexcasting\advancements\recipes\redstone\akashic_connector.json -4aaefc65af5fe69d312247fdda7d983edf8dcd9a data\hexcasting\recipes\pride_colorizer_intersex.json -c2ef04b311251b4eb22320b2f5313c54533a9974 data\hexcasting\advancements\recipes\tools\staff\birch.json -8b7136c206b799a2e394aa02316b0509674ff64f data\hexcasting\advancements\recipes\tools\staff\bamboo.json -7552df3fc726cc4cdaa88aa4823eff6ce069fb75 data\hexcasting\recipes\slate_block_from_slates.json -b84c113ef5321c9df9ac9080de03e8d8639feab2 data\hexcasting\advancements\recipes\misc\pride_colorizer_genderqueer.json -b7084f131b0cdb9c2c698a3c5b3450d69e788d6e data\hexcasting\recipes\dye_colorizer_yellow.json -6e2dc32f975d987b8dfd329507334f647bceadc0 data\hexcasting\advancements\recipes\tools\staff\mangrove.json -b10d590e918e35b16578a8b739a1c4e7e2202e16 data\hexcasting\advancements\recipes\misc\dye_colorizer_cyan.json -dcc9bf721dd40724abcc69f1f7e8a1610dbf88f3 data\hexcasting\recipes\compat\farmersdelight\cutting\akashic_door.json -0b172aef920da7ba63fe152903ce005c1f5df5f1 data\hexcasting\recipes\staff\acacia.json -203b7035125390abb4ed77b3a4dca8f8f8f57bc5 data\hexcasting\recipes\dye_colorizer_light_gray.json -1e51cd4f527b3aea4d61d91829e47c191c9c05bb data\hexcasting\recipes\pride_colorizer_gay.json -12bd3d04c791ef16aad5e992f038d6726229a436 data\hexcasting\advancements\recipes\tools\artifact.json -24c244e53c7e47b85845d2ee36b1665410cf495a data\hexcasting\recipes\edified_planks.json -846baaef37844216b57bb9b35e52b1bb6b56b413 data\hexcasting\advancements\recipes\decorations\scroll_small.json -f80dbf59957be175fbcd63224005e09c4cd1a122 data\hexcasting\recipes\compat\farmersdelight\cutting\edified_log_citrine.json -8bea75fdc5e64c464dcf5f85166e767ff44e6dc2 data\hexcasting\advancements\recipes\misc\pride_colorizer_lesbian.json -fd7c8325fcaa6a718e90c09251b447fb365523d4 data\hexcasting\recipes\pride_colorizer_demiboy.json -cedc2889c4f327b18755bbe8c3c595d302e2a9d0 data\hexcasting\recipes\decompose_quenched_shard\shard.json -42b8e462de1d7006de3a7658757377450e773107 data\hexcasting\advancements\recipes\misc\dye_colorizer_blue.json -a0b87b1b21506708d09c9295b7afc13de6b1fce6 data\hexcasting\recipes\pride_colorizer_aromantic.json -441f336edb635e5d8c2a7183906fed1c501f06fd data\hexcasting\recipes\pride_colorizer_bisexual.json -7aa3bf4a3d6fb92743b29dfe89d50537fefc0db9 data\hexcasting\advancements\recipes\misc\pride_colorizer_intersex.json -ea46e570a43cd3ea1cc78c51d9da45d93944730a data\hexcasting\advancements\recipes\redstone\directrix\empty.json -e536791d0c6fb48206e6e30d56879eaf0a9e4bd7 data\hexcasting\recipes\akashic_bookshelf.json -8e48c680b38666c2e7da71fbe4ceddf5d99a5cbc data\hexcasting\advancements\recipes\food\sub_sandwich.json -a1f9df0537c0ef33a1164cf94e8ff4b1094f889f data\hexcasting\advancements\recipes\tools\staff\warped.json -963d87d2738686e5398a178b8b369228ff067403 data\hexcasting\recipes\spellbook.json -09096a40275b6c49d4b4e6984869aa43b34712c3 data\hexcasting\recipes\dynamicseal_focus.json -f81053a3269c1b371be3f8057bad4803056ee0f9 data\hexcasting\recipes\dye_colorizer_orange.json -c4b985635c3b1a519d7a83da65daba5bdd3a5f59 data\hexcasting\advancements\recipes\decorations\ageing_scroll_paper_lantern.json -2c56c267e23e75d5a3b9358d424d69642e001b50 data\hexcasting\recipes\decompose_quenched_shard\dust.json -98c0843e6a83b91820f1c720e206295eec20ff95 data\hexcasting\recipes\ancient_scroll_paper.json -7f2f29981df2ca4464ee0250180e670f5331f65b data\hexcasting\recipes\dye_colorizer_pink.json -c03c81dc123294472e8bb6f836c319e96f8db4f5 data\hexcasting\advancements\recipes\building_blocks\edified_fence.json -2003fed3aa4eb622b6b07a9e65946fb40be14420 data\hexcasting\advancements\recipes\brainsweep\brainsweep\impetus_rightclick.json -0864e8b86bdad0bf9ab2ddeb0cd5a182808b5a0a data\hexcasting\recipes\default_colorizer.json -6493676f8ca93a7be8d70e25d69ddad935b3f16b data\hexcasting\advancements\recipes\tools\lens.json -7d71eb93bbb0856167cf4521283e39f0048078ee data\hexcasting\advancements\recipes\redstone\edified_button.json -f77518b6993fe8e31de10af286c33ab72c0f9077 data\hexcasting\advancements\recipes\redstone\impetus\empty.json -0ead307e47242ba140584f6bd20088a1fa7c2909 data\hexcasting\recipes\directrix\empty.json -d7de5d626fd799a2522af36f0c62c52fe490e6d2 data\hexcasting\recipes\edified_door.json -5e28e2c352366720ce91b73f8c8c38e217f7198d data\hexcasting\recipes\edified_fence_gate.json -0038883bd294cc8a1b324d6782478d5e37b4dbf9 data\hexcasting\advancements\recipes\misc\dye_colorizer_pink.json -aa7558ec1baf6070efbe448d886e20e964e33f96 data\hexcasting\advancements\recipes\brainsweep\brainsweep\quench_allay.json -648f1862fde1dd8ade80b2991b8c8e3991389e95 data\hexcasting\recipes\dye_colorizer_light_blue.json -b29f9d9c14e60ded1148680e2e0ef405b5a3c845 data\hexcasting\advancements\recipes\misc\uuid_colorizer.json -c8f2ad363e4d20054f4e56fde02c8775a45a7169 data\hexcasting\recipes\artifact.json -641d8c38b8109665314fccbebd9068ba10b04118 data\hexcasting\advancements\recipes\misc\dye_colorizer_gray.json -7e1a5a873d655e0efba80f22ae9b1de4f248e67a data\hexcasting\advancements\recipes\misc\decompose_quenched_shard\shard.json -fb852d8e4bcfa7b75f41a6ac7dc1e76b00d95fb1 data\hexcasting\advancements\recipes\misc\dye_colorizer_red.json -77369113dc54d1c64b9101861dd8a1930bf1c1c4 data\hexcasting\recipes\edified_wood.json -8f515bf8ccea70b3d88845ed83966dc0c66082f6 data\hexcasting\advancements\recipes\tools\staff\oak.json -552c235dc58a46a3e57913c9b9faf3f21abeae32 data\hexcasting\advancements\recipes\building_blocks\stripped_edified_wood.json -eb9ebf77f0daa32f665a60888fcda19c940f0b2f data\hexcasting\advancements\recipes\misc\pride_colorizer_demigirl.json -151875101066f7af5788c7a2e1c6b342971a546a data\hexcasting\recipes\compat\farmersdelight\cutting\akashic_wood.json -41a570f970c9af8229cb1140a11a5220fac00957 data\hexcasting\advancements\recipes\tools\staff\spruce.json -1b570b35288be9f6faab1536d6e45cb52eb088c0 data\hexcasting\advancements\recipes\tools\staff\dark_oak.json -494aa470790ae46baebbf24ee5b76f5885c1af1a data\hexcasting\recipes\ageing_scroll_paper_lantern.json -e9166f40c8797cdbf3d8062dfa35c74f850f1000 data\hexcasting\advancements\recipes\misc\dye_colorizer_white.json -72f70637aea1c11683e9ee91d83c2807c6ec33a9 data\hexcasting\recipes\compat\farmersdelight\cutting\akashic_trapdoor.json -ed5c690324e3d9b55599f00f078ae225072a2e7f data\hexcasting\recipes\brainsweep\impetus_rightclick.json -0e792d49c81d2164e827d1bdedaa0fa358dfc437 data\hexcasting\advancements\recipes\misc\pride_colorizer_aromantic.json -0654e70ed1ed8be20ae3dd9f4955cd14f9fa40d0 data\hexcasting\advancements\recipes\tools\staff\jungle.json -2eacf53894ae97712dc3874777e29dce0a0e5540 data\hexcasting\advancements\recipes\misc\pride_colorizer_asexual.json -c43fb770003c8d882fd9c1e7d1ecb5f196cba1ab data\hexcasting\recipes\cypher.json -ea63e49709bd80cb9f4cd1fe13e9bd0281101c9a data\hexcasting\recipes\slate.json -838b91c33a72a58aa286607eaaa17cdd6b4c90ba data\hexcasting\recipes\amethyst_sconce.json -c6228d72ca800a7dd336e82bbb9b4f20f89de29d data\hexcasting\advancements\recipes\redstone\edified_pressure_plate.json -b20be6eb5a8b60567871444e65d773ec9a67ece1 data\hexcasting\recipes\staff\crimson.json -1093cccc6b1c45eb91f7c1680ef575a7bffb2744 data\hexcasting\advancements\recipes\building_blocks\edified_planks.json -97062771a426f6e4b9e3bfd6daa62b1d4b3c7039 data\hexcasting\recipes\abacus.json -af8fe74b624df4a31727347b9826614a66092b0a data\hexcasting\advancements\recipes\misc\pride_colorizer_agender.json -c1541738df1ee41c362ad3b9c3a9f0e181bd5c62 data\hexcasting\recipes\pride_colorizer_plural.json -bc8fe4d2f55fe119b0b146a71782a3d4788380b1 data\create\recipes\crushing\amethyst_block.json -d47352426739a0fc500a385d820d767a307e1d16 data\hexcasting\advancements\recipes\misc\dye_colorizer_black.json -55602e415fc1b797439b674050887e9e388558c9 data\hexcasting\advancements\recipes\building_blocks\edified_panel.json -72447ac69a0d85f91064180d3c852040a9e33832 data\hexcasting\recipes\pride_colorizer_asexual.json -af9a260c24e0a65eea321f0dd9dd2fa7d648707f data\hexcasting\advancements\recipes\building_blocks\amethyst_dust_packing.json -7c479398bbc7185a2c3efd568ad266d8109245bf data\hexcasting\advancements\recipes\redstone\edified_door.json -4d5e4a6374731b2d0a90c70a5d489703fd966977 data\hexcasting\advancements\recipes\misc\dye_colorizer_lime.json -fd2f25b0a71806c96af5a307fad76f66de6210a4 data\hexcasting\advancements\recipes\building_blocks\slate_block.json -4680e9dafcf9b60b3485609519d66eefcfd539bc data\hexcasting\recipes\staff\dark_oak.json -b16ff5314d457bc7e9e224e102d1e04ce3a62361 data\hexcasting\recipes\brainsweep\directrix_redstone.json -946cde51bbfc2af344b078f6b39389ffc44462f4 data\hexcasting\advancements\recipes\brainsweep\brainsweep\impetus_storedplayer.json -40ed21dc80d39236ca0e6d2cea60861c637cf931 data\hexcasting\advancements\recipes\misc\pride_colorizer_nonbinary.json -71d38559bf455ea343ac0237a57db4d3f0833a7c data\hexcasting\advancements\recipes\misc\dye_colorizer_magenta.json -9b7c5220fbaf3e84fa9e81eae322eed5d37b22d3 data\hexcasting\recipes\pride_colorizer_transgender.json -157ee5fba985bbd01a87f44578890dab5489a8e5 data\hexcasting\advancements\recipes\misc\dye_colorizer_green.json -004e0694b3bf53140be7df89a4defc255b800619 data\hexcasting\advancements\recipes\tools\focus_rotated.json -8f7b81add0153ad94900acc66cd8174ae7115f64 data\hexcasting\advancements\recipes\building_blocks\slate_block_from_slates.json -f8ee073c1c03f1c11147e4801eeba1f86e5459ba data\hexcasting\recipes\dye_colorizer_blue.json -1a0d55e6824c078453c1d44e885a1c51ba707a41 data\hexcasting\recipes\dye_colorizer_white.json -14f3b217e150efbbff329d67aec96f818a1da99c data\hexcasting\recipes\dye_colorizer_purple.json -2b64261bd4aefdc55d35400f25835434f88856cf data\hexcasting\recipes\amethyst_tiles.json -b6720c1c73455ad817bac9b5ca2ca045c5c4050c data\hexcasting\recipes\pride_colorizer_agender.json -c3f7b03fe184ed5e54a8ae06d130adf507b7683d data\hexcasting\recipes\staff\bamboo.json -54335e0004423899ad37763a1d8456cc0a6e72a7 data\hexcasting\advancements\recipes\misc\decompose_quenched_shard\charged.json -ae88fcdecbfbdd0a0fe778467421a3b32d7ed735 data\create\recipes\crushing\amethyst_cluster.json -f64fa00d85a9abb24e89b0d2c9f818001371f5e6 data\hexcasting\recipes\slate_block.json -bd63b845e02ee4b1b9abe168a196335ccbed1ca5 data\hexcasting\recipes\scroll_paper_lantern.json -505eb9192df0b48867e58e09ce36b2259dc6d3e8 data\hexcasting\advancements\recipes\decorations\scroll.json -2a2f60fb0f63ee278b74c418acf04575304c521f data\hexcasting\advancements\recipes\tools\jeweler_hammer.json -862f1a61a296a834df8a93dbd5a6cdfa2df15721 data\hexcasting\advancements\recipes\tools\staff\acacia.json -5401828f85e709b5817ecc8464dc63e536a730dc data\hexcasting\recipes\staff\cherry.json -ee5db13cbb33d9c62bcb1eb645e2c4bea97ad44a data\hexcasting\advancements\recipes\building_blocks\amethyst_dust_unpacking.json -1ad54df5eaee3d1e810d2c91bd03f626084e30b6 data\hexcasting\recipes\edified_trapdoor.json -06ca609ba1a32f094cf6edbc989bc9ddaf9d342c data\hexcasting\advancements\recipes\misc\pride_colorizer_genderfluid.json -27dc4a1647f264c45b27f5552fd9403a02853484 data\hexcasting\advancements\recipes\tools\spellbook.json -b5946314683e5a823b577a18d13fb437a35aafd5 data\hexcasting\recipes\decompose_quenched_shard\charged.json -1d1e73244fb3da633d8a5f84bad93c6022a94368 data\hexcasting\advancements\recipes\misc\pride_colorizer_demiboy.json -071e5875b13b60aac33bc97e408d2ca710ac5d02 data\hexcasting\advancements\recipes\building_blocks\stonecutting\amethyst_tiles.json -b624d103d944a8a1d4d8a9e85c198a5492b476f8 data\hexcasting\advancements\recipes\redstone\edified_trapdoor.json -51b047601368a103be166d907633b196d2d8a4e8 data\hexcasting\recipes\compat\farmersdelight\cutting\edified_log.json -a8d604ba059d54502837809815d3ac9bbcaa89bf data\hexcasting\advancements\recipes\redstone\akashic_bookshelf.json -664ce1a38c9b1c9ec21b7e078631e181fc0b2498 data\hexcasting\recipes\staff\edified.json -a85cfbd7988f5df0b18d160591605aea8e6808d2 data\hexcasting\recipes\trinket.json -4a803e049915fd3c7144155ae3a1b05a917ea290 data\hexcasting\recipes\pride_colorizer_pansexual.json -b300f7729e75614fce412457f6717686680f81da data\hexcasting\recipes\sub_sandwich.json -170af3c83a45f9550827cc48e4bb5a621d06d685 data\hexcasting\advancements\recipes\misc\pride_colorizer_transgender.json -fb486df96798724da2fcc0df5706f19bc1ff94dc data\hexcasting\advancements\recipes\misc\dye_colorizer_light_blue.json -903cbe4d4c4e5abcd5e006f9d0237e8c596228ba data\hexcasting\recipes\edified_tile.json -db5ae3a2fda235cf1c83fd83e0026a262e668217 data\hexcasting\advancements\recipes\building_blocks\edified_slab.json -5fab1b9c93304a53a4c305b511704458e4593444 data\hexcasting\recipes\pride_colorizer_demigirl.json -d6b7a9392320c11866b3f139f97977dc9f55bc47 data\hexcasting\recipes\scroll_small.json -7522be58b09554a3f1a54d5b2343c3eab01447a3 data\hexcasting\recipes\dye_colorizer_magenta.json -233aeedc73173427e7b2287772a4f914f97b072c data\hexcasting\recipes\dye_colorizer_red.json -68ab70e0b4e432a3492767c5597ecd836f106714 data\hexcasting\advancements\recipes\tools\staff\mindsplice.json -1b092acfc3115702c74e141492e649d58512f259 data\hexcasting\recipes\staff\oak.json -410bfde90cb977db3f13814e94484fa11fca7cfc data\hexcasting\recipes\thought_knot.json -a72a0fcc0f3a81d31b30a7a626aef537796ca73b data\hexcasting\advancements\recipes\tools\staff\quenched.json -23eff6111b0385b66d3ad5fbabfc625f426517a6 data\hexcasting\advancements\recipes\brainsweep\brainsweep\directrix_redstone.json -bc729ac7cf84d29a99cd34d50c152c0b9d20bd7a data\hexcasting\advancements\recipes\brainsweep\brainsweep\akashic_record.json -011f8daf15148d4b77686c6d382d8f5c288a333d data\hexcasting\advancements\recipes\building_blocks\ancient_scroll_paper.json -92bdf87687d8823036fae6bd01782c653831286b data\hexcasting\recipes\brainsweep\impetus_look.json -f482a4349786388cc8f11d5550548f7d60265438 data\hexcasting\recipes\staff\mangrove.json -8c52917fc7041c483fb6dfe8d16c90f096f2beaf data\hexcasting\recipes\compat\farmersdelight\cutting\edified_log_amethyst.json -5e98cec2084f0cfbb959c3ec39bd85a3369f443b data\hexcasting\advancements\recipes\tools\abacus.json -f1bae034d27d218bf262a8c777b787d232489f16 data\hexcasting\recipes\lens.json -ef96ae9709ec931ce6b6af8a539f9bc483236449 data\hexcasting\recipes\scroll_medium.json -4d941fc399c6b7a470513a572ecd88982823da84 data\hexcasting\advancements\recipes\building_blocks\edified_wood.json -b6e762c198b9632defd7f8b11287702abecd681d data\hexcasting\recipes\staff\mindsplice.json -e691130641b11c0a030a51c71dee0ba356f3b5bd data\hexcasting\recipes\compat\farmersdelight\cutting\edified_log_aventurine.json -ce9d0b976f7cc8ad4a0815bbea6c43115addb90f data\hexcasting\advancements\recipes\building_blocks\scroll_paper.json -faaa9c39dbcdd131c5fbec9ac6a26d6dc5e72053 data\hexcasting\advancements\recipes\misc\dye_colorizer_light_gray.json -e0609202271e402d8ae58e4f8eaf11dcdda10a9e data\hexcasting\recipes\brainsweep\akashic_record.json -2aa7d74e29a7c5ee4f1b8835cf7c6109eed81d77 data\hexcasting\recipes\brainsweep\quench_allay.json -4003f297be29810cebde4995fb2838c2c68a25ea data\hexcasting\recipes\pride_colorizer_lesbian.json -775560efa36581389c0319435bda035be262ed4f data\hexcasting\advancements\recipes\building_blocks\edified_stairs.json -f347f4ce869207e62a7887df1252505a3432e12a data\hexcasting\recipes\pride_colorizer_genderfluid.json -6f2634e5588aede8e29157ecc859652d8a9f4065 data\hexcasting\advancements\recipes\misc\dye_colorizer_orange.json -0bd7c9f4a9bf29c1b63b2f9378f0a7e2f594b7b7 data\hexcasting\recipes\pride_colorizer_nonbinary.json -a366ea3750adc0d336ab8f318c40baed3f9c3eb7 data\hexcasting\recipes\brainsweep\impetus_storedplayer.json -36d26f34d0405ff2d1e728e5b5174502686e3590 data\hexcasting\advancements\recipes\brainsweep\brainsweep\budding_amethyst.json -55ea553a96e1d6a54385890f7c48fe7b2bed6871 data\hexcasting\advancements\recipes\tools\trinket.json -499c5c09e3772989350f9ab3264b8692449a6dea data\hexcasting\advancements\recipes\misc\pride_colorizer_gay.json -afb422ad4a918ee0161bf077f09475bb1da2b4eb data\hexcasting\recipes\amethyst_dust_unpacking.json -8c043c7f6a7911b67324e2fd42f0b3b19a792af3 data\hexcasting\recipes\ancient_scroll_paper_lantern.json -1a9dd55a24f56a4e9467f1117e0898f7e71ade67 data\hexcasting\advancements\recipes\decorations\amethyst_sconce.json -2fff80cd3dabd2bc1744eecd72b2364b0f91c7c1 data\hexcasting\advancements\recipes\misc\dye_colorizer_yellow.json -61e53f02baefd31308e99407d56403dfc18e36e1 data\hexcasting\recipes\akashic_connector.json -3bf96944a8eed8b8d3f5d96b609297727c078cb7 data\hexcasting\advancements\recipes\misc\dye_colorizer_purple.json -2c292e12b5e85b1701740c222e5c5465799ad1dc data\hexcasting\recipes\pride_colorizer_aroace.json -ad647a2078099344ea7f9836a68e1bf8e8119277 data\hexcasting\advancements\recipes\misc\dye_colorizer_brown.json -17a1adf747b99848381ca8e7c5e2cd9dd96c014f data\hexcasting\advancements\recipes\misc\default_colorizer.json -0aaf55492e850d2bb1ec2f9986406ca61fde4cfd data\hexcasting\recipes\dye_colorizer_lime.json -8815ea5d8d7379062e050adc5736cc579c3bdd9e data\hexcasting\recipes\edified_stairs.json -923e7cd200518042f11474713eca9ccad126dab7 data\hexcasting\recipes\staff\spruce.json -095aeb2882c6849f10fb6536e7c780790778e5e7 data\hexcasting\recipes\staff\jungle.json +// 1.20.1 2024-08-27T12:42:38.11755991 Hex Casting/Recipes +f482a4349786388cc8f11d5550548f7d60265438 data/hexcasting/recipes/staff/mangrove.json +b10d590e918e35b16578a8b739a1c4e7e2202e16 data/hexcasting/advancements/recipes/misc/dye_colorizer_cyan.json +7aa3bf4a3d6fb92743b29dfe89d50537fefc0db9 data/hexcasting/advancements/recipes/misc/pride_colorizer_intersex.json +648f1862fde1dd8ade80b2991b8c8e3991389e95 data/hexcasting/recipes/dye_colorizer_light_blue.json +23eff6111b0385b66d3ad5fbabfc625f426517a6 data/hexcasting/advancements/recipes/brainsweep/brainsweep/directrix_redstone.json +a3130e3098e35b75afae4f31996d9ab7468e0bc3 data/hexcasting/advancements/recipes/tools/thought_knot.json +c8f2ad363e4d20054f4e56fde02c8775a45a7169 data/hexcasting/recipes/artifact.json +f80dbf59957be175fbcd63224005e09c4cd1a122 data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_citrine.json +2fff80cd3dabd2bc1744eecd72b2364b0f91c7c1 data/hexcasting/advancements/recipes/misc/dye_colorizer_yellow.json +9269b17eaae3217422352354fc6006c9808b398c data/hexcasting/recipes/dye_colorizer_black.json +441f336edb635e5d8c2a7183906fed1c501f06fd data/hexcasting/recipes/pride_colorizer_bisexual.json +a72a0fcc0f3a81d31b30a7a626aef537796ca73b data/hexcasting/advancements/recipes/tools/staff/quenched.json +2aa7d74e29a7c5ee4f1b8835cf7c6109eed81d77 data/hexcasting/recipes/brainsweep/quench_allay.json +2c292e12b5e85b1701740c222e5c5465799ad1dc data/hexcasting/recipes/pride_colorizer_aroace.json +5d6d73e16a36da5f9df6a7b8ac859181d401766d data/hexcasting/recipes/uuid_colorizer.json +49e706193bb57a957091e419bd0d8aa58135da1f data/hexcasting/recipes/dye_colorizer_green.json +2cea013887734cbc4971bcd57e7e4f6a2b25c8e1 data/hexcasting/advancements/recipes/tools/focus.json +36d26f34d0405ff2d1e728e5b5174502686e3590 data/hexcasting/advancements/recipes/brainsweep/brainsweep/budding_amethyst.json +daa7b13d5370f4306f8cdf3037fc346e8918950a data/hexcasting/recipes/dye_colorizer_brown.json +b94bc4dd4a63db10af86c524ba00eae157c1824b data/hexcasting/advancements/recipes/building_blocks/edified_fence_gate.json +9ea4fe5272ce2241d98f30359f55cfc1936c7b48 data/hexcasting/advancements/recipes/tools/staff/cherry.json +e0609202271e402d8ae58e4f8eaf11dcdda10a9e data/hexcasting/recipes/brainsweep/akashic_record.json +c3f7b03fe184ed5e54a8ae06d130adf507b7683d data/hexcasting/recipes/staff/bamboo.json +7ca0f9fc6e8ae1ad08ef5c29a0b279b891f7d8d4 data/hexcasting/advancements/recipes/misc/pride_colorizer_aroace.json +4aaefc65af5fe69d312247fdda7d983edf8dcd9a data/hexcasting/recipes/pride_colorizer_intersex.json +641d8c38b8109665314fccbebd9068ba10b04118 data/hexcasting/advancements/recipes/misc/dye_colorizer_gray.json +fd2f25b0a71806c96af5a307fad76f66de6210a4 data/hexcasting/advancements/recipes/building_blocks/slate_block.json +b1f8375aaf0d66035dee720ea59605f69fc0a154 data/hexcasting/recipes/edified_fence.json +ae88fcdecbfbdd0a0fe778467421a3b32d7ed735 data/create/recipes/crushing/amethyst_cluster.json +8b7136c206b799a2e394aa02316b0509674ff64f data/hexcasting/advancements/recipes/tools/staff/bamboo.json +fb852d8e4bcfa7b75f41a6ac7dc1e76b00d95fb1 data/hexcasting/advancements/recipes/misc/dye_colorizer_red.json +5401828f85e709b5817ecc8464dc63e536a730dc data/hexcasting/recipes/staff/cherry.json +54335e0004423899ad37763a1d8456cc0a6e72a7 data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/charged.json +c1846dd794f5cc5814b8a839291e82512a02ba12 data/hexcasting/advancements/recipes/misc/pride_colorizer_plural.json +0ead307e47242ba140584f6bd20088a1fa7c2909 data/hexcasting/recipes/directrix/empty.json +b7084f131b0cdb9c2c698a3c5b3450d69e788d6e data/hexcasting/recipes/dye_colorizer_yellow.json +55ea553a96e1d6a54385890f7c48fe7b2bed6871 data/hexcasting/advancements/recipes/tools/trinket.json +2003fed3aa4eb622b6b07a9e65946fb40be14420 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_rightclick.json +1b092acfc3115702c74e141492e649d58512f259 data/hexcasting/recipes/staff/oak.json +5a90084c03d6e8424872870c8b65f4771b447f03 data/hexcasting/recipes/brainsweep/budding_amethyst.json +61e53f02baefd31308e99407d56403dfc18e36e1 data/hexcasting/recipes/akashic_connector.json +93ed0491548920bc75797d18501c750ef07fe3ea data/hexcasting/advancements/recipes/misc/pride_colorizer_bisexual.json +0f2e63a9361d18aac764f6a4a4f13b9b862ac2ee data/hexcasting/recipes/compat/create/crushing/amethyst_shard.json +c4b985635c3b1a519d7a83da65daba5bdd3a5f59 data/hexcasting/advancements/recipes/decorations/ageing_scroll_paper_lantern.json +b6720c1c73455ad817bac9b5ca2ca045c5c4050c data/hexcasting/recipes/pride_colorizer_agender.json +5f216dbb7b89fd837e2dd73e3ed41c8d412de234 data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/dust.json +903cbe4d4c4e5abcd5e006f9d0237e8c596228ba data/hexcasting/recipes/edified_tile.json +fb486df96798724da2fcc0df5706f19bc1ff94dc data/hexcasting/advancements/recipes/misc/dye_colorizer_light_blue.json +410bfde90cb977db3f13814e94484fa11fca7cfc data/hexcasting/recipes/thought_knot.json +30352d8ad510768770bb1b2d378959b7a502f825 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_look.json +a8cab28cffdf495253a320094d202fccc5aeb113 data/hexcasting/advancements/recipes/decorations/ancient_scroll_paper_lantern.json +af8fe74b624df4a31727347b9826614a66092b0a data/hexcasting/advancements/recipes/misc/pride_colorizer_agender.json +e765ee2bd324240e8ed3d625be431de3281f0070 data/hexcasting/recipes/dye_colorizer_gray.json +a0b87b1b21506708d09c9295b7afc13de6b1fce6 data/hexcasting/recipes/pride_colorizer_aromantic.json +4d941fc399c6b7a470513a572ecd88982823da84 data/hexcasting/advancements/recipes/building_blocks/edified_wood.json +aa1caae7eba6aede0f179619488e2253b3b723dd data/hexcasting/recipes/focus_rotated.json +505eb9192df0b48867e58e09ce36b2259dc6d3e8 data/hexcasting/advancements/recipes/decorations/scroll.json +1d1e73244fb3da633d8a5f84bad93c6022a94368 data/hexcasting/advancements/recipes/misc/pride_colorizer_demiboy.json +71d38559bf455ea343ac0237a57db4d3f0833a7c data/hexcasting/advancements/recipes/misc/dye_colorizer_magenta.json +fd7c8325fcaa6a718e90c09251b447fb365523d4 data/hexcasting/recipes/pride_colorizer_demiboy.json +b5946314683e5a823b577a18d13fb437a35aafd5 data/hexcasting/recipes/decompose_quenched_shard/charged.json +011f8daf15148d4b77686c6d382d8f5c288a333d data/hexcasting/advancements/recipes/building_blocks/ancient_scroll_paper.json +494aa470790ae46baebbf24ee5b76f5885c1af1a data/hexcasting/recipes/ageing_scroll_paper_lantern.json +c6228d72ca800a7dd336e82bbb9b4f20f89de29d data/hexcasting/advancements/recipes/redstone/edified_pressure_plate.json +5889e2df2fb4e1ea29f2590b96bb3aa94961a09a data/hexcasting/recipes/scroll.json +a9111ff52513200af47b79cf98b2e545699497bb data/hexcasting/advancements/recipes/building_blocks/amethyst_tiles.json +e9166f40c8797cdbf3d8062dfa35c74f850f1000 data/hexcasting/advancements/recipes/misc/dye_colorizer_white.json +2c56c267e23e75d5a3b9358d424d69642e001b50 data/hexcasting/recipes/decompose_quenched_shard/dust.json +ea87956c49dcfabb0d39af45c016130d258181da data/hexcasting/recipes/staff/birch.json +98c0843e6a83b91820f1c720e206295eec20ff95 data/hexcasting/recipes/ancient_scroll_paper.json +bc8fe4d2f55fe119b0b146a71782a3d4788380b1 data/create/recipes/crushing/amethyst_block.json +97062771a426f6e4b9e3bfd6daa62b1d4b3c7039 data/hexcasting/recipes/abacus.json +24c244e53c7e47b85845d2ee36b1665410cf495a data/hexcasting/recipes/edified_planks.json +417695497a95436186c1a4ed842d7975d754f9eb data/hexcasting/recipes/stripped_edified_wood.json +7f2f29981df2ca4464ee0250180e670f5331f65b data/hexcasting/recipes/dye_colorizer_pink.json +ea63e49709bd80cb9f4cd1fe13e9bd0281101c9a data/hexcasting/recipes/slate.json +f64fa00d85a9abb24e89b0d2c9f818001371f5e6 data/hexcasting/recipes/slate_block.json +14f3b217e150efbbff329d67aec96f818a1da99c data/hexcasting/recipes/dye_colorizer_purple.json +9b7c5220fbaf3e84fa9e81eae322eed5d37b22d3 data/hexcasting/recipes/pride_colorizer_transgender.json +17a1adf747b99848381ca8e7c5e2cd9dd96c014f data/hexcasting/advancements/recipes/misc/default_colorizer.json +a85cfbd7988f5df0b18d160591605aea8e6808d2 data/hexcasting/recipes/trinket.json +4003f297be29810cebde4995fb2838c2c68a25ea data/hexcasting/recipes/pride_colorizer_lesbian.json +41a570f970c9af8229cb1140a11a5220fac00957 data/hexcasting/advancements/recipes/tools/staff/spruce.json +b300f7729e75614fce412457f6717686680f81da data/hexcasting/recipes/sub_sandwich.json +0b951ce7b9d1bfb07ae012b12225b595d36c6e66 data/hexcasting/recipes/amethyst_dust_packing.json +2b64261bd4aefdc55d35400f25835434f88856cf data/hexcasting/recipes/amethyst_tiles.json +963d87d2738686e5398a178b8b369228ff067403 data/hexcasting/recipes/spellbook.json +6e2dc32f975d987b8dfd329507334f647bceadc0 data/hexcasting/advancements/recipes/tools/staff/mangrove.json +996c8361766377a70e0b5a5caff3076fc6031b0a data/hexcasting/recipes/impetus/empty.json +71f821f5d24b0bf9ecd860d51e055628fe4af50c data/hexcasting/recipes/edified_panel.json +7166cd4355d11c209bc7749bc862caddcfd795fb data/hexcasting/recipes/dye_colorizer_cyan.json +f347f4ce869207e62a7887df1252505a3432e12a data/hexcasting/recipes/pride_colorizer_genderfluid.json +1b570b35288be9f6faab1536d6e45cb52eb088c0 data/hexcasting/advancements/recipes/tools/staff/dark_oak.json +31ec6474ddae967a6c1dadf9be8292d375510364 data/hexcasting/advancements/recipes/building_blocks/edified_tile.json +5e66982df6a1074c81f381898033b521ca337695 data/hexcasting/recipes/staff/quenched.json +45915b542d8070f2502a4047218679b08033b12d data/hexcasting/advancements/recipes/decorations/scroll_paper_lantern.json +946cde51bbfc2af344b078f6b39389ffc44462f4 data/hexcasting/advancements/recipes/brainsweep/brainsweep/impetus_storedplayer.json +1093cccc6b1c45eb91f7c1680ef575a7bffb2744 data/hexcasting/advancements/recipes/building_blocks/edified_planks.json +72447ac69a0d85f91064180d3c852040a9e33832 data/hexcasting/recipes/pride_colorizer_asexual.json +0e792d49c81d2164e827d1bdedaa0fa358dfc437 data/hexcasting/advancements/recipes/misc/pride_colorizer_aromantic.json +b84c113ef5321c9df9ac9080de03e8d8639feab2 data/hexcasting/advancements/recipes/misc/pride_colorizer_genderqueer.json +e6a592721234448f2ee7ec402bca10a9b78b4677 data/hexcasting/advancements/recipes/decorations/slate.json +de38d15e7a91c77df24c1dc954b3e98ee197876f data/hexcasting/recipes/focus.json +157ee5fba985bbd01a87f44578890dab5489a8e5 data/hexcasting/advancements/recipes/misc/dye_colorizer_green.json +c1541738df1ee41c362ad3b9c3a9f0e181bd5c62 data/hexcasting/recipes/pride_colorizer_plural.json +233aeedc73173427e7b2287772a4f914f97b072c data/hexcasting/recipes/dye_colorizer_red.json +12bd3d04c791ef16aad5e992f038d6726229a436 data/hexcasting/advancements/recipes/tools/artifact.json +862f1a61a296a834df8a93dbd5a6cdfa2df15721 data/hexcasting/advancements/recipes/tools/staff/acacia.json +a1f9df0537c0ef33a1164cf94e8ff4b1094f889f data/hexcasting/advancements/recipes/tools/staff/warped.json +b6e762c198b9632defd7f8b11287702abecd681d data/hexcasting/recipes/staff/mindsplice.json +7c479398bbc7185a2c3efd568ad266d8109245bf data/hexcasting/advancements/recipes/redstone/edified_door.json +5fab1b9c93304a53a4c305b511704458e4593444 data/hexcasting/recipes/pride_colorizer_demigirl.json +e536791d0c6fb48206e6e30d56879eaf0a9e4bd7 data/hexcasting/recipes/akashic_bookshelf.json +b90ad4cbffc2e3c01671dfe8bda5e42d9b8a685c data/hexcasting/advancements/recipes/tools/staff/crimson.json +68ab70e0b4e432a3492767c5597ecd836f106714 data/hexcasting/advancements/recipes/tools/staff/mindsplice.json +c2ef04b311251b4eb22320b2f5313c54533a9974 data/hexcasting/advancements/recipes/tools/staff/birch.json +1a0d55e6824c078453c1d44e885a1c51ba707a41 data/hexcasting/recipes/dye_colorizer_white.json +8f8773a541bc6a4a6c55a23f4f98b5da4f61a031 data/hexcasting/recipes/scroll_paper.json +bc729ac7cf84d29a99cd34d50c152c0b9d20bd7a data/hexcasting/advancements/recipes/brainsweep/brainsweep/akashic_record.json +4a803e049915fd3c7144155ae3a1b05a917ea290 data/hexcasting/recipes/pride_colorizer_pansexual.json +0654e70ed1ed8be20ae3dd9f4955cd14f9fa40d0 data/hexcasting/advancements/recipes/tools/staff/jungle.json +8bea75fdc5e64c464dcf5f85166e767ff44e6dc2 data/hexcasting/advancements/recipes/misc/pride_colorizer_lesbian.json +5e98cec2084f0cfbb959c3ec39bd85a3369f443b data/hexcasting/advancements/recipes/tools/abacus.json +0b172aef920da7ba63fe152903ce005c1f5df5f1 data/hexcasting/recipes/staff/acacia.json +7e1a5a873d655e0efba80f22ae9b1de4f248e67a data/hexcasting/advancements/recipes/misc/decompose_quenched_shard/shard.json +3608f0ec056f2c5d29a9a89305218497fd2c4383 data/hexcasting/recipes/stonecutting/amethyst_tiles.json +2a2f60fb0f63ee278b74c418acf04575304c521f data/hexcasting/advancements/recipes/tools/jeweler_hammer.json +8c043c7f6a7911b67324e2fd42f0b3b19a792af3 data/hexcasting/recipes/ancient_scroll_paper_lantern.json +4680e9dafcf9b60b3485609519d66eefcfd539bc data/hexcasting/recipes/staff/dark_oak.json +095aeb2882c6849f10fb6536e7c780790778e5e7 data/hexcasting/recipes/staff/jungle.json +b624d103d944a8a1d4d8a9e85c198a5492b476f8 data/hexcasting/advancements/recipes/redstone/edified_trapdoor.json +eb9ebf77f0daa32f665a60888fcda19c940f0b2f data/hexcasting/advancements/recipes/misc/pride_colorizer_demigirl.json +8f7b81add0153ad94900acc66cd8174ae7115f64 data/hexcasting/advancements/recipes/building_blocks/slate_block_from_slates.json +838b91c33a72a58aa286607eaaa17cdd6b4c90ba data/hexcasting/recipes/amethyst_sconce.json +664ce1a38c9b1c9ec21b7e078631e181fc0b2498 data/hexcasting/recipes/staff/edified.json +7522be58b09554a3f1a54d5b2343c3eab01447a3 data/hexcasting/recipes/dye_colorizer_magenta.json +ee5db13cbb33d9c62bcb1eb645e2c4bea97ad44a data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_unpacking.json +203b7035125390abb4ed77b3a4dca8f8f8f57bc5 data/hexcasting/recipes/dye_colorizer_light_gray.json +f8ee073c1c03f1c11147e4801eeba1f86e5459ba data/hexcasting/recipes/dye_colorizer_blue.json +a366ea3750adc0d336ab8f318c40baed3f9c3eb7 data/hexcasting/recipes/brainsweep/impetus_storedplayer.json +51b047601368a103be166d907633b196d2d8a4e8 data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log.json +f4c56ea7143ce92a0ae0b663310e53644a7309f7 data/hexcasting/advancements/recipes/misc/pride_colorizer_pansexual.json +6f2634e5588aede8e29157ecc859652d8a9f4065 data/hexcasting/advancements/recipes/misc/dye_colorizer_orange.json +f1bae034d27d218bf262a8c777b787d232489f16 data/hexcasting/recipes/lens.json +06402fb37fe4bb05918d13dbfdb89f4c2b67f3ec data/hexcasting/advancements/recipes/tools/cypher.json +ed5c690324e3d9b55599f00f078ae225072a2e7f data/hexcasting/recipes/brainsweep/impetus_rightclick.json +c43fb770003c8d882fd9c1e7d1ecb5f196cba1ab data/hexcasting/recipes/cypher.json +4d5e4a6374731b2d0a90c70a5d489703fd966977 data/hexcasting/advancements/recipes/misc/dye_colorizer_lime.json +0864e8b86bdad0bf9ab2ddeb0cd5a182808b5a0a data/hexcasting/recipes/default_colorizer.json +7d71eb93bbb0856167cf4521283e39f0048078ee data/hexcasting/advancements/recipes/redstone/edified_button.json +72f70637aea1c11683e9ee91d83c2807c6ec33a9 data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_trapdoor.json +1e51cd4f527b3aea4d61d91829e47c191c9c05bb data/hexcasting/recipes/pride_colorizer_gay.json +42b8e462de1d7006de3a7658757377450e773107 data/hexcasting/advancements/recipes/misc/dye_colorizer_blue.json +775560efa36581389c0319435bda035be262ed4f data/hexcasting/advancements/recipes/building_blocks/edified_stairs.json +09096a40275b6c49d4b4e6984869aa43b34712c3 data/hexcasting/recipes/dynamicseal_focus.json +8f515bf8ccea70b3d88845ed83966dc0c66082f6 data/hexcasting/advancements/recipes/tools/staff/oak.json +b29f9d9c14e60ded1148680e2e0ef405b5a3c845 data/hexcasting/advancements/recipes/misc/uuid_colorizer.json +071e5875b13b60aac33bc97e408d2ca710ac5d02 data/hexcasting/advancements/recipes/building_blocks/stonecutting/amethyst_tiles.json +3bf96944a8eed8b8d3f5d96b609297727c078cb7 data/hexcasting/advancements/recipes/misc/dye_colorizer_purple.json +846baaef37844216b57bb9b35e52b1bb6b56b413 data/hexcasting/advancements/recipes/decorations/scroll_small.json +db5ae3a2fda235cf1c83fd83e0026a262e668217 data/hexcasting/advancements/recipes/building_blocks/edified_slab.json +6493676f8ca93a7be8d70e25d69ddad935b3f16b data/hexcasting/advancements/recipes/tools/lens.json +a8d604ba059d54502837809815d3ac9bbcaa89bf data/hexcasting/advancements/recipes/redstone/akashic_bookshelf.json +0aaf55492e850d2bb1ec2f9986406ca61fde4cfd data/hexcasting/recipes/dye_colorizer_lime.json +dcc9bf721dd40724abcc69f1f7e8a1610dbf88f3 data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_door.json +f81053a3269c1b371be3f8057bad4803056ee0f9 data/hexcasting/recipes/dye_colorizer_orange.json +f77518b6993fe8e31de10af286c33ab72c0f9077 data/hexcasting/advancements/recipes/redstone/impetus/empty.json +3b03fdae3896212a0b8b9b3a2d4880d197e67d2d data/hexcasting/recipes/jeweler_hammer.json +d7de5d626fd799a2522af36f0c62c52fe490e6d2 data/hexcasting/recipes/edified_door.json +aa7558ec1baf6070efbe448d886e20e964e33f96 data/hexcasting/advancements/recipes/brainsweep/brainsweep/quench_allay.json +cedc2889c4f327b18755bbe8c3c595d302e2a9d0 data/hexcasting/recipes/decompose_quenched_shard/shard.json +8c52917fc7041c483fb6dfe8d16c90f096f2beaf data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_amethyst.json +40ed21dc80d39236ca0e6d2cea60861c637cf931 data/hexcasting/advancements/recipes/misc/pride_colorizer_nonbinary.json +ef96ae9709ec931ce6b6af8a539f9bc483236449 data/hexcasting/recipes/scroll_medium.json +61fafd43af83bdca6720d0993ab71f40a8bebd40 data/hexcasting/advancements/recipes/redstone/akashic_connector.json +f08a0aee92b281ae325d907e6fe4a3b03980f2aa data/hexcasting/advancements/recipes/tools/staff/edified.json +7552df3fc726cc4cdaa88aa4823eff6ce069fb75 data/hexcasting/recipes/slate_block_from_slates.json +77369113dc54d1c64b9101861dd8a1930bf1c1c4 data/hexcasting/recipes/edified_wood.json +1ad54df5eaee3d1e810d2c91bd03f626084e30b6 data/hexcasting/recipes/edified_trapdoor.json +ce9d0b976f7cc8ad4a0815bbea6c43115addb90f data/hexcasting/advancements/recipes/building_blocks/scroll_paper.json +af9a260c24e0a65eea321f0dd9dd2fa7d648707f data/hexcasting/advancements/recipes/building_blocks/amethyst_dust_packing.json +923e7cd200518042f11474713eca9ccad126dab7 data/hexcasting/recipes/staff/spruce.json +ad647a2078099344ea7f9836a68e1bf8e8119277 data/hexcasting/advancements/recipes/misc/dye_colorizer_brown.json +0038883bd294cc8a1b324d6782478d5e37b4dbf9 data/hexcasting/advancements/recipes/misc/dye_colorizer_pink.json +170af3c83a45f9550827cc48e4bb5a621d06d685 data/hexcasting/advancements/recipes/misc/pride_colorizer_transgender.json +8815ea5d8d7379062e050adc5736cc579c3bdd9e data/hexcasting/recipes/edified_stairs.json +b6fa898369ac52cdd9d7f91e3b8a2cb881c3829f data/hexcasting/advancements/recipes/decorations/scroll_medium.json +04902d4eca30560bc601a8196d82f74f3fa5b191 data/hexcasting/recipes/dynamicseal_spellbook.json +d6b7a9392320c11866b3f139f97977dc9f55bc47 data/hexcasting/recipes/scroll_small.json +8e48c680b38666c2e7da71fbe4ceddf5d99a5cbc data/hexcasting/advancements/recipes/food/sub_sandwich.json +5e28e2c352366720ce91b73f8c8c38e217f7198d data/hexcasting/recipes/edified_fence_gate.json +004e0694b3bf53140be7df89a4defc255b800619 data/hexcasting/advancements/recipes/tools/focus_rotated.json +faaa9c39dbcdd131c5fbec9ac6a26d6dc5e72053 data/hexcasting/advancements/recipes/misc/dye_colorizer_light_gray.json +55602e415fc1b797439b674050887e9e388558c9 data/hexcasting/advancements/recipes/building_blocks/edified_panel.json +151875101066f7af5788c7a2e1c6b342971a546a data/hexcasting/recipes/compat/farmersdelight/cutting/akashic_wood.json +0bd7c9f4a9bf29c1b63b2f9378f0a7e2f594b7b7 data/hexcasting/recipes/pride_colorizer_nonbinary.json +ea46e570a43cd3ea1cc78c51d9da45d93944730a data/hexcasting/advancements/recipes/redstone/directrix/empty.json +b20be6eb5a8b60567871444e65d773ec9a67ece1 data/hexcasting/recipes/staff/crimson.json +c03c81dc123294472e8bb6f836c319e96f8db4f5 data/hexcasting/advancements/recipes/building_blocks/edified_fence.json +92bdf87687d8823036fae6bd01782c653831286b data/hexcasting/recipes/brainsweep/impetus_look.json +06ca609ba1a32f094cf6edbc989bc9ddaf9d342c data/hexcasting/advancements/recipes/misc/pride_colorizer_genderfluid.json +552c235dc58a46a3e57913c9b9faf3f21abeae32 data/hexcasting/advancements/recipes/building_blocks/stripped_edified_wood.json +c2a0a489967db4064dfbe1ee6367e132665f3c00 data/hexcasting/recipes/edified_slab.json +1a9dd55a24f56a4e9467f1117e0898f7e71ade67 data/hexcasting/advancements/recipes/decorations/amethyst_sconce.json +27dc4a1647f264c45b27f5552fd9403a02853484 data/hexcasting/advancements/recipes/tools/spellbook.json +2eacf53894ae97712dc3874777e29dce0a0e5540 data/hexcasting/advancements/recipes/misc/pride_colorizer_asexual.json +e11aeded7f5d3fdd224627c67661bbd993901703 data/hexcasting/recipes/edified_pressure_plate.json +e691130641b11c0a030a51c71dee0ba356f3b5bd data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_aventurine.json +7baf0777533737aef68bcac36944943b77138d29 data/hexcasting/recipes/edified_button.json +63189af501442318a90c16d6951e51c0c5d6d4f3 data/hexcasting/recipes/compat/farmersdelight/cutting/edified_log_purple.json +499c5c09e3772989350f9ab3264b8692449a6dea data/hexcasting/advancements/recipes/misc/pride_colorizer_gay.json +b16ff5314d457bc7e9e224e102d1e04ce3a62361 data/hexcasting/recipes/brainsweep/directrix_redstone.json +bd63b845e02ee4b1b9abe168a196335ccbed1ca5 data/hexcasting/recipes/scroll_paper_lantern.json +afb422ad4a918ee0161bf077f09475bb1da2b4eb data/hexcasting/recipes/amethyst_dust_unpacking.json +d47352426739a0fc500a385d820d767a307e1d16 data/hexcasting/advancements/recipes/misc/dye_colorizer_black.json +f0e71ae8c6a9170669f44096a55a875d11497c56 data/hexcasting/recipes/staff/warped.json +78958099bf4337ad281580d90f434b3074ad18c8 data/hexcasting/recipes/pride_colorizer_genderqueer.json diff --git a/Fabric/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json new file mode 100644 index 0000000000..61cb019a11 --- /dev/null +++ b/Fabric/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "hexcasting:conjured_block", + "hexcasting:conjured_light" + ] +} \ No newline at end of file diff --git a/Forge/src/generated/resources/.cache/50b16d832771f8a8317f4d1b88c5121208c8c4f9 b/Forge/src/generated/resources/.cache/50b16d832771f8a8317f4d1b88c5121208c8c4f9 index f38d8f9048..590a18fdb1 100644 --- a/Forge/src/generated/resources/.cache/50b16d832771f8a8317f4d1b88c5121208c8c4f9 +++ b/Forge/src/generated/resources/.cache/50b16d832771f8a8317f4d1b88c5121208c8c4f9 @@ -1,5 +1,6 @@ -// 1.20.1 2023-12-24T17:58:56.8920242 Tags for minecraft:block mod id vanilla +// 1.20.1 2024-08-27T12:44:48.881057546 Tags for minecraft:block mod id vanilla c5aac196bf97183b43d794c6aac8e206f4b71e37 data/hexcasting/tags/blocks/brainswept_circle_components.json +0ac2f0afe13705ae24edcb339a5e1e2cdcfe51cf data/hexcasting/tags/blocks/cheap_to_break_block.json abaec2d0102fef5865ac638cf7c528a4d5b2a69b data/hexcasting/tags/blocks/directrices.json 7e27f819889d2f0bca863b1cdb6d7d640ea21986 data/hexcasting/tags/blocks/edified_logs.json 86828f8056bfdfdd2aff10d7a9dbc6c269c25b8a data/hexcasting/tags/blocks/edified_planks.json @@ -8,8 +9,8 @@ abaec2d0102fef5865ac638cf7c528a4d5b2a69b data/hexcasting/tags/blocks/directrices 841dfbe4970e9167b205e5aa2b0f0936c6b9af60 data/minecraft/tags/blocks/buttons.json 8b7d16a34235e6062e47f6b3a3a08be760a3bb85 data/minecraft/tags/blocks/crystal_sound_blocks.json cba96d2ff28087e7fd9807e5e80104f3befc2512 data/minecraft/tags/blocks/doors.json -c460821db89b3d3f95a0fb336b6b6625da65ec37 data/minecraft/tags/blocks/fences.json d57d93d193fada6e232bde266430a155fa6e1707 data/minecraft/tags/blocks/fence_gates.json +c460821db89b3d3f95a0fb336b6b6625da65ec37 data/minecraft/tags/blocks/fences.json 6312e44ef31d2401dddbd46c4d3eda03da6e2db3 data/minecraft/tags/blocks/leaves.json 7e27f819889d2f0bca863b1cdb6d7d640ea21986 data/minecraft/tags/blocks/logs.json 7e27f819889d2f0bca863b1cdb6d7d640ea21986 data/minecraft/tags/blocks/logs_that_burn.json diff --git a/Forge/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json b/Forge/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json new file mode 100644 index 0000000000..7fc52a816b --- /dev/null +++ b/Forge/src/generated/resources/data/hexcasting/tags/blocks/cheap_to_break_block.json @@ -0,0 +1,6 @@ +{ + "values": [ + "hexcasting:conjured_block", + "hexcasting:conjured_light" + ] +} \ No newline at end of file