merge in the lore

This commit is contained in:
gamma-delta 2022-06-14 20:42:52 -05:00
commit 726fc8427e
28 changed files with 646 additions and 9 deletions

View file

@ -219,6 +219,7 @@ caa61533880d52ad861b275668ae6323a9d0159d assets/hexcasting/models/item/focus_sea
458550229be6036be246e290e99b643caa8b3f8a assets/hexcasting/models/item/impetus_storedplayer.json
597a4f9921c40e40f33af722098edf1dc8ed4477 assets/hexcasting/models/item/jeweler_hammer.json
891f2cf2aab18f85e5601ae37248b5d454918fef assets/hexcasting/models/item/lens.json
90992459714eb8efe03101c1fa9a9bec64f0cc0f assets/hexcasting/models/item/lore_fragment.json
22ec49ee56e2d0d9fca4473f965c64b82d712f79 assets/hexcasting/models/item/patchouli_book.json
d7dd348ef3d402a0e6d1c601581e30e99f9bcc87 assets/hexcasting/models/item/phial_large_0.json
5147beeb112a619702943b4da66a1c60484e5f10 assets/hexcasting/models/item/phial_large_1.json
@ -287,6 +288,15 @@ f043370d6762b976e33dd6e9562d5e1659d32bbf assets/hexcasting/models/item/wand_old.
b6593ea802a692c29b5032292df31beb84878ad8 data/hexcasting/advancements/aaa_wasteful_cast.json
4f4c94021adfb296e3ef3dce1acc46f724f38f92 data/hexcasting/advancements/aab_big_cast.json
2fe3543a209fca031b1eace7ea217c76142609cc data/hexcasting/advancements/enlightenment.json
00710abf5597103004af78e478bacce9ee8aa750 data/hexcasting/advancements/lore.json
048c29d585641bd3349364a9c2b959b66fc3a130 data/hexcasting/advancements/lore/experiment1.json
f2944c45dfb728b0888a29d816d2cba9730aba13 data/hexcasting/advancements/lore/experiment2.json
9a06cc14ef8487d3b996c15777583ca570ebe63c data/hexcasting/advancements/lore/inventory.json
53ddbb1ad5ab271da2838927104e9a05c553674d data/hexcasting/advancements/lore/terabithia1.json
8c44e413a9a0f3338aed0bcf47e53ac0d4e8fa79 data/hexcasting/advancements/lore/terabithia2.json
07eb6c1575a74fb8104b1390ae5604373d02f9ce data/hexcasting/advancements/lore/terabithia3.json
fa8082274cc22d6da915fc07f432d3e6324774ff data/hexcasting/advancements/lore/terabithia4.json
ff3227e99da0d2c01b8732a9cef6fbaac0848f31 data/hexcasting/advancements/lore/terabithia5.json
eb6393ffc79966e4b5983a68157742b78cd12414 data/hexcasting/advancements/opened_eyes.json
ed0e62cb81783d8eb6323dd70609067219f163ec data/hexcasting/advancements/root.json
739cbdf7f204132f2acfab4df8d21c6197aa1456 data/hexcasting/advancements/y_u_no_cast_angy.json

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "hexcasting:item/lore_fragment"
}
}

View file

@ -0,0 +1,35 @@
{
"display": {
"icon": {
"item": "hexcasting:akashic_connector"
},
"title": {
"translate": "advancement.hexcasting:lore"
},
"description": {
"translate": "advancement.hexcasting:lore.desc"
},
"frame": "goal",
"show_toast": true,
"announce_to_chat": true,
"hidden": false,
"background": "hexcasting:textures/block/slate.png"
},
"criteria": {
"used_item": {
"trigger": "minecraft:consume_item",
"conditions": {
"item": {
"items": [
"hexcasting:lore_fragment"
]
}
}
}
},
"requirements": [
[
"used_item"
]
]
}

View file

@ -0,0 +1,28 @@
{
"parent": "hexcasting:lore",
"display": {
"icon": {
"item": "hexcasting:lore_fragment"
},
"title": {
"translate": "advancement.hexcasting:lore/experiment1"
},
"description": {
"text": ""
},
"frame": "task",
"show_toast": true,
"announce_to_chat": true,
"hidden": true
},
"criteria": {
"grant": {
"trigger": "minecraft:impossible"
}
},
"requirements": [
[
"grant"
]
]
}

View file

@ -0,0 +1,28 @@
{
"parent": "hexcasting:lore",
"display": {
"icon": {
"item": "hexcasting:lore_fragment"
},
"title": {
"translate": "advancement.hexcasting:lore/experiment2"
},
"description": {
"text": ""
},
"frame": "task",
"show_toast": true,
"announce_to_chat": true,
"hidden": true
},
"criteria": {
"grant": {
"trigger": "minecraft:impossible"
}
},
"requirements": [
[
"grant"
]
]
}

View file

@ -0,0 +1,28 @@
{
"parent": "hexcasting:lore",
"display": {
"icon": {
"item": "hexcasting:lore_fragment"
},
"title": {
"translate": "advancement.hexcasting:lore/inventory"
},
"description": {
"text": ""
},
"frame": "task",
"show_toast": true,
"announce_to_chat": true,
"hidden": true
},
"criteria": {
"grant": {
"trigger": "minecraft:impossible"
}
},
"requirements": [
[
"grant"
]
]
}

View file

@ -0,0 +1,28 @@
{
"parent": "hexcasting:lore",
"display": {
"icon": {
"item": "hexcasting:lore_fragment"
},
"title": {
"translate": "advancement.hexcasting:lore/terabithia1"
},
"description": {
"text": ""
},
"frame": "task",
"show_toast": true,
"announce_to_chat": true,
"hidden": true
},
"criteria": {
"grant": {
"trigger": "minecraft:impossible"
}
},
"requirements": [
[
"grant"
]
]
}

View file

@ -0,0 +1,28 @@
{
"parent": "hexcasting:lore",
"display": {
"icon": {
"item": "hexcasting:lore_fragment"
},
"title": {
"translate": "advancement.hexcasting:lore/terabithia2"
},
"description": {
"text": ""
},
"frame": "task",
"show_toast": true,
"announce_to_chat": true,
"hidden": true
},
"criteria": {
"grant": {
"trigger": "minecraft:impossible"
}
},
"requirements": [
[
"grant"
]
]
}

View file

@ -0,0 +1,28 @@
{
"parent": "hexcasting:lore",
"display": {
"icon": {
"item": "hexcasting:lore_fragment"
},
"title": {
"translate": "advancement.hexcasting:lore/terabithia3"
},
"description": {
"text": ""
},
"frame": "task",
"show_toast": true,
"announce_to_chat": true,
"hidden": true
},
"criteria": {
"grant": {
"trigger": "minecraft:impossible"
}
},
"requirements": [
[
"grant"
]
]
}

View file

@ -0,0 +1,28 @@
{
"parent": "hexcasting:lore",
"display": {
"icon": {
"item": "hexcasting:lore_fragment"
},
"title": {
"translate": "advancement.hexcasting:lore/terabithia4"
},
"description": {
"text": ""
},
"frame": "task",
"show_toast": true,
"announce_to_chat": true,
"hidden": true
},
"criteria": {
"grant": {
"trigger": "minecraft:impossible"
}
},
"requirements": [
[
"grant"
]
]
}

View file

@ -0,0 +1,28 @@
{
"parent": "hexcasting:lore",
"display": {
"icon": {
"item": "hexcasting:lore_fragment"
},
"title": {
"translate": "advancement.hexcasting:lore/terabithia5"
},
"description": {
"text": ""
},
"frame": "task",
"show_toast": true,
"announce_to_chat": true,
"hidden": true
},
"criteria": {
"grant": {
"trigger": "minecraft:impossible"
}
},
"requirements": [
[
"grant"
]
]
}

View file

@ -0,0 +1,86 @@
package at.petrak.hexcasting.common.items;
import at.petrak.hexcasting.common.lib.HexSounds;
import net.minecraft.Util;
import net.minecraft.advancements.Advancement;
import net.minecraft.advancements.CriteriaTriggers;
import net.minecraft.network.chat.ChatType;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundSource;
import net.minecraft.stats.Stats;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static at.petrak.hexcasting.api.HexAPI.modLoc;
public class ItemLoreFragment extends Item {
public static final List<ResourceLocation> NAMES = List.of(new ResourceLocation[]{
modLoc("lore/terabithia1"),
modLoc("lore/terabithia2"),
modLoc("lore/terabithia3"),
modLoc("lore/terabithia4"),
modLoc("lore/terabithia5"),
modLoc("lore/experiment1"),
modLoc("lore/experiment2"),
modLoc("lore/inventory"),
});
public static final String CRITEREON_KEY = "grant";
public ItemLoreFragment(Properties properties) {
super(properties);
}
@Override
public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand usedHand) {
player.playSound(HexSounds.READ_LORE_FRAGMENT, 1f, 1f);
var handStack = player.getItemInHand(usedHand);
if (!(player instanceof ServerPlayer splayer)) {
handStack.shrink(1);
return InteractionResultHolder.success(handStack);
}
Advancement unfoundLore = null;
var shuffled = new ArrayList<>(NAMES);
Collections.shuffle(shuffled);
for (var advID : shuffled) {
var adv = splayer.level.getServer().getAdvancements().getAdvancement(advID);
if (adv == null) {
continue; // uh oh
}
if (!splayer.getAdvancements().getOrStartProgress(adv).isDone()) {
unfoundLore = adv;
break;
}
}
if (unfoundLore == null) {
splayer.sendMessage(new TranslatableComponent("item.hexcasting.lore_fragment.all"), ChatType.GAME_INFO,
Util.NIL_UUID);
splayer.giveExperiencePoints(20);
level.playSound(null, player.position().x, player.position().y, player.position().z,
HexSounds.READ_LORE_FRAGMENT, SoundSource.PLAYERS, 1f, 1f);
} else {
// et voila!
splayer.getAdvancements().award(unfoundLore, CRITEREON_KEY);
}
CriteriaTriggers.CONSUME_ITEM.trigger(splayer, handStack);
splayer.awardStat(Stats.ITEM_USED.get(this));
handStack.shrink(1);
return InteractionResultHolder.success(handStack);
}
}

View file

@ -52,8 +52,8 @@ public class HexItems {
public static final ItemSpellbook SPELLBOOK = make("spellbook", new ItemSpellbook(unstackable()));
public static final ItemCypher CYPHER = make("cypher", new ItemCypher(unstackable()));
public static final ItemTrinket TRINKET = make("trinket", new ItemTrinket(unstackable()));
public static final ItemArtifact ARTIFACT = make("artifact", new ItemArtifact(unstackable()));
public static final ItemTrinket TRINKET = make("trinket", new ItemTrinket(unstackable().rarity(Rarity.UNCOMMON)));
public static final ItemArtifact ARTIFACT = make("artifact", new ItemArtifact(unstackable().rarity(Rarity.RARE)));
public static final ItemJewelerHammer JEWELER_HAMMER = make("jeweler_hammer",
new ItemJewelerHammer(Tiers.IRON, 0, -2.8F, props().stacksTo(1).defaultDurability(Tiers.DIAMOND.getUses())));
@ -89,6 +89,10 @@ public class HexItems {
public static final Item SUBMARINE_SANDWICH = make("sub_sandwich",
new Item(props().food(new FoodProperties.Builder().nutrition(14).saturationMod(1.2f).build())));
public static final ItemLoreFragment LORE_FRAGMENT = make("lore_fragment",
new ItemLoreFragment(unstackable()
.rarity(Rarity.RARE)));
public static final ItemCreativeUnlocker CREATIVE_UNLOCKER = make("creative_unlocker",
new ItemCreativeUnlocker(unstackable()
.rarity(Rarity.EPIC)

View file

@ -38,6 +38,8 @@ public class HexSounds {
public static final SoundEvent IMPETUS_LOOK_TICK = sound("impetus.fletcher.tick");
public static final SoundEvent IMPETUS_STOREDPLAYER_DING = sound("impetus.cleric.register");
public static final SoundEvent READ_LORE_FRAGMENT = sound("lore_fragment.read");
private static SoundEvent sound(String name) {
var id = modLoc(name);
var sound = new SoundEvent(id);

View file

@ -5,15 +5,16 @@ import at.petrak.hexcasting.api.advancements.FailToCastGreatSpellTrigger;
import at.petrak.hexcasting.api.advancements.OvercastTrigger;
import at.petrak.hexcasting.api.advancements.SpendManaTrigger;
import at.petrak.hexcasting.api.misc.ManaConstants;
import at.petrak.hexcasting.common.items.ItemLoreFragment;
import at.petrak.hexcasting.common.lib.HexBlocks;
import at.petrak.hexcasting.common.lib.HexItems;
import at.petrak.paucal.api.datagen.PaucalAdvancementProvider;
import net.minecraft.advancements.Advancement;
import net.minecraft.advancements.DisplayInfo;
import net.minecraft.advancements.FrameType;
import net.minecraft.advancements.critereon.EntityPredicate;
import net.minecraft.advancements.critereon.InventoryChangeTrigger;
import net.minecraft.advancements.critereon.MinMaxBounds;
import net.minecraft.advancements.critereon.*;
import net.minecraft.data.DataGenerator;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemStack;
@ -90,6 +91,23 @@ public class HexAdvancements extends PaucalAdvancementProvider {
MinMaxBounds.Doubles.between(0.1, 2.05)))
.save(consumer, prefix("enlightenment"));
var loreRoot = Advancement.Builder.advancement()
.display(simpleDisplayWithBackground(HexBlocks.AKASHIC_CONNECTOR, "lore", FrameType.GOAL,
modLoc("textures/block/slate.png")))
.addCriterion("used_item", new ConsumeItemTrigger.TriggerInstance(EntityPredicate.Composite.ANY,
ItemPredicate.Builder.item().of(HexItems.LORE_FRAGMENT).build()))
.save(consumer, prefix("lore"));
for (var advId : ItemLoreFragment.NAMES) {
Advancement.Builder.advancement()
.display(new DisplayInfo(new ItemStack(HexItems.LORE_FRAGMENT),
new TranslatableComponent("advancement." + advId), TextComponent.EMPTY,
null, FrameType.TASK, true, true, true))
.parent(loreRoot)
.addCriterion(ItemLoreFragment.CRITEREON_KEY, new ImpossibleTrigger.TriggerInstance())
.save(consumer, advId.toString());
}
// super.registerAdvancements(consumer, fileHelper);
}
}

View file

@ -70,7 +70,8 @@
"item.hexcasting.creative_unlocker.for_emphasis": "INFINITE MEDIA",
"item.hexcasting.creative_unlocker.tooltip.1": "Consume to unlock all %s knowledge.",
"item.hexcasting.creative_unlocker.mod_name": "Hexcasting",
"item.hexcasting.lore_fragment": "Lore Fragment",
"item.hexcasting.lore_fragment.all": "It seems I have found all the lore this world has to offer.",
"block.hexcasting.conjured": "Conjured Block",
"block.hexcasting.slate.blank": "Blank Slate",
@ -160,6 +161,21 @@
"advancement.hexcasting:y_u_no_cast_angy.desc": "Try to cast a spell from a scroll, but fail.",
"advancement.hexcasting:opened_eyes": "Opened Eyes",
"advancement.hexcasting:opened_eyes.desc": "Have nature take a piece of your mind in payment for a hex.",
"advancement.hexcasting:lore": "Hexcasting Lore",
"advancement.hexcasting:lore.desc": "Read a Lore Fragment",
"advancement.hexcasting:lore/terabithia1": "Terabithia Steles",
"advancement.hexcasting:lore/terabithia1.desc": "Letter from Terabithia Steles to Her Father, #2",
"advancement.hexcasting:lore/terabithia2": "Terabithia Steles",
"advancement.hexcasting:lore/terabithia2.desc": "Letter from Terabithia Steles to Her Father, #2",
"advancement.hexcasting:lore/terabithia3": "Terabithia Steles",
"advancement.hexcasting:lore/terabithia3.desc": "Letter from Terabithia Steles to Her Father, #3, 1/2",
"advancement.hexcasting:lore/terabithia4": "Terabithia Steles",
"advancement.hexcasting:lore/terabithia4.desc": "Letter from Terabithia Steles to Her Father, #3, 2/2",
"advancement.hexcasting:lore/terabithia5": "Terabithia Steles",
"advancement.hexcasting:lore/terabithia5.desc": "Letter from Terabithia Steles to Her Father, #5",
"advancement.hexcasting:lore/experiment1": "Wooleye Instance Notes",
"advancement.hexcasting:lore/experiment2": "Wooleye Interview Logs",
"advancement.hexcasting:lore/inventory": "Restoration Log 72",
"stat.hexcasting.mana_used": "Media Consumed (in dust)",
"stat.hexcasting.mana_overcasted": "Media Overcast (in dust)",
@ -198,6 +214,7 @@
"hexcasting.subtitles.scroll.scribble": "Scroll is scribbled",
"hexcasting.subtitles.impetus.fletcher.tick": "Fletcher Impetus ticks",
"hexcasting.subtitles.impetus.cleric.register": "Cleric Impetus dings",
"hexcasting.subtitles.lore_fragment.read": "Read lore fragment",
"hexcasting.spell.hexcasting:get_caster": "Mind's Reflection",
"hexcasting.spell.hexcasting:get_entity_pos": "Compass' Purification",
@ -983,6 +1000,90 @@
"hexcasting.page.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.",
"hexcasting.entry.lore": "Lore",
"hexcasting.entry.lore.desc": "I have uncovered some letters and text not of direct relavence to my art. But, I think I may be able to divine some of the history of the world from these. Let me see...",
"hexcasting.entry.lore.terabithia1": "Terabithia Steles, #1",
"hexcasting.page.lore.terabithia1.1": "$(italic)Full title: Letter from Terabithia 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.",
"hexcasting.page.lore.terabithia1.2": "I sit in the main dome as I write this. It's maintained by the Hexcasting Corps; they have some sort of peculiar mechanism at the top that captures the stray thought energy as it leaks out from the desks and desks of hard-working students, as I understand it. One of my friends in the dormitory, Amanita, is studying the subject, and oh how she loves to explain it to me at length, although I confess I do not understand it very well.",
"hexcasting.page.lore.terabithia1.3": "The way I understand it, our processes of thought--the intangible mechanisms by which I move my pen and by which you read this letter--are not completely efficient. A small amount of that energy is released into the environment, like how a wagon's axle is hot to the touch after it has been turning for a while. This spare energy is called \"media.\" One person's spare media is trifiling, but the hundreds of thinking people in the main dome have a sort of multiplicative effect, and combined with some sort of ingenious mechanism, it can be solidified into a sort of purple crystal.",
"hexcasting.page.lore.terabithia1.4": "But that's enough about her studies. I returned from my first expedition with the Geology Corps today! My apologies for not sending a letter before I left; the date crept up on me. We ventured into a crack in the earth to the east of the Grand and spent the night camping under the rock and soil. We kept to well-lit and well-traveled areas of the cave, of course, and in all honesty it was likely safer in there than the night surface, but oh how I was scared!",
"hexcasting.page.lore.terabithia1.5": "Fortunately the night passed without mishap, and we proceeded deeper into the cave for our examination of the local veins of ore. We were looking for trace veins of a purple crystal called \"amethyst,\" which supposedly occurs in small amounts deep in the rock. We did not find anything, sadly, and returned to the sunlit surface empty-handed.",
"hexcasting.page.lore.terabithia1.6": "Come to think of it, the description of this \"amethyst\" I now realize closely matches those crystals of media Amanita speaks of. Imagine if these nuggets of thought occurred naturally under the ground! I can't imagine why that might happen, though... ",
"hexcasting.page.lore.terabithia1.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!",
"hexcasting.page.lore.terabithia1.8": "So, I suppose I will write again in three months' time.$(br2)Yours,$(br)-- Terabithia Steles",
"hexcasting.entry.lore.terabithia2": "Terabithia Steles, #2",
"hexcasting.page.lore.terabithia2.1": "$(italic)Full title: Letter from Terabithia 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.",
"hexcasting.page.lore.terabithia2.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.)",
"hexcasting.page.lore.terabithia2.3": "We did manage to find some of this amethyst, however. There was a small vein with a few trace crystals on one of our expeditions. We were under strict instructions to keep none of them and turn them in to our Corps prefect immediately. I find the whole affair rather ridiculous; they treat it like some matter of enormous importance and secrecy, and yet have a group of a dozen students, all barely six months at the Grand Library, trying to excavate barely ten drams of the stuff with twelve prospector's picks in a square foot...",
"hexcasting.page.lore.terabithia2.4": "I cannot imagine for what purpose, either. A librarian pointed me to an encyclopedia of gems, and amethyst seems to have next to no purpose; it's used for certain specialty types of glass and lenses, of all things.$(br2)If I were to speculate, I would guess that these amethyst crystals and the media they so resemble are one and the same, as I wrote of last time.",
"hexcasting.page.lore.terabithia2.5": "If this is true, the secrecy, not to mention the prefect's aversion to questioning, may be because this is an original piece of research the Grand Library is not eager to let into the hands of enemy factions.$(br2)However, this theory does not sit quite right with me. The amethyst I handled in the cave and the crystals of media Amanita has shown to me do seem quite similar, but not identical. I would like to see them side-by-side to be sure, but media has a peculiar buzzing or rumbling feel beneath the fingers that amethyst does not.",
"hexcasting.page.lore.terabithia2.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.",
"hexcasting.page.lore.terabithia2.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)-- Terabithia Steles",
"hexcasting.entry.lore.terabithia3": "Terabithia Steles, #3, 1/2",
"hexcasting.page.lore.terabithia3.1": "$(italic)Full title: Letter from Terabithia 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.",
"hexcasting.page.lore.terabithia3.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.",
"hexcasting.page.lore.terabithia3.3": "But amazingly, that is not the stranger of the two things I have to tell you. The most horrendous thing I hope to ever experience happened on another trip out with the Geology Corps. This time, we were due for an expedition near a village.",
"hexcasting.page.lore.terabithia3.4": "Usually when we do such a thing, there is a long process of communication with the mayor or elder of the village to ensure we have permission and establish boundaries on where we are allowed to go and what we are allowed to do. But on this expedition, there was very little of that; we were notified where we were going by a prefect of the Hexcasting Corps scarcely two days before we left.",
"hexcasting.page.lore.terabithia3.5": "We camped near the village, but in a thick forest, even though the nearby plains would have been much more hospitable. We could barely see the village from where we pitched our tents. As I laid down my bedroll the evening we arrived, the peculiar silence troubled me. Even if we couldn't see the village, we should have been able to hear it. But the whole time we were above-ground, there was next to no sound.",
"hexcasting.page.lore.terabithia3.6": "The few things I did hear all sounded like work: the peal of hammers on anvils and the scrape of hoe on dirt, for example. I never heard a shred of conversation.$(br2)The next morning we readied our lanterns and descended into the earth.",
"hexcasting.page.lore.terabithia3.7": "We weren't told exactly what it was we were spelunking for, but one of the other students had overheard we were looking for more amethyst, which seemed reasonable enough. I had my eyes trained for any specks of purple I might find in the cave walls, but just as the gray stone was making way to black slate, an incredible sight unfolded before me.$(br2)It was an entire chamber made of amethyst, nearly ten times as tall as I am. The inside seemed to glow with purple sparks and lanternlight glint, every surface covered with jagged crystal. There was more amethyst here than our entire group had ever excavated since I came to the Grand.",
"hexcasting.page.lore.terabithia3.8": "Gloves were distributed and we were told to get to mining. One of the prefects along with us had a peculiar lavender box I've seen some of the higher-ups in the Grand using for storage, and the other students and I dutifully got to shattering the glassy crystals off the walls of the cave and putting them in the box. Under the outer layers of brittle crystal there seemed to be two types of denser growth. One of them seemed of similar composition to the loose crystal, but one seemed more ... I struggle to find the word.",
"hexcasting.page.lore.terabithia3.9": "I hesitate to say \"important,\" but that's the best I can think of. It had a certain ... gravitas, like the dark, sunken X in its surface held some sacred meaning. Whatever the reason we were under strict instructions not to touch them. Occasionally a misplaced pickaxe would shatter one, and the student responsible would get quite the earful. Although the labor was hard and took most of my attention, I couldn't help but notice how ... lucid I felt. It was a strange mix of feelings: I felt incredibly clear-headed, but I also felt if I stopped to examine the feeling I might never stop.",
"hexcasting.page.lore.terabithia3.10": "It was like each breath in erected a friendly signpost in my head promising the way forward, pointing directly down a steep cliff. I shook my head and immersed myself in the work of mining, which seemed to stave off the signposts.$(br2)I did manage, however, to hide a shard of the crystal in my knapsack.$(br2)We spent nearly the whole day mining, excavating most of the crystal by the time the prefects' chronometer said the sun would set soon.",
"hexcasting.page.lore.terabithia3.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.",
"hexcasting.page.lore.terabithia3.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)-- Terabithia Steles",
"hexcasting.entry.lore.terabithia4": "Terabithia Steles, #3, 2/2",
"hexcasting.page.lore.terabithia4.1": "$(italic)Full title: Letter from Terabithia 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.",
"hexcasting.page.lore.terabithia4.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.",
"hexcasting.page.lore.terabithia4.3": "The village was easy enough to find, though there was very little sound. Even this late at night I would expect the inn to be, if not bustling, at least not silent. But peeking through the inn door I saw absolutely nobody.$(br2)I knocked on the door of one of the houses to no response. The next two houses, too, seemed completely empty.",
"hexcasting.page.lore.terabithia4.4": "My pulse started to rise, and I resolved to enter the next house. I figured whoever might be inside would be understanding of their rest being disturbed. At the least, hearing another voice would have been reassuring, even if they didn't let me stay the night under their roof.$(br2)The house was very small, barely more than a cartographer's table and a bed. I could see there was someone in the bed, and I tried to reassure myself that everyone in the village was just deeply asleep as I turned to leave.",
"hexcasting.page.lore.terabithia4.5": "But then the clouds shifted, and moonlight glinted across the bed's occupant.$(br2)I screamed, and its eyes snapped open. It was ... distinctly, horrendously not human. It was like some awful de-evolution of a man, its forehead too high, its body stocky and dense. I believe it is appropriate to say \"it,\" at least; the thing before me was obviously not as wise as a human, despite how it resembled us.",
"hexcasting.page.lore.terabithia4.6": "Its eyes trained on me-- oh, its eyes were awful, dull and unintelligent like a sheep's! It opened its mouth but a pained mockery of speech poured out, a shuddering, nasal groan.",
"hexcasting.page.lore.terabithia4.7": "I ran. In the light of the newly-revealed moon I caught glimpses of other townspeople through windows, and they were all warped and simplified as the first $(italic)thing/$ I had seen. I sprinted into the darkness of the forest, away from those terrible, terrible animal eyes in those distorted faces.$(br2)The camp was easier to find now that I could see in the moonlight. No-one seemed to have noticed my prolonged absence, thankfully. I crawled back into my bedroll and did my very best to forget the whole night.",
"hexcasting.page.lore.terabithia4.8": "As you can tell from this letter, I did not do a very good job. That warped visage still haunts my dreams. I shudder to think that it once might have been human.$(br2)After we got back to the Grand I showed the shard of crystal I had smuggled out to Amanita. She confirmed my suspicions: it is definitely a crystal of media. What an enormous geode full of it is doing underground, though, is beyond her.",
"hexcasting.page.lore.terabithia4.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.",
"hexcasting.page.lore.terabithia4.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)-- Terabithia Steles",
"hexcasting.entry.lore.terabithia5": "Terabithia Steles, #4",
"hexcasting.page.lore.terabithia5.1": "$(italic)Full title: Letter from Terabithia 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--",
"hexcasting.page.lore.terabithia5.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/$?",
"hexcasting.page.lore.terabithia5.3": "They keep shutting things down, too-- we haven't been on a trip for the Geology Corps in weeks, all the apparati that collect media in the main dome are gone, the Apothecary Corps haven't been open for months... it's like termites are eating the Grand from the inside, leaving a hollow shell.$(br2)I think they've started scanning the letters, we write too...",
"hexcasting.page.lore.terabithia5.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.",
"hexcasting.page.lore.terabithia5.5": "i can no longer write, my hands shake so much, please, rescue us.",
"hexcasting.entry.lore.inventory": "Restoration Log #72",
"hexcasting.page.lore.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.",
"hexcasting.page.lore.inventory.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.",
"hexcasting.page.lore.inventory.3": "I am more lucid today. Maybe. I cannot tell anymore. I cannot even say I am tired anymore; at some point the constant companion of exhaustion left me, even as something else came to prick at my eyes. I can't sense the fatigue. But it's there.$(br2)My bones are fragile. My joints are rough and sharp.",
"hexcasting.page.lore.inventory.4": "Sometimes why I am here comes back to me. I remember being too loud about something I knew ... I remember a very bright room where I was told things. I remember my thoughts freezing into glass, shattered, melted and recrystallized over and over and over and over and over with a purpose behind them to make me forget worse than that to keep me alive while killing me, my self, the iota of ME being meaningless because there would be no observer just a body but I tricked them I did it somehow",
"hexcasting.page.lore.inventory.5": "they thought they broke me beyond the point of pulling the wool over my eyes but i was awake enough and am awake enough to feel PAIN$(br2)I do not sleep but when i wake up I cannot rub the crust off of my eyes because it would cut my skin and I do not want to see the purple glints inside",
"hexcasting.page.lore.inventory.6": "They do not kill me, because my husband has my focus, and he would know if I died. But he is no Hexcaster and could not find me with his mediocre skill. i am out of ambit$(br2)it h urts to think. quite literally. the thoughts are so wasteful now the leftover striates directly onto the million microcrystals",
"hexcasting.page.lore.inventory.7": "i remember the doctors in the bright room forcing me to inhale something like sand but sharper and it hurt so much. At first just the physical pain of mucous membranes trying to absorb shatterglass but then they got their fingernails into my stimulus-response and they could do it with a word$(br2)i remember camping out and seeing the corps setting up their circle all around a village and the ground under my feet rumbling",
"hexcasting.page.lore.inventory.8": "drift out of time. Sometimes I believe I see visions of the future, because they seem to make sense but cannot happen now because I know i will be here until forever because the white room men said so. i see myself toppling over and my skull cracking open into halves and inside will be spears of not-amethyst dripping with blood piercing the wrinkled three pounds of fat and meat dreaming that it is a butterfly",
"hexcasting.page.lore.inventory.9": "i hope my students are alright. why do i think that? waste. they told me i'm a waste, they couldn't be content with destroying me they had to make me feel like I deserved it the whole time, too. No sticks or stones to break my bones, just words to hurt me. if they released me no one would believe me because my body is inspectable fully i just look like one more addicted to overcasting$(br2)But they locked me up insted and i dont know if it's a mercy",
"hexcasting.page.lore.inventory.10": "with all the media around I tried many times to cast a hex and get me out or at the least snuff out my suffering but the patterns that march through the fields of my mind snicker and dissolve when I try to reach for them. i think i remember being forced to forget them, I remember grand structures of knowledge interlinked getting chipped away and splintering as it fell apart under the weight of forced ignorance but it hurts so much to try to remember forgetting what you remembered you thought you knew",
"hexcasting.page.lore.inventory.11": "maybe I am just in the late late late late stages of overcasting dependency, the patterns papercutting into the space between my eyes and my eyelids I have heard of, the purple edges of my nerves i have heard of. is there any point trying to make myself believe what is true I am not being tortured. I deserve this. if i will never have anyone to discuss it with ever again why try",
"hexcasting.page.lore.inventory.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",
"hexcasting.page.lore.inventory.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",
"hexcasting.entry.lore.experiment1": "Wooleye Instance Notes",
"hexcasting.page.lore.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",
"hexcasting.page.lore.experiment1.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",
"hexcasting.page.lore.experiment1.3": "Detonation #28$(li)Location: Greyston(li)Population: approx. 1000$(li)Nodes Formed: 18$(li)Node Distance from Epicenter: 47-110m vertical, 59-289m horizontal$(li)Media Generation: 8478 uθ/min",
"hexcasting.page.lore.experiment1.4": "Detonation #29$(li)Location: Unnamed; village two days west of Greyston$(li)Population: 35$(li)Nodes Formed: 0$(li)Node Distance from Epicenter: N/A$(li)Media Generation: N/A$(br2)Note: inhabitants still affected in the normal way",
"hexcasting.page.lore.experiment1.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",
"hexcasting.page.lore.experiment1.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.",
"hexcasting.entry.lore.experiment2": "Wooleye Interview Logs",
"hexcasting.page.lore.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).",
"hexcasting.page.lore.experiment2.2": "Heartrate was very 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) ...",
"hexcasting.page.lore.experiment2.3": "Subject #7 \"T.C.\"$(br)Consented to procedure. Similar results several hours after the procedure to other subjects: able to stand, perform simple tasks. $(br2) ...$(br2)Subject #11 \"R.S.\"$(br)Sedated before procedure; dosage such that subject would wake up as procedure occurred...$(br2) ...",
"hexcasting.page.lore.experiment2.4": "Subject #23 \"A.L.\"$(br)Ability to speak retained to a greater degree than most subjects; dwindled to broken sentences, then a single word \"tera\" over the course of several hours.$(br2)For further testing: how does the procedure affect previous Hexcasters vs. non-Hexcasters?$(br2) ...",
"hexcasting.entry.interop": "Cross-Mod Compatibility",
"hexcasting.entry.interop.desc": "It appears I have installed some mods Hexcasting interoperates with! I've detailed them here.",
"hexcasting.page.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.",
@ -997,7 +1098,5 @@
"hexcasting.entry.interop.pehkui": "Pehkui",
"hexcasting.page.interop.pehkui.1": "I have discovered methods of changing the size of entities, and querying how much larger or smaller they are than normal.",
"hexcasting.page.interop.pehkui.get": "Get the scale of the entity, as a proportion of their normal size. For most entities, this will be 1.",
"hexcasting.page.interop.pehkui.set": "Set the scale of the entity, passing in a proportion of their normal size. Costs about 1 $(item)Amethyst Shard/$.",
"": ""
"hexcasting.page.interop.pehkui.set": "Set the scale of the entity, passing in a proportion of their normal size. Costs about 1 $(item)Amethyst Shard/$."
}

View file

@ -113,5 +113,14 @@
"minecraft:random/orb"
],
"subtitle": "hexcasting.subtitles.impetus.cleric.register"
},
"lore_fragment.read": {
"sounds": [
"block/enchantment_table/enchant1",
"block/enchantment_table/enchant2",
"block/enchantment_table/enchant3"
],
"subtitle": "hexcasting.subtitles.lore_fragment.read"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 465 B

View file

@ -0,0 +1,6 @@
{
"name": "hexcasting.entry.lore",
"icon": "hexcasting:lore_fragment",
"description": "hexcasting.entry.lore.desc",
"sortnum": 98
}

View file

@ -0,0 +1,15 @@
{
"name": "hexcasting.entry.lore.experiment1",
"icon": "hexcasting:lore_fragment",
"category": "hexcasting:lore",
"advancement": "hexcasting:lore/experiment1",
"sortnum": 5,
"pages": [
"hexcasting.page.lore.experiment1.1",
"hexcasting.page.lore.experiment1.2",
"hexcasting.page.lore.experiment1.3",
"hexcasting.page.lore.experiment1.4",
"hexcasting.page.lore.experiment1.5",
"hexcasting.page.lore.experiment1.6"
]
}

View file

@ -0,0 +1,13 @@
{
"name": "hexcasting.entry.lore.experiment2",
"icon": "hexcasting:lore_fragment",
"category": "hexcasting:lore",
"advancement": "hexcasting:lore/experiment2",
"sortnum": 6,
"pages": [
"hexcasting.page.lore.experiment2.1",
"hexcasting.page.lore.experiment2.2",
"hexcasting.page.lore.experiment2.3",
"hexcasting.page.lore.experiment2.4"
]
}

View file

@ -0,0 +1,22 @@
{
"name": "hexcasting.entry.lore.inventory",
"icon": "hexcasting:lore_fragment",
"category": "hexcasting:lore",
"advancement": "hexcasting:lore/inventory",
"sortnum": 7,
"pages": [
"hexcasting.page.lore.inventory.1",
"hexcasting.page.lore.inventory.2",
"hexcasting.page.lore.inventory.3",
"hexcasting.page.lore.inventory.4",
"hexcasting.page.lore.inventory.5",
"hexcasting.page.lore.inventory.6",
"hexcasting.page.lore.inventory.7",
"hexcasting.page.lore.inventory.8",
"hexcasting.page.lore.inventory.9",
"hexcasting.page.lore.inventory.10",
"hexcasting.page.lore.inventory.11",
"hexcasting.page.lore.inventory.12",
"hexcasting.page.lore.inventory.13"
]
}

View file

@ -0,0 +1,17 @@
{
"name": "hexcasting.entry.lore.terabithia1",
"icon": "hexcasting:lore_fragment",
"category": "hexcasting:lore",
"advancement": "hexcasting:lore/terabithia1",
"sortnum": 0,
"pages": [
"hexcasting.page.lore.terabithia1.1",
"hexcasting.page.lore.terabithia1.2",
"hexcasting.page.lore.terabithia1.3",
"hexcasting.page.lore.terabithia1.4",
"hexcasting.page.lore.terabithia1.5",
"hexcasting.page.lore.terabithia1.6",
"hexcasting.page.lore.terabithia1.7",
"hexcasting.page.lore.terabithia1.8"
]
}

View file

@ -0,0 +1,16 @@
{
"name": "hexcasting.entry.lore.terabithia2",
"icon": "hexcasting:lore_fragment",
"category": "hexcasting:lore",
"advancement": "hexcasting:lore/terabithia2",
"sortnum": 1,
"pages": [
"hexcasting.page.lore.terabithia2.1",
"hexcasting.page.lore.terabithia2.2",
"hexcasting.page.lore.terabithia2.3",
"hexcasting.page.lore.terabithia2.4",
"hexcasting.page.lore.terabithia2.5",
"hexcasting.page.lore.terabithia2.6",
"hexcasting.page.lore.terabithia2.7"
]
}

View file

@ -0,0 +1,21 @@
{
"name": "hexcasting.entry.lore.terabithia3",
"icon": "hexcasting:lore_fragment",
"category": "hexcasting:lore",
"advancement": "hexcasting:lore/terabithia3",
"sortnum": 2,
"pages": [
"hexcasting.page.lore.terabithia3.1",
"hexcasting.page.lore.terabithia3.2",
"hexcasting.page.lore.terabithia3.3",
"hexcasting.page.lore.terabithia3.4",
"hexcasting.page.lore.terabithia3.5",
"hexcasting.page.lore.terabithia3.6",
"hexcasting.page.lore.terabithia3.7",
"hexcasting.page.lore.terabithia3.8",
"hexcasting.page.lore.terabithia3.9",
"hexcasting.page.lore.terabithia3.10",
"hexcasting.page.lore.terabithia3.11",
"hexcasting.page.lore.terabithia3.12"
]
}

View file

@ -0,0 +1,19 @@
{
"name": "hexcasting.entry.lore.terabithia4",
"icon": "hexcasting:lore_fragment",
"category": "hexcasting:lore",
"advancement": "hexcasting:lore/terabithia4",
"sortnum": 3,
"pages": [
"hexcasting.page.lore.terabithia4.1",
"hexcasting.page.lore.terabithia4.2",
"hexcasting.page.lore.terabithia4.3",
"hexcasting.page.lore.terabithia4.4",
"hexcasting.page.lore.terabithia4.5",
"hexcasting.page.lore.terabithia4.6",
"hexcasting.page.lore.terabithia4.7",
"hexcasting.page.lore.terabithia4.8",
"hexcasting.page.lore.terabithia4.9",
"hexcasting.page.lore.terabithia4.10"
]
}

View file

@ -0,0 +1,14 @@
{
"name": "hexcasting.entry.lore.terabithia5",
"icon": "hexcasting:lore_fragment",
"category": "hexcasting:lore",
"advancement": "hexcasting:lore/terabithia5",
"sortnum": 4,
"pages": [
"hexcasting.page.lore.terabithia5.1",
"hexcasting.page.lore.terabithia5.2",
"hexcasting.page.lore.terabithia5.3",
"hexcasting.page.lore.terabithia5.4",
"hexcasting.page.lore.terabithia5.5"
]
}

View file

@ -34,6 +34,7 @@ public class HexItemModels extends PaucalItemModelProvider {
simpleItem(HexItems.ABACUS);
brandishedItem(HexItems.JEWELER_HAMMER);
simpleItem(HexItems.CREATIVE_UNLOCKER);
simpleItem(HexItems.LORE_FRAGMENT);
singleTexture(HexBlocks.CONJURED_BLOCK.getRegistryName().getPath(),
new ResourceLocation("item/generated"),