From bab0cbdab563d7f4d11a869a4b2fc493515b1a55 Mon Sep 17 00:00:00 2001 From: ghost <32.bit.mint.tin@gmail.com> Date: Tue, 20 Apr 2021 02:41:12 -0500 Subject: [PATCH] Made most of the recipes, just Blood Magic's to go. Really should get on writing out the mod's documentation soon. --- build.gradle | 15 +- gradle.properties | 5 +- .../minttea/tomeofblood/TomeOfBloodMod.java | 22 ++- .../client/gui/GuiBloodScroll.java | 29 ---- .../client/gui/ScrollContainer.java | 105 ------------ .../common/capabilities/WarlockPower.java | 17 ++ .../tomeofblood/common/items/SpellTome.java | 5 + .../items/bloodmagic/BloodSpellResolver.java | 4 +- .../items/bloodmagic/SentientHarmEffect.java | 3 +- .../items/bloodmagic/scroll/BloodScroll.java | 69 -------- .../bloodmagic/scroll/ScrollInventory.java | 65 ------- .../items/eidolon/WarlockEmpowerSpell.java | 45 ++--- .../items/eidolon/WarlockPrayerHandler.java | 4 - .../items/eidolon/WarlockSpellResolver.java | 4 +- .../items/eidolon/codex/NewCodexChapters.java | 76 +++++++++ .../items/nature/NaturalSpellResolver.java | 3 +- .../items/occultism/OccultSpellResolver.java | 14 +- .../OccultCraftingRitual.java} | 14 +- .../tomeofblood/common/utils/PowerUtil.java | 6 +- .../setup/Registries/ItemRegistry.java | 76 +++++++++ .../setup/Registries/RecipeRegistry.java | 67 ++++++++ .../setup/Registries/RitualRegistry.java | 66 +++++++ .../setup/Registries/SpellRegistry.java | 35 ++++ .../minttea/tomeofblood/setup/Registry.java | 161 ------------------ .../resources/META-INF/accesstransformer.cfg | 0 src/main/resources/META-INF/mods.toml | 6 +- .../assets/tomeofblood/lang/en_us.json | 30 +++- .../patchouli_books/bloody_notes/book.json | 6 - .../en_us/entries/bloody_notes.json | 16 -- .../en_us/templates/crafting_altar.json | 52 ------ ...e_of_blood_t1.json => blood_tome_one.json} | 4 +- .../recipes/altar/natural_tome_three.json | 15 ++ .../recipes/altar/natural_tome_two.json | 15 ++ .../craft_casting_afrit.json | 27 +++ .../craft_casting_djinni.json | 27 +++ .../craft_casting_foilot.json | 21 +++ .../craft_occult_tome_three.json | 2 +- .../craft_occult_tome_two.json | 2 +- .../recipes/rituals/craft_casting_afrit.json | 9 + .../recipes/rituals/craft_casting_djinni.json | 9 + .../recipes/rituals/craft_casting_foilot.json | 9 + .../rituals/craft_occult_tome_three.json | 9 + .../rituals/craft_occult_tome_two.json | 2 +- .../recipes/tree_ritual/natural_tome_one.json | 28 +++ 44 files changed, 617 insertions(+), 582 deletions(-) delete mode 100644 src/main/java/com/minttea/tomeofblood/client/gui/GuiBloodScroll.java delete mode 100644 src/main/java/com/minttea/tomeofblood/client/gui/ScrollContainer.java delete mode 100644 src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/scroll/BloodScroll.java delete mode 100644 src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/scroll/ScrollInventory.java delete mode 100644 src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockPrayerHandler.java create mode 100644 src/main/java/com/minttea/tomeofblood/common/items/eidolon/codex/NewCodexChapters.java rename src/main/java/com/minttea/tomeofblood/common/items/occultism/{CraftOccultTomeRitual.java => rituals/OccultCraftingRitual.java} (71%) create mode 100644 src/main/java/com/minttea/tomeofblood/setup/Registries/ItemRegistry.java create mode 100644 src/main/java/com/minttea/tomeofblood/setup/Registries/RecipeRegistry.java create mode 100644 src/main/java/com/minttea/tomeofblood/setup/Registries/RitualRegistry.java create mode 100644 src/main/java/com/minttea/tomeofblood/setup/Registries/SpellRegistry.java delete mode 100644 src/main/java/com/minttea/tomeofblood/setup/Registry.java create mode 100644 src/main/resources/META-INF/accesstransformer.cfg delete mode 100644 src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/book.json delete mode 100644 src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/en_us/entries/bloody_notes.json delete mode 100644 src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/en_us/templates/crafting_altar.json rename src/main/resources/data/tomeofblood/recipes/altar/{tome_of_blood_t1.json => blood_tome_one.json} (63%) create mode 100644 src/main/resources/data/tomeofblood/recipes/altar/natural_tome_three.json create mode 100644 src/main/resources/data/tomeofblood/recipes/altar/natural_tome_two.json create mode 100644 src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_afrit.json create mode 100644 src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_djinni.json create mode 100644 src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_foilot.json create mode 100644 src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_afrit.json create mode 100644 src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_djinni.json create mode 100644 src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_foilot.json create mode 100644 src/main/resources/data/tomeofblood/recipes/rituals/craft_occult_tome_three.json create mode 100644 src/main/resources/data/tomeofblood/recipes/tree_ritual/natural_tome_one.json diff --git a/build.gradle b/build.gradle index 8f6a3e6..0762bbf 100644 --- a/build.gradle +++ b/build.gradle @@ -7,6 +7,16 @@ buildscript { url = "https://maven.ellpeck.de" } maven { url 'https://maven.blamejared.com' } + maven { + // location of the maven that hosts JEI files + name = "Progwml6 maven" + url = "https://dvs1.progwml6.com/files/maven/" + } + maven { + // location of a maven mirror for JEI files, as a fallback + name = "ModMaven" + url = "https://modmaven.k-4u.nl" + } jcenter() mavenCentral() } @@ -37,7 +47,7 @@ minecraft { // Simply re-run your setup task after changing the mappings to update your workspace. mappings channel: 'snapshot', version: '20201028-1.16.3' // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. - + accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // Default run configurations. @@ -141,6 +151,9 @@ dependencies { runtimeOnly fg.deobf("curse.maven:natures-aura:3255666") compileOnly fg.deobf("curse.maven:botania:3233810") runtimeOnly fg.deobf("curse.maven:botania:3233810") + compileOnly fg.deobf("curse.maven:jei:3280391") + runtimeOnly fg.deobf("curse.maven:jei:3280391") + } diff --git a/gradle.properties b/gradle.properties index 878bf1f..b0cb880 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,7 @@ # Sets default memory used for gradle commands. Can be overridden by user or command line properties. # This is required to provide enough memory for the Minecraft decompilation process. org.gradle.jvmargs=-Xmx3G -org.gradle.daemon=false \ No newline at end of file +org.gradle.daemon=false + +mc_version=1.16.5 +jei_version=7.6.1.75 \ No newline at end of file diff --git a/src/main/java/com/minttea/tomeofblood/TomeOfBloodMod.java b/src/main/java/com/minttea/tomeofblood/TomeOfBloodMod.java index 0c39a53..86ea66a 100644 --- a/src/main/java/com/minttea/tomeofblood/TomeOfBloodMod.java +++ b/src/main/java/com/minttea/tomeofblood/TomeOfBloodMod.java @@ -1,15 +1,19 @@ package com.minttea.tomeofblood; -import com.hollingsworth.arsnouveau.client.ClientHandler; import com.minttea.tomeofblood.common.capabilities.WarlockPowerCapability; import com.minttea.tomeofblood.common.events.LivingArmorManaBonus; import com.minttea.tomeofblood.common.network.Networking; import com.minttea.tomeofblood.setup.*; +//import com.minttea.tomeofblood.setup.Registries.Registry; +import com.minttea.tomeofblood.setup.Registries.ItemRegistry; +import com.minttea.tomeofblood.setup.Registries.RecipeRegistry; +import com.minttea.tomeofblood.setup.Registries.RitualRegistry; +import com.minttea.tomeofblood.setup.Registries.SpellRegistry; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.DistExecutor; +import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; @@ -27,15 +31,12 @@ public class TomeOfBloodMod /** - * TODO: Find a better Blood Scroll method * TODO: Implement Botanic Tome - * TODO: Finish Recipe for Natural Tome * TODO: Add Astral Sorcery into the Dev Environment and work on the Astral Tome - * TODO: Finish adding Occultism Recipes - * TODO: Add Warlock Tome Recipes and Empowering Prayers + * TODO: Add Warlock Tome Documentation <- Reliant on Eidolon, unless I'm really dumb * TODO: Update Blood Tome Recipes preserving NBT data * TODO: Don't forget to add in a Tome of Blood carry over for those who update - * TODO: Option Registering of items in case mods aren't present. + * Option Registering of items in case mods aren't present.<- Impossible, sadly */ public static final String MODID = "tomeofblood"; // Directly reference a log4j logger. @@ -46,7 +47,7 @@ public class TomeOfBloodMod public static ItemGroup itemGroup = new ItemGroup(MODID) { @Override public ItemStack createIcon() { - return Registry.bloodTome3.getDefaultInstance(); + return ItemRegistry.bloodTome3.getDefaultInstance(); } }; @@ -54,7 +55,7 @@ public TomeOfBloodMod() { // Register ourselves for server and other game events we are interested in MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(LivingArmorManaBonus.class); - Registry.RegistrationHandler.registerSpells(); + FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::clientSetup); LivingUpgradeRegistry.register(); @@ -63,8 +64,11 @@ public TomeOfBloodMod() { public void setup(final FMLCommonSetupEvent event) { + SpellRegistry.registerSpells(); WarlockPowerCapability.register(); + //RitualRegistry.registerRituals(); Networking.register(); + RecipeRegistry.registerRecipes(); } public void clientSetup(final FMLClientSetupEvent event){ proxy.init(); diff --git a/src/main/java/com/minttea/tomeofblood/client/gui/GuiBloodScroll.java b/src/main/java/com/minttea/tomeofblood/client/gui/GuiBloodScroll.java deleted file mode 100644 index 5b215fe..0000000 --- a/src/main/java/com/minttea/tomeofblood/client/gui/GuiBloodScroll.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.minttea.tomeofblood.client.gui; - -import com.mojang.blaze3d.matrix.MatrixStack; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screen.inventory.ContainerScreen; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; - -public class GuiBloodScroll extends ContainerScreen { - - - private static final ResourceLocation texture = new ResourceLocation("tomeofblood", "textures/inventory/scroll.png"); - - public GuiBloodScroll(ScrollContainer container, PlayerInventory playerInv, ITextComponent title) { - super(container, playerInv, title); - } - - @Override - protected void drawGuiContainerBackgroundLayer(MatrixStack matrixStack, float partialTicks, int mouseX, int mouseY) { - Minecraft mc = Minecraft.getInstance(); - //RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); - mc.getTextureManager().bindTexture(texture); - int k = (width - xSize) / 2; - int l = (height - ySize) / 2; - blit(matrixStack, k, l, 0, 0, xSize, ySize); - - } -} \ No newline at end of file diff --git a/src/main/java/com/minttea/tomeofblood/client/gui/ScrollContainer.java b/src/main/java/com/minttea/tomeofblood/client/gui/ScrollContainer.java deleted file mode 100644 index 9fd8096..0000000 --- a/src/main/java/com/minttea/tomeofblood/client/gui/ScrollContainer.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.minttea.tomeofblood.client.gui; - -import com.hollingsworth.arsnouveau.common.items.Glyph; -import com.minttea.tomeofblood.common.items.bloodmagic.scroll.BloodScroll; -import com.minttea.tomeofblood.setup.Registry; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Inventory; -import net.minecraft.inventory.container.Container; -import net.minecraft.inventory.container.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.Hand; - -import javax.annotation.Nonnull; - -public class ScrollContainer extends Container { - - public static ScrollContainer fromNetwork(int windowId, PlayerInventory inv, PacketBuffer buf) - { - Hand hand = buf.readBoolean() ? Hand.MAIN_HAND : Hand.OFF_HAND; - return new ScrollContainer(windowId, inv, inv.player.getHeldItem(hand)); - } - - private final ItemStack scroll; - public final IInventory scrollInv; - public ScrollContainer(int id, PlayerInventory playerInventory, ItemStack scroll) { - super(Registry.RegistrationHandler.container, id); - this.scroll = scroll; - - int i; - int j; - - if(!playerInventory.player.world.isRemote) { - scrollInv = BloodScroll.getInventory(scroll); - } else { - scrollInv = new Inventory(27); - } - - for( i = 0; i < 3; i++) - { - for(j=0; j<9;j++) - { - int k = j + i * 9; - addSlot(new Slot(scrollInv, k, 8 + j * 18, 17 + i * 18) { - @Override - public boolean isItemValid(@Nonnull ItemStack stack) - { - return stack.getItem() instanceof Glyph; - } - }); - } - } - for( i = 0; i<3; i++) - { - for(j=0;j<9;j++) - { - addSlot(new Slot(playerInventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); - } - } - - for(i = 0; i<9; i++) - { - addSlot(new Slot(playerInventory, i, 8 + i * 18, 142)); - } - } - - @Override - public boolean canInteractWith(PlayerEntity playerIn) { - return true; - } - @Nonnull - @Override - public ItemStack transferStackInSlot(PlayerEntity player, int slotIndex) { - ItemStack itemstack = ItemStack.EMPTY; - Slot slot = inventorySlots.get(slotIndex); - - if (slot != null && slot.getHasStack()) { - ItemStack itemstack1 = slot.getStack(); - itemstack = itemstack1.copy(); - - if (slotIndex < 27) { - if (!mergeItemStack(itemstack1, 16, 52, true)) { - return ItemStack.EMPTY; - } - } - - if (itemstack1.isEmpty()) { - slot.putStack(ItemStack.EMPTY); - } else { - slot.onSlotChanged(); - } - - if (itemstack1.getCount() == itemstack.getCount()) { - return ItemStack.EMPTY; - } - - slot.onTake(player, itemstack1); - } - - return itemstack; - } - -} diff --git a/src/main/java/com/minttea/tomeofblood/common/capabilities/WarlockPower.java b/src/main/java/com/minttea/tomeofblood/common/capabilities/WarlockPower.java index 21229f3..ed4e139 100644 --- a/src/main/java/com/minttea/tomeofblood/common/capabilities/WarlockPower.java +++ b/src/main/java/com/minttea/tomeofblood/common/capabilities/WarlockPower.java @@ -1,6 +1,8 @@ package com.minttea.tomeofblood.common.capabilities; import net.minecraft.entity.LivingEntity; +import net.minecraft.util.Util; +import net.minecraft.util.text.TranslationTextComponent; import javax.annotation.Nullable; @@ -51,6 +53,7 @@ public int addPower(int powerToAdd) { @Override public int refreshPower() { + this.entity.sendMessage(new TranslationTextComponent("tomeofblood.alert.power_refresh"), Util.DUMMY_UUID); return this.setPower(this.getMaxPower()); } @@ -58,6 +61,20 @@ public int refreshPower() { public int spendPower(int powerToSpend) { if(powerToSpend < 0) powerToSpend = 0; + int newPower = this.getCurrentPower()-powerToSpend; + if(this.getPowerPercentage() > .75 && (double)newPower/this.getMaxPower() < .75) + this.entity.sendMessage(new TranslationTextComponent("tomeofblood.alert.power_75"), Util.DUMMY_UUID); + else if(this.getPowerPercentage() > .5 && (double)newPower/this.getMaxPower() < .5) + this.entity.sendMessage(new TranslationTextComponent("tomeofblood.alert.power_50"), Util.DUMMY_UUID); + else if(this.getPowerPercentage() > .25 && (double)newPower/this.getMaxPower() < .25) + this.entity.sendMessage(new TranslationTextComponent("tomeofblood.alert.power_25"), Util.DUMMY_UUID); + else if((double)newPower/this.getMaxPower() < .05) + this.entity.sendMessage(new TranslationTextComponent("tomeofblood.alert.power_0"), Util.DUMMY_UUID); + return this.setPower(this.getCurrentPower()-powerToSpend); } + + private double getPowerPercentage() { + return (double) this.power/(double) this.maxPower; + } } diff --git a/src/main/java/com/minttea/tomeofblood/common/items/SpellTome.java b/src/main/java/com/minttea/tomeofblood/common/items/SpellTome.java index 10e777e..b878367 100644 --- a/src/main/java/com/minttea/tomeofblood/common/items/SpellTome.java +++ b/src/main/java/com/minttea/tomeofblood/common/items/SpellTome.java @@ -114,5 +114,10 @@ public SpellResolver getSpellResolver(SpellContext context) return new SpellResolver(context); } + @Override + public boolean shouldDisplay(ItemStack stack) + { + return false; + } } diff --git a/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/BloodSpellResolver.java b/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/BloodSpellResolver.java index e06667d..b2ec99d 100644 --- a/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/BloodSpellResolver.java +++ b/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/BloodSpellResolver.java @@ -55,6 +55,7 @@ public boolean canCast(LivingEntity entity){ if(entity instanceof PlayerEntity) { PlayerEntity player = (PlayerEntity) entity; + if(player.isCreative()) return true; int totalCost = getCastingCost(this.spell,player); SoulNetwork soulNetwork = NetworkHelper.getSoulNetwork(player.getUniqueID()); //LOGGER.debug("Got soulnetwork for " + soulNetwork.getPlayer().getDisplayName().getString()); @@ -76,11 +77,12 @@ public void expendMana(LivingEntity entity) { if(entity instanceof PlayerEntity) { PlayerEntity player = (PlayerEntity) entity; + if(!player.isCreative()) { int totalCost = getCastingCost(this.spell,player); SoulNetwork soulNetwork = NetworkHelper.getSoulNetwork(player.getUniqueID()); //LOGGER.debug("Got soulnetwork for " + soulNetwork.getPlayer().getDisplayName().getString()); SoulTicket ticket = new SoulTicket(new StringTextComponent("Spell cast"), totalCost); - soulNetwork.syphonAndDamage(player, ticket); + soulNetwork.syphonAndDamage(player, ticket);} } } } diff --git a/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/SentientHarmEffect.java b/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/SentientHarmEffect.java index 9dce8b4..9744af4 100644 --- a/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/SentientHarmEffect.java +++ b/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/SentientHarmEffect.java @@ -80,10 +80,11 @@ public void onResolve(RayTraceResult rayTraceResult, World world, LivingEntity s } - public float getExtraDamage(SpellContext spellContext, EnumDemonWillType type, int bracket) + public float getExtraDamage(SpellContext spellContext, EnumDemonWillType type, int souls) { + int bracket = getBracket(type, souls); if(bracket<0) { return 0; diff --git a/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/scroll/BloodScroll.java b/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/scroll/BloodScroll.java deleted file mode 100644 index 7a4a5c1..0000000 --- a/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/scroll/BloodScroll.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.minttea.tomeofblood.common.items.bloodmagic.scroll; - -import com.hollingsworth.arsnouveau.ArsNouveau; -import com.hollingsworth.arsnouveau.api.spell.AbstractSpellPart; -import com.hollingsworth.arsnouveau.api.util.SpellRecipeUtil; -import com.hollingsworth.arsnouveau.common.block.tile.ScribesTile; -import com.minttea.tomeofblood.client.gui.ScrollContainer; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.inventory.container.INamedContainerProvider; -import net.minecraft.inventory.container.SimpleNamedContainerProvider; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ActionResult; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; -import net.minecraftforge.fml.network.NetworkHooks; - -import java.util.List; - -public class BloodScroll extends Item { - - - public BloodScroll() { - super(new Item.Properties().maxStackSize(1).group(ArsNouveau.itemGroup)); - } - - public static ScrollInventory getInventory(ItemStack stack) { - - return new ScrollInventory(stack, 27); - } - - @Override - public ActionResult onItemRightClick(World worldIn, PlayerEntity player, Hand handIn) - { - - if(!worldIn.isRemote){ - ItemStack stack = player.getHeldItem(handIn); - - RayTraceResult result = player.pick(5, 0 , false); - if(player.isSneaking()) - { - if(result instanceof BlockRayTraceResult && worldIn.getTileEntity(((BlockRayTraceResult) result).getPos()) instanceof ScribesTile) - return new ActionResult<>(ActionResultType.SUCCESS, stack); - } - else - { - INamedContainerProvider container = new SimpleNamedContainerProvider((w, p, pl) -> new ScrollContainer(w, p, stack), stack.getDisplayName()); - NetworkHooks.openGui((ServerPlayerEntity) player, container, buf -> buf.writeBoolean(handIn == Hand.MAIN_HAND)); - } - } - return ActionResult.resultSuccess(player.getHeldItem(handIn)); - } - - public static void setSpell(ItemStack stack, String spellRecipe) - { - stack.getTag().putString("spell", spellRecipe); - } - public static List getSpellRecipe(ItemStack stack) - { - if(!stack.hasTag()) - return null; - return SpellRecipeUtil.getSpellsFromString(stack.getTag().getString("spell")); - } - -} diff --git a/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/scroll/ScrollInventory.java b/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/scroll/ScrollInventory.java deleted file mode 100644 index 6faadf2..0000000 --- a/src/main/java/com/minttea/tomeofblood/common/items/bloodmagic/scroll/ScrollInventory.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.minttea.tomeofblood.common.items.bloodmagic.scroll; - -import com.hollingsworth.arsnouveau.api.spell.AbstractSpellPart; -import com.hollingsworth.arsnouveau.common.items.Glyph; -import com.minttea.tomeofblood.util.NBTHelper; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.Inventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.ListNBT; - -import java.util.ArrayList; -import java.util.List; - -public class ScrollInventory extends Inventory { - - private static final String SPELL_TAG = "Items"; - private final ItemStack stack; - - - public ScrollInventory(ItemStack stack, int expectedSize) { - super(expectedSize); - this.stack = stack; - ListNBT nbt = NBTHelper.Item.getList(stack, SPELL_TAG, 10); - int i = 0; - for(; i < expectedSize && i < nbt.size(); i++) - { - setInventorySlotContents(i, ItemStack.read(nbt.getCompound(i))); - } - } - - public List getSpellRecipe() - { - List spellParts = new ArrayList<>(); - for(int i = 0; i < this.getSizeInventory(); i++) - { - ItemStack item = this.getStackInSlot(i); - if( item.getItem() instanceof Glyph) - { - for(int c = 0; c< item.getCount(); c++) - { - spellParts.add(((Glyph) item.getItem()).spellPart); - } - } - } - return spellParts; - } - - @Override - public boolean isUsableByPlayer(PlayerEntity playerEntity) - { - return !stack.isEmpty(); - } - @Override - public void markDirty() { - super.markDirty(); - ListNBT nbt = new ListNBT(); - for(int i = 0; i< getSizeInventory(); i++) - { - nbt.add(getStackInSlot(i).write(new CompoundNBT())); - } - NBTHelper.Item.setList(stack, SPELL_TAG, nbt); - } - -} diff --git a/src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockEmpowerSpell.java b/src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockEmpowerSpell.java index e50c93f..dcfd213 100644 --- a/src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockEmpowerSpell.java +++ b/src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockEmpowerSpell.java @@ -1,18 +1,16 @@ package com.minttea.tomeofblood.common.items.eidolon; -import com.hollingsworth.arsnouveau.api.spell.ISpellTier; import com.hollingsworth.arsnouveau.setup.ItemsRegistry; import com.minttea.tomeofblood.common.capabilities.IWarlockPower; import com.minttea.tomeofblood.common.capabilities.WarlockPowerCapability; -import com.minttea.tomeofblood.setup.Registry; +//import com.minttea.tomeofblood.setup.Registries.Registry; +import com.minttea.tomeofblood.setup.Registries.ItemRegistry; import elucent.eidolon.capability.ReputationProvider; import elucent.eidolon.deity.Deities; -import elucent.eidolon.network.MagicBurstEffectPacket; -import elucent.eidolon.network.Networking; +import elucent.eidolon.ritual.Ritual; import elucent.eidolon.spell.Sign; -import elucent.eidolon.spell.Signs; import elucent.eidolon.spell.StaticSpell; -import net.minecraft.entity.item.ItemEntity; +import elucent.eidolon.tile.EffigyTileEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; @@ -28,7 +26,7 @@ import net.minecraft.util.text.StringTextComponent; import net.minecraft.world.World; -import javax.rmi.CORBA.Tie; +import java.util.Comparator; import java.util.List; public class WarlockEmpowerSpell extends StaticSpell { @@ -44,16 +42,18 @@ public WarlockEmpowerSpell(ResourceLocation name, Sign... signs) { } @Override public boolean canCast(World world, BlockPos blockPos, PlayerEntity player) { - player.sendMessage(new StringTextComponent("Checking if you can cast it..."), Util.DUMMY_UUID); + //player.sendMessage(new StringTextComponent("Checking if you can cast it..."), Util.DUMMY_UUID); if (!world.getCapability(ReputationProvider.CAPABILITY).isPresent()) return false; - /*if (world.getCapability(ReputationProvider.CAPABILITY).resolve().get().getReputation(player, Deities.DARK_DEITY.getId()) < 4.0) + if (world.getCapability(ReputationProvider.CAPABILITY).resolve().get().getReputation(player, Deities.DARK_DEITY.getId()) < 1.0) return false; -*/ + RayTraceResult ray = world.rayTraceBlocks(new RayTraceContext(player.getEyePosition(0), player.getEyePosition(0).add(player.getLookVec().scale(4)), RayTraceContext.BlockMode.OUTLINE, RayTraceContext.FluidMode.NONE, player)); Vector3d v = ray.getType() == RayTraceResult.Type.BLOCK ? ray.getHitVec() : player.getEyePosition(0).add(player.getLookVec().scale(4)); - - return true; + List effigies = Ritual.getTilesWithinAABB(EffigyTileEntity.class, world, new AxisAlignedBB(blockPos.add(-4, -4, -4), blockPos.add(5, 5, 5))); + if(effigies.size() == 0) return false; + EffigyTileEntity effigy = effigies.stream().min(Comparator.comparingDouble((e) -> e.getPos().distanceSq(blockPos))).get(); + return effigy.ready(); } private boolean canEmpower(ItemStack stack) { @@ -66,7 +66,7 @@ private ItemStack empowerResult(ItemStack stack) if(stack.getItem() == ItemsRegistry.noviceSpellBook.getItem()) { CompoundNBT nbt = stack.getTag(); - result = new ItemStack(Registry.warlockTome1); + result = new ItemStack(ItemRegistry.warlockTome1); result.setTag(nbt); } return result; @@ -74,31 +74,16 @@ private ItemStack empowerResult(ItemStack stack) @Override public void cast(World world, BlockPos blockPos, PlayerEntity player) { - player.sendMessage(new StringTextComponent("Casting Warlock Empower"), Util.DUMMY_UUID); + //player.sendMessage(new StringTextComponent("Casting Warlock Empower"), Util.DUMMY_UUID); if(!world.isRemote) { - /* - ItemStack stack = items.get(0).getItem(); - if(canEmpower(stack)) - { - items.get(0).setItem(empowerResult(stack)); - Vector3d p = items.get(0).getPositionVec(); - items.get(0).setDefaultPickupDelay(); - Networking.sendToTracking(world, items.get(0).getPosition(), new MagicBurstEffectPacket(p.x,p.y,p.z, Signs.WICKED_SIGN.getColor(),Signs.BLOOD_SIGN.getColor())); - }*/ - IWarlockPower power = WarlockPowerCapability.getPower(player).orElse(null); if(power == null) return; - if(power.getMaxPower() < 10240) - { - player.sendMessage(new StringTextComponent("Adjusting Max Power..."), Util.DUMMY_UUID); - power.setMaxPower(10240); - } - player.sendMessage(new StringTextComponent("Refreshed power!"), Util.DUMMY_UUID); + //player.sendMessage(new StringTextComponent("Refreshed power!"), Util.DUMMY_UUID); power.refreshPower(); } else { diff --git a/src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockPrayerHandler.java b/src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockPrayerHandler.java deleted file mode 100644 index 9f8a2f5..0000000 --- a/src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockPrayerHandler.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.minttea.tomeofblood.common.items.eidolon; - -public class WarlockPrayerHandler { -} diff --git a/src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockSpellResolver.java b/src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockSpellResolver.java index 92d0030..03c990d 100644 --- a/src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockSpellResolver.java +++ b/src/main/java/com/minttea/tomeofblood/common/items/eidolon/WarlockSpellResolver.java @@ -57,7 +57,7 @@ public boolean canCast(LivingEntity entity){ } if(totalCost > power.getCurrentPower() ) { - player.sendMessage(new StringTextComponent("Not enough power..."), Util.DUMMY_UUID); + player.sendMessage(new StringTextComponent("Not enough power... Try praying more."), Util.DUMMY_UUID); return false; } else { return true; @@ -79,7 +79,7 @@ public void expendMana(LivingEntity entity) int totalCost = getCastingCost(this.spell,player); WarlockPowerCapability.getPower(entity).ifPresent(power -> power.spendPower(totalCost)); double remaining = WarlockPowerCapability.getPower(entity).orElse(null).getCurrentPower(); - player.sendMessage(new StringTextComponent("Casted spell for " + totalCost + " power. " + remaining + " remaining."), Util.DUMMY_UUID); + //player.sendMessage(new StringTextComponent("Casted spell for " + totalCost + " power. " + remaining + " remaining."), Util.DUMMY_UUID); } } } diff --git a/src/main/java/com/minttea/tomeofblood/common/items/eidolon/codex/NewCodexChapters.java b/src/main/java/com/minttea/tomeofblood/common/items/eidolon/codex/NewCodexChapters.java new file mode 100644 index 0000000..bc3d579 --- /dev/null +++ b/src/main/java/com/minttea/tomeofblood/common/items/eidolon/codex/NewCodexChapters.java @@ -0,0 +1,76 @@ +package com.minttea.tomeofblood.common.items.eidolon.codex; + +import com.hollingsworth.arsnouveau.setup.ItemsRegistry; +import com.minttea.tomeofblood.setup.Registries.ItemRegistry; +import elucent.eidolon.Registry; +import elucent.eidolon.codex.*; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; + +public class NewCodexChapters { + + static Category TOMES; + + static Chapter INTRO, NOVICE_TOME, APPRENTICE_TOME, MASTER_TOME, TOME_INDEX; + + public static void init() + { + INTRO = new Chapter( + "tomeofblood.codex.chapter.intro.title", + new TitlePage("tomeofblood.codex.title.intro"), + new TextPage("tomeofblood.codex.page.tome_fluff") + ); + + NOVICE_TOME = new Chapter( + "tomeofblood.codex.chapter.novice.title", + new TitlePage("tomeofblood.codex.title.novice"), + new WorktablePage(new ItemStack(ItemRegistry.warlockTome1), + ItemStack.EMPTY, new ItemStack(Registry.ENCHANTED_ASH.get()), ItemStack.EMPTY, + new ItemStack(Registry.ENCHANTED_ASH.get()), new ItemStack(ItemsRegistry.noviceSpellBook), new ItemStack(Registry.ENCHANTED_ASH.get()), + ItemStack.EMPTY, new ItemStack(Registry.ENCHANTED_ASH.get()), ItemStack.EMPTY, + new ItemStack(Registry.SOUL_SHARD.get()), + ItemStack.EMPTY, + new ItemStack(Registry.SOUL_SHARD.get()), + ItemStack.EMPTY + ) + ); + + APPRENTICE_TOME = new Chapter( + "tomeofblood.codex.chapter.apprentice.title", + new TitlePage("tomeofblood.codex.title.apprentice"), + new WorktablePage(new ItemStack(ItemRegistry.warlockTome2), + ItemStack.EMPTY, new ItemStack(Items.BLAZE_ROD), ItemStack.EMPTY, + new ItemStack(Registry.GOLD_INLAY.get()), new ItemStack(ItemRegistry.warlockTome1), new ItemStack(Registry.GOLD_INLAY.get()), + ItemStack.EMPTY, new ItemStack(Items.BLAZE_ROD), ItemStack.EMPTY, + new ItemStack(Registry.UNHOLY_SYMBOL.get()), + new ItemStack(Items.QUARTZ), + new ItemStack(Registry.SHADOW_GEM.get()), + new ItemStack(Items.QUARTZ) + ) + ); + MASTER_TOME = new Chapter( + "tomeofblood.codex.chapter.master.title", + new TitlePage("tomeofblood.codex.title.master"), + new WorktablePage(new ItemStack(ItemRegistry.warlockTome3), + ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, + ItemStack.EMPTY, new ItemStack(ItemRegistry.warlockTome2), ItemStack.EMPTY, + ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, + new ItemStack(Registry.WRAITH_HEART.get()), + new ItemStack(Items.NETHER_STAR), + new ItemStack(Registry.ZOMBIE_HEART.get()), + new ItemStack(Items.TOTEM_OF_UNDYING) + ) + ); + TOME_INDEX = new Chapter( + "tomeofblood.codex.chapter.index.title", + new TitledIndexPage("tomeofblood.codex.chapter.index.title.0", + new IndexPage.IndexEntry(INTRO, new ItemStack(Registry.UNHOLY_SYMBOL.get())), + new IndexPage.IndexEntry(NOVICE_TOME, new ItemStack(ItemRegistry.warlockTome1)), + new IndexPage.IndexEntry(APPRENTICE_TOME, new ItemStack(ItemRegistry.warlockTome2)), + new IndexPage.IndexEntry(MASTER_TOME, new ItemStack(ItemRegistry.warlockTome3)) + ) + ); + //CodexChapters.c + } +} diff --git a/src/main/java/com/minttea/tomeofblood/common/items/nature/NaturalSpellResolver.java b/src/main/java/com/minttea/tomeofblood/common/items/nature/NaturalSpellResolver.java index 6738343..48d6980 100644 --- a/src/main/java/com/minttea/tomeofblood/common/items/nature/NaturalSpellResolver.java +++ b/src/main/java/com/minttea/tomeofblood/common/items/nature/NaturalSpellResolver.java @@ -53,7 +53,8 @@ public boolean canCast(LivingEntity entity){ totalCost *= 200; boolean success = NaturesAuraAPI.instance().extractAuraFromPlayer(player,totalCost,true); //LOGGER.debug("Got soulnetwork for " + soulNetwork.getPlayer().getDisplayName().getString()); - + if (!success) + entity.sendMessage(new TranslationTextComponent("tomeofblood.alert.no_aura"), Util.DUMMY_UUID); return success; } diff --git a/src/main/java/com/minttea/tomeofblood/common/items/occultism/OccultSpellResolver.java b/src/main/java/com/minttea/tomeofblood/common/items/occultism/OccultSpellResolver.java index 85d9127..e11a3cb 100644 --- a/src/main/java/com/minttea/tomeofblood/common/items/occultism/OccultSpellResolver.java +++ b/src/main/java/com/minttea/tomeofblood/common/items/occultism/OccultSpellResolver.java @@ -67,7 +67,7 @@ public boolean canCast(LivingEntity entity){ if(castingCapacity < totalCost) { - entity.sendMessage(new TranslationTextComponent("toomanytomes.alert.no_spirits"), Util.DUMMY_UUID); + entity.sendMessage(new TranslationTextComponent("tomeofblood.alert.no_spirits"), Util.DUMMY_UUID); return false; } else { return true; @@ -92,14 +92,14 @@ public void expendMana(LivingEntity entity) public ArrayList getCastingBooks(PlayerEntity player) { - player.sendMessage(new StringTextComponent("Getting all the books you have"), Util.DUMMY_UUID); + ///player.sendMessage(new StringTextComponent("Getting all the books you have"), Util.DUMMY_UUID); ArrayList castingBooks = new ArrayList<>(); PlayerInventory inventory = player.inventory; ItemStack offhand = player.getHeldItemOffhand(); if(offhand.getItem() instanceof BookOfCasting) { castingBooks.add(offhand); - player.sendMessage(new StringTextComponent("Found book in offhand!"), Util.DUMMY_UUID); + // player.sendMessage(new StringTextComponent("Found book in offhand!"), Util.DUMMY_UUID); } @@ -109,7 +109,7 @@ public ArrayList getCastingBooks(PlayerEntity player) i = inventory.getSlotFor(buffer); if(buffer.getItem() instanceof BookOfCasting) { castingBooks.add(buffer); - player.sendMessage(new StringTextComponent("Found book in slot + " + i +"!"), Util.DUMMY_UUID); + // player.sendMessage(new StringTextComponent("Found book in slot + " + i +"!"), Util.DUMMY_UUID); } } @@ -126,7 +126,7 @@ public int getCapacity(PlayerEntity player) capacity += stack.getMaxDamage() - stack.getDamage(); } - player.sendMessage(new StringTextComponent("Capacity is " + capacity), Util.DUMMY_UUID); + //player.sendMessage(new StringTextComponent("Capacity is " + capacity), Util.DUMMY_UUID); return capacity; } @@ -141,11 +141,11 @@ public void expendCapacity(PlayerEntity player, int totalCost) int curDam = stack.getMaxDamage() - stack.getDamage(); if(workingCost > curDam) { - player.sendMessage(new StringTextComponent("Working cost is" + workingCost + " and capacity is " + curDam + ", removing book."), Util.DUMMY_UUID); + // player.sendMessage(new StringTextComponent("Working cost is" + workingCost + " and capacity is " + curDam + ", removing book."), Util.DUMMY_UUID); workingCost -= curDam; stack.shrink(1); } else { - player.sendMessage(new StringTextComponent("Working cost is" + workingCost + " and capacity is " + curDam + ", damaging book."), Util.DUMMY_UUID); + // player.sendMessage(new StringTextComponent("Working cost is" + workingCost + " and capacity is " + curDam + ", damaging book."), Util.DUMMY_UUID); stack.damageItem(workingCost, player, (playerIn) -> playerIn.sendBreakAnimation(EquipmentSlotType.MAINHAND)); stack.attemptDamageItem(workingCost, player.world.rand, (ServerPlayerEntity) player); break; diff --git a/src/main/java/com/minttea/tomeofblood/common/items/occultism/CraftOccultTomeRitual.java b/src/main/java/com/minttea/tomeofblood/common/items/occultism/rituals/OccultCraftingRitual.java similarity index 71% rename from src/main/java/com/minttea/tomeofblood/common/items/occultism/CraftOccultTomeRitual.java rename to src/main/java/com/minttea/tomeofblood/common/items/occultism/rituals/OccultCraftingRitual.java index 57dacdf..512179a 100644 --- a/src/main/java/com/minttea/tomeofblood/common/items/occultism/CraftOccultTomeRitual.java +++ b/src/main/java/com/minttea/tomeofblood/common/items/occultism/rituals/OccultCraftingRitual.java @@ -1,14 +1,8 @@ -package com.minttea.tomeofblood.common.items.occultism; +package com.minttea.tomeofblood.common.items.occultism.rituals; -import com.github.klikli_dev.occultism.Occultism; import com.github.klikli_dev.occultism.common.ritual.Ritual; import com.github.klikli_dev.occultism.common.ritual.pentacle.Pentacle; import com.github.klikli_dev.occultism.common.tile.GoldenSacrificialBowlTileEntity; -import com.github.klikli_dev.occultism.registry.OccultismItems; -import com.github.klikli_dev.occultism.registry.OccultismRituals; -import com.hollingsworth.arsnouveau.setup.ItemsRegistry; -import com.minttea.tomeofblood.setup.Registry; -import com.minttea.tomeofblood.util.NBTHelper; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -19,12 +13,12 @@ import net.minecraft.world.server.ServerWorld; import net.minecraftforge.items.ItemHandlerHelper; -public class CraftOccultTomeRitual extends Ritual { +public class OccultCraftingRitual extends Ritual { private Item result; - public CraftOccultTomeRitual(Pentacle pentacle, Ingredient i, String recipe, Item result) { - super(pentacle,i,recipe,60); + public OccultCraftingRitual(Pentacle pentacle, Ingredient i, String recipe, Item result) { + super(pentacle,i,recipe,5); this.result=result; } diff --git a/src/main/java/com/minttea/tomeofblood/common/utils/PowerUtil.java b/src/main/java/com/minttea/tomeofblood/common/utils/PowerUtil.java index 412a729..12b202c 100644 --- a/src/main/java/com/minttea/tomeofblood/common/utils/PowerUtil.java +++ b/src/main/java/com/minttea/tomeofblood/common/utils/PowerUtil.java @@ -11,14 +11,14 @@ public class PowerUtil { public static int getMaxPower(PlayerEntity p) { - AtomicInteger max = new AtomicInteger(1000); + AtomicInteger max = new AtomicInteger(1024); p.getEquipmentAndArmor().forEach(i->{ if(i.getItem() instanceof WarlockRobesItem) { - max.addAndGet(400); + max.addAndGet(1000); } }); - max.addAndGet((int) (p.world.getCapability(ReputationProvider.CAPABILITY).resolve().get().getReputation(p, Deities.DARK_DEITY.getId()) * 500)); + max.addAndGet((int) (p.world.getCapability(ReputationProvider.CAPABILITY).resolve().get().getReputation(p, Deities.DARK_DEITY.getId()) * 2000)); diff --git a/src/main/java/com/minttea/tomeofblood/setup/Registries/ItemRegistry.java b/src/main/java/com/minttea/tomeofblood/setup/Registries/ItemRegistry.java new file mode 100644 index 0000000..c15355d --- /dev/null +++ b/src/main/java/com/minttea/tomeofblood/setup/Registries/ItemRegistry.java @@ -0,0 +1,76 @@ +package com.minttea.tomeofblood.setup.Registries; + +import com.hollingsworth.arsnouveau.api.spell.ISpellTier; +import com.minttea.tomeofblood.TomeOfBloodMod; +import com.minttea.tomeofblood.common.items.bloodmagic.BloodGem; +import com.minttea.tomeofblood.common.items.bloodmagic.BloodTome; +import com.minttea.tomeofblood.common.items.eidolon.WarlockTome; +import com.minttea.tomeofblood.common.items.nature.NaturalTome; +import com.minttea.tomeofblood.common.items.occultism.BookOfCasting; +import com.minttea.tomeofblood.common.items.occultism.OccultTome; +import com.minttea.tomeofblood.common.items.occultism.SpiritClass; +import net.minecraft.item.Item; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.registries.IForgeRegistry; +import net.minecraftforge.registries.ObjectHolder; + + +@Mod.EventBusSubscriber(modid = TomeOfBloodMod.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) +@ObjectHolder(TomeOfBloodMod.MODID) +public class ItemRegistry { + @ObjectHolder("blood_tome_one")public static BloodTome bloodTome1; + @ObjectHolder("blood_tome_two")public static BloodTome bloodTome2; + @ObjectHolder("blood_tome_three")public static BloodTome bloodTome3; + + @ObjectHolder("natural_tome_one")public static NaturalTome naturalTome1; + @ObjectHolder("natural_tome_two")public static NaturalTome naturalTome2; + @ObjectHolder("natural_tome_three")public static NaturalTome naturalTome3; + + @ObjectHolder("occult_tome_one")public static OccultTome occultTome1; + @ObjectHolder("occult_tome_two")public static OccultTome occultTome2; + @ObjectHolder("occult_tome_three")public static OccultTome occultTome3; + + @ObjectHolder("casting_book_foilot")public static BookOfCasting foilotBook; + @ObjectHolder("casting_book_djinni")public static BookOfCasting djinniBook; + @ObjectHolder("casting_book_afrit")public static BookOfCasting afritBook; + + + @ObjectHolder("warlock_tome_one")public static WarlockTome warlockTome1; + @ObjectHolder("warlock_tome_two")public static WarlockTome warlockTome2; + @ObjectHolder("warlock_tome_three")public static WarlockTome warlockTome3; + + @ObjectHolder("blood_gem")public static BloodGem bloodGem; + + @SubscribeEvent + public static void registerItems(final RegistryEvent.Register event) + { + + final IForgeRegistry registry = event.getRegistry(); + + registry.register(new BloodTome(ISpellTier.Tier.ONE).setRegistryName("blood_tome_one")); + registry.register(new BloodTome(ISpellTier.Tier.TWO).setRegistryName("blood_tome_two")); + registry.register(new BloodTome(ISpellTier.Tier.THREE).setRegistryName("blood_tome_three")); + registry.register(new BloodGem().setRegistryName("blood_gem")); + + registry.register(new NaturalTome(ISpellTier.Tier.ONE).setRegistryName("natural_tome_one")); + registry.register(new NaturalTome(ISpellTier.Tier.TWO).setRegistryName("natural_tome_two.json")); + registry.register(new NaturalTome(ISpellTier.Tier.THREE).setRegistryName("natural_tome_three")); + + registry.register(new OccultTome(ISpellTier.Tier.ONE).setRegistryName("occult_tome_one")); + registry.register(new OccultTome(ISpellTier.Tier.TWO).setRegistryName("occult_tome_two")); + registry.register(new OccultTome(ISpellTier.Tier.THREE).setRegistryName("occult_tome_three")); + registry.register(new BookOfCasting(SpiritClass.FOLIOT).setRegistryName("casting_book_foliot")); + registry.register(new BookOfCasting(SpiritClass.DJINNI).setRegistryName("casting_book_djinni")); + registry.register(new BookOfCasting(SpiritClass.AFRIT).setRegistryName("casting_book_afrit")); + registry.register(new BookOfCasting(SpiritClass.MARID).setRegistryName("casting_book_marid")); + + registry.register(new WarlockTome(ISpellTier.Tier.ONE).setRegistryName("warlock_tome_one")); + registry.register(new WarlockTome(ISpellTier.Tier.TWO).setRegistryName("warlock_tome_two")); + registry.register(new WarlockTome(ISpellTier.Tier.THREE).setRegistryName("warlock_tome_three")); + + + } +} diff --git a/src/main/java/com/minttea/tomeofblood/setup/Registries/RecipeRegistry.java b/src/main/java/com/minttea/tomeofblood/setup/Registries/RecipeRegistry.java new file mode 100644 index 0000000..6127237 --- /dev/null +++ b/src/main/java/com/minttea/tomeofblood/setup/Registries/RecipeRegistry.java @@ -0,0 +1,67 @@ +package com.minttea.tomeofblood.setup.Registries; + +import com.hollingsworth.arsnouveau.setup.ItemsRegistry; +import com.minttea.tomeofblood.TomeOfBloodMod; +import elucent.eidolon.Registry; +import elucent.eidolon.recipe.WorktableRecipe; +import elucent.eidolon.recipe.WorktableRegistry; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.registries.ObjectHolder; + +@Mod.EventBusSubscriber(modid = TomeOfBloodMod.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) +@ObjectHolder(TomeOfBloodMod.MODID) +public class RecipeRegistry { + + public static void registerRecipes(){ + + + WorktableRegistry.register(new WorktableRecipe(new Object[] + { + ItemStack.EMPTY, Registry.ENCHANTED_ASH.get(), ItemStack.EMPTY, + Registry.ENCHANTED_ASH.get(), ItemsRegistry.noviceSpellBook, Registry.ENCHANTED_ASH.get(), + ItemStack.EMPTY, Registry.ENCHANTED_ASH.get(), ItemStack.EMPTY + }, new Object[] + { + Registry.SOUL_SHARD.get(), + ItemStack.EMPTY, + Registry.SOUL_SHARD.get(), + ItemStack.EMPTY + }, + new ItemStack(ItemRegistry.warlockTome1)).setRegistryName(TomeOfBloodMod.MODID, "warlock_tome_one")); + + + WorktableRegistry.register(new WorktableRecipe(new Object[] + { + ItemStack.EMPTY, Items.BLAZE_ROD, ItemStack.EMPTY, + Registry.GOLD_INLAY.get(), ItemRegistry.warlockTome1, Registry.GOLD_INLAY.get(), + ItemStack.EMPTY, Items.BLAZE_ROD, ItemStack.EMPTY + }, new Object[] + { + Registry.UNHOLY_SYMBOL.get(), + Items.QUARTZ, + Registry.SHADOW_GEM.get(), + Items.QUARTZ + }, + new ItemStack(ItemRegistry.warlockTome2)).setRegistryName(TomeOfBloodMod.MODID, "warlock_tome_two")); + + WorktableRegistry.register(new WorktableRecipe(new Object[] + { + ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY, + ItemStack.EMPTY, ItemRegistry.warlockTome2, ItemStack.EMPTY, + ItemStack.EMPTY, ItemStack.EMPTY, ItemStack.EMPTY + }, new Object[] + { + Registry.WRAITH_HEART.get(), + Items.NETHER_STAR, + Registry.ZOMBIE_HEART.get(), + Items.TOTEM_OF_UNDYING + }, + new ItemStack(ItemRegistry.warlockTome3)).setRegistryName(TomeOfBloodMod.MODID, "warlock_tome_three")); + + + } +} diff --git a/src/main/java/com/minttea/tomeofblood/setup/Registries/RitualRegistry.java b/src/main/java/com/minttea/tomeofblood/setup/Registries/RitualRegistry.java new file mode 100644 index 0000000..0f621e7 --- /dev/null +++ b/src/main/java/com/minttea/tomeofblood/setup/Registries/RitualRegistry.java @@ -0,0 +1,66 @@ +package com.minttea.tomeofblood.setup.Registries; + +import com.github.klikli_dev.occultism.common.ritual.Ritual; +import com.github.klikli_dev.occultism.registry.OccultismItems; +import com.github.klikli_dev.occultism.registry.OccultismRituals; +import com.hollingsworth.arsnouveau.setup.ItemsRegistry; +import com.minttea.tomeofblood.TomeOfBloodMod; +import com.minttea.tomeofblood.common.items.occultism.rituals.OccultCraftingRitual; +import net.minecraft.item.crafting.Ingredient; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.registries.IForgeRegistry; +import net.minecraftforge.registries.ObjectHolder; + +import static com.minttea.tomeofblood.setup.Registries.ItemRegistry.*; + +@Mod.EventBusSubscriber(modid = TomeOfBloodMod.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) +@ObjectHolder(TomeOfBloodMod.MODID) +public class RitualRegistry { + + + @ObjectHolder("craft_occult_tome_one") public static OccultCraftingRitual craftOccultTomeOneRitual; + @ObjectHolder("craft_occult_tome_two") public static OccultCraftingRitual craftOccultTomeTwoRitual; + @ObjectHolder("craft_occult_tome_three") public static OccultCraftingRitual craftOccultTomeThreeRitual; + @ObjectHolder("craft_casting_foilot") public static OccultCraftingRitual craftCastingFoilotRitual; + @ObjectHolder("craft_casting_djinni") public static OccultCraftingRitual craftCastingDjinniRitual; + @ObjectHolder("craft_casting_afrit") public static OccultCraftingRitual craftCastingAfritRitual; + + + @SubscribeEvent + public static void registerRituals(final RegistryEvent.Register event) + //public static void registerRituals() + { + + Ritual[] rituals = { + new OccultCraftingRitual(OccultismRituals.CRAFT_FOLIOT_PENTACLE.get(), + Ingredient.fromItems(ItemsRegistry.noviceSpellBook), + "craft_occult_tome_one", occultTome1).setRegistryName("craft_occult_tome_one"), + new OccultCraftingRitual(OccultismRituals.CRAFT_DJINNI_PENTACLE.get(), + Ingredient.fromItems(occultTome1), + "craft_occult_tome_two", occultTome2).setRegistryName("craft_occult_tome_two"), + new OccultCraftingRitual(OccultismRituals.CRAFT_AFRIT_PENTACLE.get(), + Ingredient.fromItems(occultTome2), + "craft_occult_tome_three", occultTome3).setRegistryName("craft_occult_tome_three"), + new OccultCraftingRitual(OccultismRituals.CRAFT_FOLIOT_PENTACLE.get(), + Ingredient.fromItems(OccultismItems.BOOK_OF_BINDING_BOUND_FOLIOT.get()), + "craft_casting_foilot", occultTome1).setRegistryName("craft_casting_foilot"), + new OccultCraftingRitual(OccultismRituals.CRAFT_DJINNI_PENTACLE.get(), + Ingredient.fromItems(OccultismItems.BOOK_OF_BINDING_BOUND_DJINNI.get()), + "craft_casting_djinni", occultTome2).setRegistryName("craft_casting_djinii"), + new OccultCraftingRitual(OccultismRituals.CRAFT_AFRIT_PENTACLE.get(), + Ingredient.fromItems(OccultismItems.BOOK_OF_BINDING_BOUND_AFRIT.get()), + "craft_casting_afrit", occultTome3).setRegistryName("craft_crafting_afrit") + }; + + for (Ritual r : rituals + ) { + + event.getRegistry().register(r); + } + + } +} diff --git a/src/main/java/com/minttea/tomeofblood/setup/Registries/SpellRegistry.java b/src/main/java/com/minttea/tomeofblood/setup/Registries/SpellRegistry.java new file mode 100644 index 0000000..51d2e72 --- /dev/null +++ b/src/main/java/com/minttea/tomeofblood/setup/Registries/SpellRegistry.java @@ -0,0 +1,35 @@ +package com.minttea.tomeofblood.setup.Registries; + +import com.hollingsworth.arsnouveau.api.ArsNouveauAPI; +import com.minttea.tomeofblood.TomeOfBloodMod; +import com.minttea.tomeofblood.common.items.NewGlyphLib; +import com.minttea.tomeofblood.common.items.bloodmagic.SentientHarmEffect; +import com.minttea.tomeofblood.common.items.eidolon.WarlockEmpowerSpell; +import elucent.eidolon.recipe.WorktableRecipe; +import elucent.eidolon.recipe.WorktableRegistry; +import elucent.eidolon.spell.Signs; +import elucent.eidolon.spell.Spells; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.registries.ObjectHolder; + + +@Mod.EventBusSubscriber(modid = TomeOfBloodMod.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) +@ObjectHolder(TomeOfBloodMod.MODID) +public class SpellRegistry { + + public static void registerSpells() + { + + ArsNouveauAPI.getInstance().registerSpell(NewGlyphLib.EffectSentientHarmID, new SentientHarmEffect()); + + Spells.register(new WarlockEmpowerSpell(new ResourceLocation(TomeOfBloodMod.MODID, "warlock_empower"), Signs.WICKED_SIGN,Signs.MIND_SIGN,Signs.SOUL_SIGN)); + +// OccultismRituals.RITUALS.register("craft_occult_tome_one", CraftOccultTomeOneRitual::new); + //OccultismRituals.RITUALS.; + + + } +} diff --git a/src/main/java/com/minttea/tomeofblood/setup/Registry.java b/src/main/java/com/minttea/tomeofblood/setup/Registry.java deleted file mode 100644 index fc2ba51..0000000 --- a/src/main/java/com/minttea/tomeofblood/setup/Registry.java +++ /dev/null @@ -1,161 +0,0 @@ -package com.minttea.tomeofblood.setup; - -import com.github.klikli_dev.occultism.common.ritual.Ritual; -import com.github.klikli_dev.occultism.registry.OccultismRituals; -import com.hollingsworth.arsnouveau.api.ArsNouveauAPI; -import com.hollingsworth.arsnouveau.api.spell.ISpellTier; -import com.hollingsworth.arsnouveau.setup.ItemsRegistry; -import com.minttea.tomeofblood.TomeOfBloodMod; -import com.minttea.tomeofblood.client.gui.GuiBloodScroll; -import com.minttea.tomeofblood.common.items.NewGlyphLib; -import com.minttea.tomeofblood.common.items.bloodmagic.BloodGem; -import com.minttea.tomeofblood.common.items.bloodmagic.BloodTome; -import com.minttea.tomeofblood.common.items.bloodmagic.SentientHarmEffect; -import com.minttea.tomeofblood.common.items.bloodmagic.scroll.BloodScroll; -import com.minttea.tomeofblood.client.gui.ScrollContainer; -import com.minttea.tomeofblood.common.items.eidolon.WarlockEmpowerSpell; -import com.minttea.tomeofblood.common.items.eidolon.WarlockTome; -import com.minttea.tomeofblood.common.items.nature.NaturalTome; -import com.minttea.tomeofblood.common.items.occultism.BookOfCasting; -import com.minttea.tomeofblood.common.items.occultism.CraftOccultTomeRitual; -import com.minttea.tomeofblood.common.items.occultism.OccultTome; -import com.minttea.tomeofblood.common.items.occultism.SpiritClass; -import elucent.eidolon.spell.Signs; -import elucent.eidolon.spell.Spells; -import net.minecraft.client.gui.ScreenManager; -import net.minecraft.inventory.container.ContainerType; -import net.minecraft.item.Item; -import net.minecraft.item.crafting.Ingredient; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.extensions.IForgeContainerType; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.RegistryObject; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.IForgeRegistry; -import net.minecraftforge.registries.ObjectHolder; - -import java.util.HashSet; -import java.util.Set; - -@ObjectHolder(TomeOfBloodMod.MODID) -public class Registry { - - @ObjectHolder("blood_tome_one")public static BloodTome bloodTome1; - @ObjectHolder("blood_tome_two")public static BloodTome bloodTome2; - @ObjectHolder("blood_tome_three")public static BloodTome bloodTome3; - - @ObjectHolder("natural_tome_one")public static NaturalTome naturalTome1; - @ObjectHolder("natural_tome_two")public static NaturalTome naturalTome2; - @ObjectHolder("natural_tome_three")public static NaturalTome naturalTome3; - - @ObjectHolder("occult_tome_one")public static OccultTome occultTome1; - @ObjectHolder("occult_tome_two")public static OccultTome occultTome2; - @ObjectHolder("occult_tome_three")public static OccultTome occultTome3; - - @ObjectHolder("warlock_tome_one")public static WarlockTome warlockTome1; - @ObjectHolder("warlock_tome_two")public static WarlockTome warlockTome2; - @ObjectHolder("warlock_tome_three")public static WarlockTome warlockTome3; - - @ObjectHolder("blood_scroll")public static BloodScroll bloodScroll; - @ObjectHolder("blood_gem")public static BloodGem bloodGem; - - @ObjectHolder("craft_occult_tome_one") public static CraftOccultTomeRitual craftOccultTomeOneRitual; - @ObjectHolder("craft_occult_tome_two") public static CraftOccultTomeRitual craftOccultTomeTwoRitual; - @ObjectHolder("craft_occult_tome_three") public static CraftOccultTomeRitual craftOccultTomeThreeRitual; - - - @Mod.EventBusSubscriber(modid = TomeOfBloodMod.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) - @ObjectHolder(TomeOfBloodMod.MODID) - public static class RegistrationHandler{ - //public static final Set ITEMS = new HashSet<>(); - @ObjectHolder("blood_scroll")public static ContainerType container; - - @SubscribeEvent - public static void registerItems(final RegistryEvent.Register event) - { - Item[] items = - { - new BloodTome(ISpellTier.Tier.ONE).setRegistryName("blood_tome_one"), - new BloodTome(ISpellTier.Tier.TWO).setRegistryName("blood_tome_two"), - new BloodTome(ISpellTier.Tier.THREE).setRegistryName("blood_tome_three"), - new NaturalTome(ISpellTier.Tier.ONE).setRegistryName("natural_tome_one"), - new NaturalTome(ISpellTier.Tier.TWO).setRegistryName("natural_tome_two"), - new NaturalTome(ISpellTier.Tier.THREE).setRegistryName("natural_tome_three"), - new OccultTome(ISpellTier.Tier.ONE).setRegistryName("occult_tome_one"), - new OccultTome(ISpellTier.Tier.TWO).setRegistryName("occult_tome_two"), - new OccultTome(ISpellTier.Tier.THREE).setRegistryName("occult_tome_three"), - new WarlockTome(ISpellTier.Tier.ONE).setRegistryName("warlock_tome_one"), - new WarlockTome(ISpellTier.Tier.TWO).setRegistryName("warlock_tome_two"), - new WarlockTome(ISpellTier.Tier.THREE).setRegistryName("warlock_tome_three"), - new BookOfCasting(SpiritClass.FOLIOT).setRegistryName("casting_book_foliot"), - new BookOfCasting(SpiritClass.DJINNI).setRegistryName("casting_book_djinni"), - new BookOfCasting(SpiritClass.AFRIT).setRegistryName("casting_book_afrit"), - new BookOfCasting(SpiritClass.MARID).setRegistryName("casting_book_marid"), - new BloodScroll().setRegistryName("blood_scroll"), - new BloodGem().setRegistryName("blood_gem") - // bloodTome - }; - - final IForgeRegistry registry = event.getRegistry(); - for(final Item item: items) - { - registry.register(item); - //ITEMS.add(item); - } - - - - } - - public static void registerSpells() - { - ArsNouveauAPI.getInstance().registerSpell(NewGlyphLib.EffectSentientHarmID, new SentientHarmEffect()); - Spells.register(new WarlockEmpowerSpell(new ResourceLocation(TomeOfBloodMod.MODID, "warlock_empower"), Signs.WICKED_SIGN));//, Signs.MIND_SIGN,Signs.SOUL_SIGN)); -// OccultismRituals.RITUALS.register("craft_occult_tome_one", CraftOccultTomeOneRitual::new); - //OccultismRituals.RITUALS.; - - } - - @SubscribeEvent - public static void registerContainers(final RegistryEvent.Register> event) - { - container = IForgeContainerType.create(ScrollContainer::fromNetwork); - container.setRegistryName("blood_scroll_screen"); - event.getRegistry().register(container); - } - @SubscribeEvent - public static void registerRituals(final RegistryEvent.Register event) - { - - Ritual[] rituals = { - new CraftOccultTomeRitual(OccultismRituals.CRAFT_FOLIOT_PENTACLE.get() - , Ingredient.fromItems(ItemsRegistry.noviceSpellBook), - "craft_occult_tome_one",occultTome1).setRegistryName("craft_occult_tome_one"), - - new CraftOccultTomeRitual(OccultismRituals.CRAFT_DJINNI_PENTACLE.get() - , Ingredient.fromItems(occultTome1), - "craft_occult_tome_two",occultTome2).setRegistryName("craft_occult_tome_two") - - , - - new CraftOccultTomeRitual(OccultismRituals.CRAFT_AFRIT_PENTACLE.get() - , Ingredient.fromItems(occultTome2), - "craft_occult_tome_three",occultTome3).setRegistryName("craft_occult_tome_three") - }; - for (Ritual r: rituals - ) { - event.getRegistry().register(r); - } - - } - - @SubscribeEvent - public static void onClientSetupEvent(FMLClientSetupEvent event) { - ScreenManager.registerFactory(container, GuiBloodScroll::new); - } - } -} diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 1b22ebd..991c43e 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -68,19 +68,19 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mollis lacinia magn side="BOTH" [[dependencies.tomeofblood]] modId="bloodmagic" - mandatory=true + mandatory=false versionRange="[1.16.3-3.0,)" ordering="AFTER" side="BOTH" [[dependencies.tomeofblood]] modId="occultism" - mandatory=true + mandatory=false versionRange="[1.16.5-1.0,)" ordering="AFTER" side="BOTH" [[dependencies.tomeofblood]] modId="eidolon" - mandatory=true + mandatory=false versionRange="[0.2,)" ordering="AFTER" side="BOTH" \ No newline at end of file diff --git a/src/main/resources/assets/tomeofblood/lang/en_us.json b/src/main/resources/assets/tomeofblood/lang/en_us.json index 93d3b80..707e5be 100644 --- a/src/main/resources/assets/tomeofblood/lang/en_us.json +++ b/src/main/resources/assets/tomeofblood/lang/en_us.json @@ -4,5 +4,33 @@ "item.tomeofblood.tome_of_blood": "Tome Of Blood", "item.tomeofblood.blood_gem": "Blood Gem", "item.tomeofblood.blood_scroll": "Scroll of Blood Magic", - "toomanytomes.alert.lack_lp": "Not enough Life Essence is present to cast." + "toomanytomes.alert.lack_lp": "Not enough Life Essence is present to cast.", + "craft_occult_tome_one": "", + "craft_occult_tome_two": "", + "craft_occult_tome_three": "", + "craft_casting_foilot": "", + "craft_casting_djinni": "", + "craft_casting_afrit": "", + "item.tomeofblood.blood_tome_one": "Tome of the Novice Bloodmage", + "item.tomeofblood.blood_tome_two": "Tome of the Blood Wizard", + "item.tomeofblood.blood_tome_three": "Tome of Blood", + "item.tomeofblood.natural_tome_one": "Novice's Nature Tome", + "item.tomeofblood.natural_tome_two": "Tome of the Druid", + "item.tomeofblood.natural_tome_three": "Tome of the Archdruid", + "item.tomeofblood.occult_tome_one": "Tome of Occult Magic", + "item.tomeofblood.occult_tome_two": "Tome of the Ritualist", + "item.tomeofblood.occult_tome_three": "Tome of the Master Ritualist", + "item.tomeofblood.casting_book_foilot": "Book of Casting", + "item.tomeofblood.casting_book_djinni": "Book of Casting", + "item.tomeofblood.casting_book_afrit": "Book of Casting", + "item.tomeofblood.warlock_tome_one": "Tome of the Acolyte", + "item.tomeofblood.warlock_tome_two": "Tome of the Warlock", + "item.tomeofblood.warlock_tome_three": "Tome of the Archwarlock", + "tomeofblood.alert.no_spirits": "You have no spirits strong enough to power your spell.", + "tomeofblood.alert.no_aura": "You do not have the aura to cast this spell.", + "tomeofblood.alert.power_75": "You start to feel your power drain from you.", + "tomeofblood.alert.power_50": "You begin to feel empty, you should pray soon.", + "tomeofblood.alert.power_25": "You feel distant from your Dark Master. Pray sooner rather than later.", + "tomeofblood.alert.power_0": "Your power is drained. Pray again to restore your faith.", + "tomeofblood.alert.power_refresh": "You feel refreshed. The world is yours to conquer." } \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/book.json b/src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/book.json deleted file mode 100644 index ccea067..0000000 --- a/src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/book.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "BOOK NAME", - "landing_text": "LANDING TEXT", - "version": 1, - "extend": "ars_nouveau:worn_notebook" -} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/en_us/entries/bloody_notes.json b/src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/en_us/entries/bloody_notes.json deleted file mode 100644 index 03cf8b8..0000000 --- a/src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/en_us/entries/bloody_notes.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "The Bloody Tome", - "icon": "tomeofblood:tome_of_blood_t1", - "category": "equipment", - "pages": [ - { - "type": "text", - "text": "The discerning wizard may crave a new source of raw power for their spells. For those learned in the art of Blood Magic, a new option arises. As you cast spells with the Tome of Blood, it draws directly from your Soul Network in lieu of your mana pool." - }, - { - "type":"tomeofblood:crafting_altar", - "heading":"The Tome of Blood", - "recipe":"tomeofblood:altar/tome_of_blood_t1" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/en_us/templates/crafting_altar.json b/src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/en_us/templates/crafting_altar.json deleted file mode 100644 index b90033a..0000000 --- a/src/main/resources/data/tomeofblood/patchouli_books/bloody_notes/en_us/templates/crafting_altar.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "processor": "wayoftime.bloodmagic.compat.patchouli.processors.BloodAltarProcessor", - "components": [ - { - "type": "header", - "text": "#heading", - "x": -1, - "y": -6 - }, - { - "type": "image", - "image": "bloodmagic:textures/gui/patchouli_book/crafting.png", - "x": 9, - "y": 4, - "u": 0, - "v": 51, - "texture_width": 128, - "texture_height": 256, - "width": 98, - "height": 60 - }, - { - "type": "item", - "item": "bloodmagic:altar", - "x": 87, - "y": 46 - }, - { - "type": "item", - "item": "#input", - "x": 30, - "y": 8 - }, - { - "type": "item", - "item": "#output", - "x": 87, - "y": 27 - }, - { - "type": "text", - "text": "Tier: #tier# $(br)LP: #lp#", - "x": 59, - "y": 5 - }, - { - "type": "text", - "text": "#text", - "y": 67 - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/recipes/altar/tome_of_blood_t1.json b/src/main/resources/data/tomeofblood/recipes/altar/blood_tome_one.json similarity index 63% rename from src/main/resources/data/tomeofblood/recipes/altar/tome_of_blood_t1.json rename to src/main/resources/data/tomeofblood/recipes/altar/blood_tome_one.json index 06ca17e..4d1e742 100644 --- a/src/main/resources/data/tomeofblood/recipes/altar/tome_of_blood_t1.json +++ b/src/main/resources/data/tomeofblood/recipes/altar/blood_tome_one.json @@ -1,10 +1,10 @@ { "type": "bloodmagic:altar", "input": { - "item": "ars_nouveau:apprentice_spell_book" + "item": "ars_nouveau:novie_spell_book" }, "output": { - "item": "tomeofblood:tome_of_blood_t1" + "item": "tomeofblood:blood_tome_one" }, "upgradeLevel": 2, "altarSyphon": 10000, diff --git a/src/main/resources/data/tomeofblood/recipes/altar/natural_tome_three.json b/src/main/resources/data/tomeofblood/recipes/altar/natural_tome_three.json new file mode 100644 index 0000000..7cd3109 --- /dev/null +++ b/src/main/resources/data/tomeofblood/recipes/altar/natural_tome_three.json @@ -0,0 +1,15 @@ +{ + "type": "naturesaura:altar", + "input": { + "item": "tomeofblood:natural_tome_two" + }, + "output": { + "item": "tomeofblood:natural_tome_three" + }, + "aura_type": "naturesaura:nether", + "catalyst": { + "item": "naturesaura:conversion_catalyst" + }, + "aura": 50000, + "time": 60 +} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/recipes/altar/natural_tome_two.json b/src/main/resources/data/tomeofblood/recipes/altar/natural_tome_two.json new file mode 100644 index 0000000..8a33c62 --- /dev/null +++ b/src/main/resources/data/tomeofblood/recipes/altar/natural_tome_two.json @@ -0,0 +1,15 @@ +{ + "type": "naturesaura:altar", + "input": { + "item": "tomeofblood:natural_tome_one" + }, + "output": { + "item": "tomeofblood:natural_tome_two" + }, + "aura_type": "naturesaura:nether", + "catalyst": { + "item": "naturesaura:conversion_catalyst" + }, + "aura": 10000, + "time": 60 +} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_afrit.json b/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_afrit.json new file mode 100644 index 0000000..54aced2 --- /dev/null +++ b/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_afrit.json @@ -0,0 +1,27 @@ +{ + "type": "occultism:ritual_ingredient", + "ingredients": [ + { + "item": "occultism:purified_ink" + }, + { + "item": "occultism:purified_ink" + }, + { + "item": "minecraft:ender_pearl" + }, + { + "item": "minecraft:ender_pearl" + }, + { + "item": "minecraft:emerald" + }, + { + "item": "minecraft:emerald" + } + ], + "result": { + "_comment": "Unused", + "item": "occultism:pentacle" + } +} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_djinni.json b/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_djinni.json new file mode 100644 index 0000000..357a18e --- /dev/null +++ b/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_djinni.json @@ -0,0 +1,27 @@ +{ + "type": "occultism:ritual_ingredient", + "ingredients": [ + { + "item": "occultism:purified_ink" + }, + { + "item": "occultism:purified_ink" + }, + { + "item": "minecraft:blaze_powder" + }, + { + "item": "minecraft:blaze_powder" + }, + { + "item": "ars_nouveau:spell_parchment" + }, + { + "item": "ars_nouveau:spell_parchment" + } + ], + "result": { + "_comment": "Unused", + "item": "occultism:pentacle" + } +} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_foilot.json b/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_foilot.json new file mode 100644 index 0000000..ec3ea7b --- /dev/null +++ b/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_casting_foilot.json @@ -0,0 +1,21 @@ +{ + "type": "occultism:ritual_ingredient", + "ingredients": [ + { + "item": "occultism:purified_ink" + }, + { + "item": "occultism:purified_ink" + }, + { + "item": "ars_nouveau:mana_gem" + }, + { + "item": "ars_nouveau:mana_gem" + } + ], + "result": { + "_comment": "Unused", + "item": "occultism:pentacle" + } +} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_occult_tome_three.json b/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_occult_tome_three.json index da89be2..96404d3 100644 --- a/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_occult_tome_three.json +++ b/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_occult_tome_three.json @@ -5,7 +5,7 @@ "item": "occultism:purified_ink" }, { - "item": "occultism:spirit_attuned_crystal" + "item": "occultism:book_of_binding_bound_afrit" }, { "item": "minecraft:ender_pearl" diff --git a/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_occult_tome_two.json b/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_occult_tome_two.json index 7a61bd1..1486afc 100644 --- a/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_occult_tome_two.json +++ b/src/main/resources/data/tomeofblood/recipes/ritual_ingredients/craft_occult_tome_two.json @@ -5,7 +5,7 @@ "item": "occultism:purified_ink" }, { - "item": "occultism:spirit_attuned_crystal" + "item": "occultism:book_of_binding_bound_djinni" }, { "item": "minecraft:blaze_powder" diff --git a/src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_afrit.json b/src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_afrit.json new file mode 100644 index 0000000..cdd2e70 --- /dev/null +++ b/src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_afrit.json @@ -0,0 +1,9 @@ +{ + "type": "occultism:ritual", + "ingredient": { + "item": "occultism:book_of_binding_bound_afrit" + }, + "result":{ + "item": "tomeofblood:casting_book_afrit" + } +} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_djinni.json b/src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_djinni.json new file mode 100644 index 0000000..e04cd3a --- /dev/null +++ b/src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_djinni.json @@ -0,0 +1,9 @@ +{ + "type": "occultism:ritual", + "ingredient": { + "item": "occultism:book_of_binding_bound_djinni" + }, + "result":{ + "item": "tomeofblood:casting_book_djinni" + } +} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_foilot.json b/src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_foilot.json new file mode 100644 index 0000000..5a7f291 --- /dev/null +++ b/src/main/resources/data/tomeofblood/recipes/rituals/craft_casting_foilot.json @@ -0,0 +1,9 @@ +{ + "type": "occultism:ritual", + "ingredient": { + "item": "occultism:book_of_binding_bound_foliot" + }, + "result":{ + "item": "tomeofblood:casting_book_foilot" + } +} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/recipes/rituals/craft_occult_tome_three.json b/src/main/resources/data/tomeofblood/recipes/rituals/craft_occult_tome_three.json new file mode 100644 index 0000000..1cbf171 --- /dev/null +++ b/src/main/resources/data/tomeofblood/recipes/rituals/craft_occult_tome_three.json @@ -0,0 +1,9 @@ +{ + "type": "occultism:ritual", + "ingredient": { + "item": "tomeofblood:occult_tome_two" + }, + "result":{ + "item": "tomeofblood:occult_tome_three" + } +} \ No newline at end of file diff --git a/src/main/resources/data/tomeofblood/recipes/rituals/craft_occult_tome_two.json b/src/main/resources/data/tomeofblood/recipes/rituals/craft_occult_tome_two.json index 9417f28..de69667 100644 --- a/src/main/resources/data/tomeofblood/recipes/rituals/craft_occult_tome_two.json +++ b/src/main/resources/data/tomeofblood/recipes/rituals/craft_occult_tome_two.json @@ -1,7 +1,7 @@ { "type": "occultism:ritual", "ingredient": { - "item": "tomeofblood:occult_tome_two" + "item": "tomeofblood:occult_tome_one" }, "result":{ "item": "tomeofblood:occult_tome_two" diff --git a/src/main/resources/data/tomeofblood/recipes/tree_ritual/natural_tome_one.json b/src/main/resources/data/tomeofblood/recipes/tree_ritual/natural_tome_one.json new file mode 100644 index 0000000..4a628fc --- /dev/null +++ b/src/main/resources/data/tomeofblood/recipes/tree_ritual/natural_tome_one.json @@ -0,0 +1,28 @@ +{ + "type": "naturesaura:tree_ritual", + "ingredients": [ + { + "item": "ars_nouveau:mana_gem" + }, + { + "item": "ars_nouveau:mana_gem" + }, + { + "item": "ars_nouveau:spell_parchment" + }, + { + "item": "ars_nouveau:novice_spell_book" + }, + { + "item": "ars_nouveau:spell_parchment" + } + ], + "sapling": { + "item": "minecraft:oak_sapling" + }, + "output": { + "item": "tomeofblood:natural_tome_one", + "count": 1 + }, + "time": 200 +} \ No newline at end of file