From 00b65b926d588113fb84eeac029aa5b9fee4a7e5 Mon Sep 17 00:00:00 2001 From: sam Date: Mon, 6 Aug 2018 12:42:35 -0700 Subject: [PATCH 01/12] 1.1.0 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b1f393de..51fe328e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.jvmargs=-Xmx3G forge_version=14.23.1.2594 mc_version=1.12.2 -mod_version=1.0.3 +mod_version=1.1.0 From 1d9373bd1894e7c2c00909e2454fa616d41941fe Mon Sep 17 00:00:00 2001 From: sam Date: Mon, 6 Aug 2018 23:39:27 -0700 Subject: [PATCH 02/12] 1.1.1 hotfix --- gradle.properties | 2 +- .../java/elucent/rootsclassic/ritual/RitualManager.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 51fe328e..0bab8685 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.jvmargs=-Xmx3G forge_version=14.23.1.2594 mc_version=1.12.2 -mod_version=1.1.0 +mod_version=1.1.1 diff --git a/src/main/java/elucent/rootsclassic/ritual/RitualManager.java b/src/main/java/elucent/rootsclassic/ritual/RitualManager.java index f3bc30f1..71317993 100644 --- a/src/main/java/elucent/rootsclassic/ritual/RitualManager.java +++ b/src/main/java/elucent/rootsclassic/ritual/RitualManager.java @@ -2,6 +2,7 @@ import java.util.ArrayList; import elucent.rootsclassic.RegistryManager; +import elucent.rootsclassic.Roots; import elucent.rootsclassic.Util; import elucent.rootsclassic.block.altar.TileEntityAltar; import elucent.rootsclassic.block.brazier.TileEntityBrazier; @@ -64,7 +65,7 @@ public static void addRitual(RitualBase ritual) throws IllegalArgumentException for (RitualBase existing : rituals) { //ingredients must be unique if (ritual.doIngredientsMatch(existing)) { - throw new IllegalArgumentException("Duplicate ingredients are not allowed for incoming ritual : " + ritual.getName() + Roots.logger.error("Duplicate ingredients are not allowed for incoming ritual : " + ritual.getName() + " and existing ritual " + existing.getName()); } } @@ -400,6 +401,7 @@ public static void init() { .addIngredient(new ItemStack(RegistryManager.standingStoneT2, 1)) .addIngredient(new ItemStack(Items.GLOWSTONE_DUST, 1)) .addIngredient(new ItemStack(Blocks.STONEBRICK, 1, 3))); + //just to move 403 wtf addRitual(new RitualCrafting("vacuumStoneCrafting", 0, 105, 73) .setResult(new ItemStack(RegistryManager.standingStoneVacuum, 1)) .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) @@ -420,7 +422,7 @@ public static void init() { .addIncense(new ItemStack(RegistryManager.darkOakTreeBark, 1, 0)) .addIngredient(new ItemStack(RegistryManager.standingStoneT2, 1)) .addIngredient(new ItemStack(Items.GLOWSTONE_DUST, 1)) - .addIngredient(new ItemStack(Blocks.STONE, 1, 3))); + .addIngredient(new ItemStack(Blocks.NETHER_BRICK))); addRitual(new RitualCrafting("runicFocusCrafting", 109, 242, 109) .setResult(new ItemStack(RegistryManager.runicFocus, 1, 0)) .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) From f8a227ee6ad5edecc093dbee1d112e292cd23423 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 2 Sep 2018 22:27:50 +0200 Subject: [PATCH 03/12] Updated ignorelist for IdeaJ --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index dfc4cc4d..b7ed8045 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,7 @@ crash-reports/ *.launch *.lnk *.jks + +\.idea/ +classes/ +*.iml From cba57d6d8b390e8ef5a9b8969af906fc70142435 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 2 Sep 2018 22:28:15 +0200 Subject: [PATCH 04/12] Integrated JEI & Crafttweaker in gradle script --- build.gradle | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 2d32960e..2da21cf6 100644 --- a/build.gradle +++ b/build.gradle @@ -26,11 +26,23 @@ minecraft { makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. } -dependencies { - +repositories { + maven { // JEI & Tinkers + name 'DVS1 Maven FS' + url 'http://dvs1.progwml6.com/files/maven' + } + maven { // CraftTweaker (aka MineTweaker3), Immersive Engineering + name 'jared maven' + url "http://blamejared.com/maven" + } +} +dependencies { + compileOnly "mezz.jei:jei_1.12.2:4.11.+" + compileOnly "CraftTweaker2:CraftTweaker2-API:4.1.9.+" } + processResources { // this will ensure that this task is redone when the versions change. From 450df9361c70a5c47dd62d844913488cbe974d00 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 2 Sep 2018 22:29:38 +0200 Subject: [PATCH 05/12] Fixed #15 temporary fix so client doesn't crash Rendering appears to be not implemented. Similar issue exist in EntityAccelerator --- .../elucent/rootsclassic/entity/EntityTileAccelerator.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/elucent/rootsclassic/entity/EntityTileAccelerator.java b/src/main/java/elucent/rootsclassic/entity/EntityTileAccelerator.java index b4b53de4..43452b4e 100644 --- a/src/main/java/elucent/rootsclassic/entity/EntityTileAccelerator.java +++ b/src/main/java/elucent/rootsclassic/entity/EntityTileAccelerator.java @@ -32,6 +32,13 @@ public EntityTileAccelerator(World world, BlockPos pos, int potency, int size) { @Override public void onUpdate() { super.onUpdate(); + if (pos == null) { + if (!world.isRemote) { + this.setDead(); + this.getEntityWorld().removeEntity(this); + } + return; + } if (this.getEntityWorld().getTileEntity(this.pos) instanceof ITickable) { for (int i = 0; i < potency; i++) { ((ITickable) this.getEntityWorld().getTileEntity(this.pos)).update(); From 9d6d323af6eb28b876f323b2f2df79fc60289771 Mon Sep 17 00:00:00 2001 From: sam Date: Tue, 25 Dec 2018 11:02:34 -0800 Subject: [PATCH 06/12] add dist and some markdown --- .github/CODE_OF_CONDUCT.md | 31 +++++++++++++++++++++++++++++++ .github/CONTRIBUTING.md | 0 .github/ISSUE_TEMPLATE.md | 16 ++++++++++++++++ dist.bat | 4 ++++ 4 files changed, 51 insertions(+) create mode 100644 .github/CODE_OF_CONDUCT.md create mode 100644 .github/CONTRIBUTING.md create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 dist.bat diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..210d27f7 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,31 @@ +Code of Merit ( https://github.com/rosarior/Code-of-Merit ) + +The project creators, lead developers, core team, constitute the managing members of the project and have final say in every decision of the project, technical or otherwise, including overruling previous decisions. There are no limitations to this decisional power. + +Contributions are an expected result of your membership on the project. Don't expect others to do your work or help you with your work forever. + +All members have the same opportunities to seek any challenge they want within the project. + +Authority or position in the project will be proportional to the accrued contribution. Seniority must be earned. + +Software is evolutive: the better implementations must supersede lesser implementations. Technical advantage is the primary evaluation metric. + +This is a space for technical prowess; topics outside of the project will not be tolerated. + +Non technical conflicts will be discussed in a separate space. Disruption of the project will not be allowed. + +Individual characteristics, including but not limited to, body, sex, sexual preference, race, language, religion, nationality, or political preferences are irrelevant in the scope of the project and will not be taken into account concerning your value or that of your contribution to the project. + +Discuss or debate the idea, not the person. + +There is no room for ambiguity: Ambiguity will be met with questioning; further ambiguity will be met with silence. It is the responsibility of the originator to provide requested context. + +If something is illegal outside the scope of the project, it is illegal in the scope of the project. This Code of Merit does not take precedence over governing law. + +This Code of Merit governs the technical procedures of the project not the activities outside of it. + +Participation on the project equates to agreement of this Code of Merit. + +No objectives beyond the stated objectives of this project are relevant to the project. Any intent to deviate the project from its original purpose of existence will constitute grounds for remedial action which may include expulsion from the project. + +This document is the Code of Merit (http://code-of-merit.org), version 1.0. diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 00000000..e69de29b diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..861598eb --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,16 @@ +Minecraft version & Mod Version: + + +Single player or Server: + + +Describe problem (what you were doing / what happened): + + +Crash log (if any): + + +(If this is a suggestion and not a bug report, delete all this and just write your suggestion!) + + + diff --git a/dist.bat b/dist.bat new file mode 100644 index 00000000..74bf513b --- /dev/null +++ b/dist.bat @@ -0,0 +1,4 @@ + +cp -R build/libs/. c:/users/sam/desktop + +cp -R build/libs/. C:/Users/Sam/Documents/Curse/Minecraft/Instances/irnBRU/mods From bf5754b1b513057464cd13a042c3063cf8613cbb Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 13 Jan 2019 00:08:54 -0800 Subject: [PATCH 07/12] 1.1.2 zenscript for add recipe --- gradle.properties | 2 +- scripts_zen_example/rituals.zs | 18 + .../rootsclassic/compat/RitualZen.java | 24 +- .../rootsclassic/ritual/RitualBase.java | 65 ++- .../rootsclassic/ritual/RitualManager.java | 487 ++---------------- .../ritual/rituals/RitualBanishRain.java | 31 -- .../ritual/rituals/RitualCauseRain.java | 4 +- .../ritual/rituals/RitualCrafting.java | 10 +- .../ritual/rituals/RitualEngravedSword.java | 4 +- .../ritual/rituals/RitualFlare.java | 4 +- .../ritual/rituals/RitualGrow.java | 4 +- .../ritual/rituals/RitualImbuer.java | 2 +- .../ritual/rituals/RitualLifeDrain.java | 4 +- .../ritual/rituals/RitualMassBreed.java | 6 +- .../ritual/rituals/RitualSacrifice.java | 13 +- .../ritual/rituals/RitualSummoning.java | 4 +- .../ritual/rituals/RitualTimeShift.java | 4 +- update.json | 6 +- 18 files changed, 159 insertions(+), 533 deletions(-) delete mode 100644 src/main/java/elucent/rootsclassic/ritual/rituals/RitualBanishRain.java diff --git a/gradle.properties b/gradle.properties index 0bab8685..d1071158 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.jvmargs=-Xmx3G forge_version=14.23.1.2594 mc_version=1.12.2 -mod_version=1.1.1 +mod_version=1.1.2 diff --git a/scripts_zen_example/rituals.zs b/scripts_zen_example/rituals.zs index 74cacc68..dd02b98c 100644 --- a/scripts_zen_example/rituals.zs +++ b/scripts_zen_example/rituals.zs @@ -4,5 +4,23 @@ import mods.rootsclassic.Ritual; Ritual.setRitualIngredients("livingSwordCrafting", [,]); Ritual.setRitualIncense("livingSwordCrafting", [,]); +//crafting rituals +//unique name, recipe output, level +// r,g,b colours +// incense list, ingredient list +//level zero means no standing stones, only Altar+Brazier +Ritual.addCraftingRitual("simple", , 0, + 51,51,255, + [,], [,]); +//level 1 means the +Ritual.addCraftingRitual("test1", , 1, + 255,255,0, + [,], [,, ]); + +//level 2 is the biggest ritual with the Attuned stones +Ritual.addCraftingRitual("test2", , 2, + 255,0,0, + [,], [,, ]); + \ No newline at end of file diff --git a/src/main/java/elucent/rootsclassic/compat/RitualZen.java b/src/main/java/elucent/rootsclassic/compat/RitualZen.java index 18ec156e..03f47236 100644 --- a/src/main/java/elucent/rootsclassic/compat/RitualZen.java +++ b/src/main/java/elucent/rootsclassic/compat/RitualZen.java @@ -6,6 +6,7 @@ import elucent.rootsclassic.Roots; import elucent.rootsclassic.ritual.RitualBase; import elucent.rootsclassic.ritual.RitualManager; +import elucent.rootsclassic.ritual.rituals.RitualCrafting; import net.minecraftforge.fml.common.Optional; import stanhebben.zenscript.annotations.ZenClass; import stanhebben.zenscript.annotations.ZenMethod; @@ -14,6 +15,18 @@ @ZenRegister public class RitualZen { + @Optional.Method(modid = "crafttweaker") + @ZenMethod + public static void addCraftingRitual(String uniqueName, IItemStack output, int level, double r, double g, double b, + IItemStack incenses[], IItemStack ingredients[]) { + + RitualCrafting newCraft = new RitualCrafting(uniqueName, level, r, g, b); + newCraft.setResult(SpellZen.toStack(output)); + newCraft.setIngredients(Arrays.asList(SpellZen.toStacks(ingredients))); + newCraft.setIncenses(Arrays.asList(SpellZen.toStacks(incenses))); + RitualManager.addRitual(newCraft); + } + /** * Invalid ritual, names must be one of: staffCrafting,sylvanHoodCrafting,sylvanChestCrafting,sylvanLegsCrafting,sylvanBootsCrafting, * wildwoodHeadCrafting,wildwoodChestCrafting,wildwoodLegsCrafting,wildwoodBootsCrafting, acceleratorStoneCrafting,standingStone,entanglerStoneCrafting,growerStoneCrafting, @@ -31,12 +44,9 @@ public static void setRitualIngredients(String name, IItemStack items[]) { for (RitualBase c : RitualManager.rituals) { names += c.getName() + ","; } - // Roots.logger.info(names); + Roots.logger.info(names); throw new IllegalArgumentException("Invalid ritual[" + name + "], names must be one of: " + names); } - if (items.length == 0 || items.length > 3) { - throw new IllegalArgumentException("Invalid ritual ingredients, must be in range [1,3]"); - } Roots.logger.info("[ZenScript:Ritual] changing ingredients " + found.getName()); found.setIngredients(Arrays.asList(SpellZen.toStacks(items))); } @@ -51,15 +61,11 @@ public static void setRitualIncense(String name, IItemStack[] items) { for (RitualBase c : RitualManager.rituals) { names += c.getName() + ","; } - // Roots.logger.info(names); + Roots.logger.info(names); throw new IllegalArgumentException("Invalid ritual[" + name + "], names must be one of: " + names); } - if (items.length == 0 || items.length > 4) { - throw new IllegalArgumentException("Invalid ritual incense, must be in range [1,4]"); - } Roots.logger.info("[ZenScript:Ritual] changing incense " + found.getName()); found.setIncenses(Arrays.asList(SpellZen.toStacks(items))); - } } diff --git a/src/main/java/elucent/rootsclassic/ritual/RitualBase.java b/src/main/java/elucent/rootsclassic/ritual/RitualBase.java index 6e4f0a6e..dac83f0a 100644 --- a/src/main/java/elucent/rootsclassic/ritual/RitualBase.java +++ b/src/main/java/elucent/rootsclassic/ritual/RitualBase.java @@ -23,17 +23,49 @@ public abstract class RitualBase { private Vec3d color = new Vec3d(255, 255, 255); private Vec3d secondaryColor = new Vec3d(255, 255, 255); private String name = ""; + private int level; - public RitualBase(String parName, double r, double g, double b) { - setName(parName); - setColor(new Vec3d(r, g, b)); + public RitualBase(String parName, int level, double r, double g, double b) { + if (RitualManager.getRitualFromName(name) != null) { + throw new IllegalArgumentException("No duplicate names for rituals"); + } + this.name = parName; + setPrimaryColor(new Vec3d(r, g, b)); setSecondaryColor(new Vec3d(r, g, b)); + setLevel(level); + } - public RitualBase(String parName, double r, double g, double b, double r2, double g2, double b2) { - setName(parName); - setColor(new Vec3d(r, g, b)); - setSecondaryColor(new Vec3d(r2, g2, b2)); + private void setLevel(int level) { + this.level = level; + if (level == 0) { + // no pillars needed EX RitualCauseRain + } + else if (level == 2) { + this.addBlock(RegistryManager.standingStoneT1, -3, 0, -3); + this.addBlock(RegistryManager.standingStoneT1, -3, 0, 3); + this.addBlock(RegistryManager.standingStoneT1, 3, 0, -3); + this.addBlock(RegistryManager.standingStoneT1, 3, 0, 3); + this.addBlock(RegistryManager.standingStoneT1, 3, 0, 0); + this.addBlock(RegistryManager.standingStoneT1, -3, 0, 0); + this.addBlock(RegistryManager.standingStoneT1, 0, 0, 3); + this.addBlock(RegistryManager.standingStoneT1, 0, 0, -3); + this.addBlock(RegistryManager.standingStoneT2, 5, 1, 0); + this.addBlock(RegistryManager.standingStoneT2, -5, 1, 0); + this.addBlock(RegistryManager.standingStoneT2, 0, 1, 5); + this.addBlock(RegistryManager.standingStoneT2, 0, 1, -5); + } + else if (level == 1) { + this.addBlock(RegistryManager.standingStoneT1, -3, 0, -3); + this.addBlock(RegistryManager.standingStoneT1, -3, 0, 3); + this.addBlock(RegistryManager.standingStoneT1, 3, 0, -3); + this.addBlock(RegistryManager.standingStoneT1, 3, 0, 3); + this.addBlock(RegistryManager.standingStoneT1, 3, 0, 0); + this.addBlock(RegistryManager.standingStoneT1, -3, 0, 0); + this.addBlock(RegistryManager.standingStoneT1, 0, 0, 3); + this.addBlock(RegistryManager.standingStoneT1, 0, 0, -3); + } + else throw new IllegalArgumentException("Level must be 0, 1 or 2"); } public RitualBase addBlock(Block b, int x, int y, int z) { @@ -65,7 +97,7 @@ public boolean verifyPositionBlocks(World world, BlockPos pos) { Block loopBlock = getBlocks().get(i); BlockPos loopPosOffset = pos.add(loopPos.getX(), loopPos.getY(), loopPos.getZ()); if (world.getBlockState(loopPosOffset).getBlock() != loopBlock) { - Roots.logger.info("Missing block " + loopBlock + " at position " + loopPosOffset); + Roots.logger.info(this.level + " level recipe has Missing block " + loopBlock + " at position " + loopPosOffset); return false; } } @@ -76,7 +108,6 @@ public boolean verifyPositionBlocks(World world, BlockPos pos) { public List getRecipeBraziers(World world, BlockPos pos) { List links = new ArrayList<>(); TileEntity tileHere; - for (int i = -1 * RADIUS; i <= RADIUS; i++) { for (int j = -1 * RADIUS; j <= RADIUS; j++) { if (world.getBlockState(pos.add(i, 0, j)).getBlock() == RegistryManager.brazier) { @@ -106,7 +137,6 @@ public boolean incesceMatches(World world, BlockPos pos) { // //TODO: use this somewhere? // return I18n.format("roots.ritual." + getName() + ".name"); // } - @Override public String toString() { //this.getName() + System.lineSeparator() + @@ -126,6 +156,9 @@ public List getIngredients() { } public void setIngredients(List ingredients) { + if (ingredients.size() == 0 || ingredients.size() > 3) { + throw new IllegalArgumentException("Invalid ritual ingredients, must be in range [1,3]"); + } this.ingredients = ingredients; } @@ -134,6 +167,9 @@ public List getIncenses() { } public void setIncenses(List incenses) { + if (incenses.size() == 0 || incenses.size() > 4) { + throw new IllegalArgumentException("Invalid ritual incense, must be in range [1,4]"); + } this.incenses = incenses; } @@ -157,7 +193,7 @@ public Vec3d getColor() { return color; } - public void setColor(Vec3d color) { + public void setPrimaryColor(Vec3d color) { this.color = color; } @@ -165,15 +201,14 @@ public Vec3d getSecondaryColor() { return secondaryColor; } - public void setSecondaryColor(Vec3d secondaryColor) { + public RitualBase setSecondaryColor(Vec3d secondaryColor) { this.secondaryColor = secondaryColor; + return this; } public String getName() { return name; } - public void setName(String name) { - this.name = name; - } + } diff --git a/src/main/java/elucent/rootsclassic/ritual/RitualManager.java b/src/main/java/elucent/rootsclassic/ritual/RitualManager.java index 71317993..57260a02 100644 --- a/src/main/java/elucent/rootsclassic/ritual/RitualManager.java +++ b/src/main/java/elucent/rootsclassic/ritual/RitualManager.java @@ -33,6 +33,7 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; public class RitualManager { @@ -40,7 +41,6 @@ public class RitualManager { public static ArrayList rituals = new ArrayList(); public static RitualBase findMatchingByIngredients(TileEntityAltar altar) { - for (RitualBase ritual : RitualManager.rituals) { // if (ritual.getName().equals("healerStoneCrafting")) { // Roots.logger.info("healer stone?"); @@ -73,7 +73,7 @@ public static void addRitual(RitualBase ritual) throws IllegalArgumentException } public static void init() { - addRitual(new RitualCrafting("staffCrafting", 205, 86, 0) + addRitual(new RitualCrafting("staffCrafting", 2, 205, 86, 0) .setResult(new ItemStack(RegistryManager.crystalStaff, 1)) .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) @@ -90,7 +90,7 @@ public static void init() { .addIngredient(new ItemStack(Blocks.DIAMOND_BLOCK, 1)) .addIngredient(new ItemStack(Items.STICK, 1)) .addIngredient(new ItemStack(Items.BLAZE_POWDER, 1))); - addRitual(new RitualCrafting("sylvanHoodCrafting", 62, 138, 62) + addRitual(new RitualCrafting("sylvanHoodCrafting", 2, 62, 138, 62) .setResult(new ItemStack(RegistryManager.druidRobesHead, 1)) .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) @@ -111,7 +111,7 @@ public static void init() { .addIngredient(new ItemStack(Items.DIAMOND, 1)) .addIngredient(new ItemStack(Items.LEATHER_HELMET, 1)) .addIngredient(new ItemStack(Blocks.VINE, 1))); - addRitual(new RitualCrafting("sylvanChestCrafting", 62, 138, 62) + addRitual(new RitualCrafting("sylvanChestCrafting", 2, 62, 138, 62) .setResult(new ItemStack(RegistryManager.druidRobesChest, 1)) .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) @@ -132,20 +132,8 @@ public static void init() { .addIngredient(new ItemStack(Items.DIAMOND, 1)) .addIngredient(new ItemStack(Items.LEATHER_CHESTPLATE, 1)) .addIngredient(new ItemStack(Blocks.VINE, 1))); - addRitual(new RitualCrafting("sylvanLegsCrafting", 62, 138, 62) + addRitual(new RitualCrafting("sylvanLegsCrafting", 2, 62, 138, 62) .setResult(new ItemStack(RegistryManager.druidRobesLegs, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.birchTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.birchTreeBark, 1)) .addIncense(new ItemStack(Items.GOLDEN_APPLE, 1)) @@ -153,20 +141,8 @@ public static void init() { .addIngredient(new ItemStack(Items.DIAMOND, 1)) .addIngredient(new ItemStack(Items.LEATHER_LEGGINGS, 1)) .addIngredient(new ItemStack(Blocks.VINE, 1))); - addRitual(new RitualCrafting("sylvanBootsCrafting", 62, 138, 62) + addRitual(new RitualCrafting("sylvanBootsCrafting", 2, 62, 138, 62) .setResult(new ItemStack(RegistryManager.druidRobesBoots, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.birchTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.birchTreeBark, 1)) .addIncense(new ItemStack(Items.GOLDEN_APPLE, 1)) @@ -174,20 +150,8 @@ public static void init() { .addIngredient(new ItemStack(Items.DIAMOND, 1)) .addIngredient(new ItemStack(Items.LEATHER_BOOTS, 1)) .addIngredient(new ItemStack(Blocks.VINE, 1))); - addRitual(new RitualCrafting("wildwoodHeadCrafting", 145, 115, 65) + addRitual(new RitualCrafting("wildwoodHeadCrafting", 2, 145, 115, 65) .setResult(new ItemStack(RegistryManager.druidArmorHead, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) @@ -195,20 +159,8 @@ public static void init() { .addIngredient(new ItemStack(Items.DIAMOND, 1)) .addIngredient(new ItemStack(Items.IRON_HELMET, 1)) .addIngredient(new ItemStack(Blocks.PLANKS, 1, 0))); - addRitual(new RitualCrafting("wildwoodChestCrafting", 145, 115, 65) + addRitual(new RitualCrafting("wildwoodChestCrafting", 2, 145, 115, 65) .setResult(new ItemStack(RegistryManager.druidArmorChest, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) @@ -216,20 +168,8 @@ public static void init() { .addIngredient(new ItemStack(Items.DIAMOND, 1)) .addIngredient(new ItemStack(Items.IRON_CHESTPLATE, 1)) .addIngredient(new ItemStack(Blocks.PLANKS, 1))); - addRitual(new RitualCrafting("wildwoodLegsCrafting", 145, 115, 65) + addRitual(new RitualCrafting("wildwoodLegsCrafting", 2, 145, 115, 65) .setResult(new ItemStack(RegistryManager.druidArmorLegs, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) @@ -237,20 +177,8 @@ public static void init() { .addIngredient(new ItemStack(Items.DIAMOND, 1)) .addIngredient(new ItemStack(Items.IRON_LEGGINGS, 1)) .addIngredient(new ItemStack(Blocks.PLANKS, 1))); - addRitual(new RitualCrafting("wildwoodBootsCrafting", 145, 115, 65) + addRitual(new RitualCrafting("wildwoodBootsCrafting", 2, 145, 115, 65) .setResult(new ItemStack(RegistryManager.druidArmorBoots, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) @@ -258,20 +186,8 @@ public static void init() { .addIngredient(new ItemStack(Items.DIAMOND, 1)) .addIngredient(new ItemStack(Items.IRON_BOOTS, 1)) .addIngredient(new ItemStack(Blocks.PLANKS, 1))); - addRitual(new RitualCrafting("acceleratorStoneCrafting", 0, 105, 73) + addRitual(new RitualCrafting("acceleratorStoneCrafting", 2, 0, 105, 73) .setResult(new ItemStack(RegistryManager.standingStoneAccelerator, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.verdantSprig, 1)) .addIncense(new ItemStack(RegistryManager.infernalStem, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) @@ -279,37 +195,13 @@ public static void init() { .addIngredient(new ItemStack(RegistryManager.standingStoneT2, 1)) .addIngredient(new ItemStack(Items.GLOWSTONE_DUST, 1)) .addIngredient(new ItemStack(Blocks.STONEBRICK, 1, 0))); - addRitual(new RitualCrafting("standingStone", 0, 105, 73) + addRitual(new RitualCrafting("standingStone", 2, 0, 105, 73) .setResult(new ItemStack(RegistryManager.standingStoneAesthetic, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIngredient(new ItemStack(RegistryManager.standingStoneT2, 1)) .addIngredient(new ItemStack(Items.GLOWSTONE_DUST, 1)) .addIngredient(new ItemStack(Blocks.STONEBRICK, 1, 1))); - addRitual(new RitualCrafting("entanglerStoneCrafting", 0, 105, 73) + addRitual(new RitualCrafting("entanglerStoneCrafting", 2, 0, 105, 73) .setResult(new ItemStack(RegistryManager.standingStoneEntangler, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.verdantSprig, 1)) .addIncense(new ItemStack(RegistryManager.infernalStem, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) @@ -317,20 +209,8 @@ public static void init() { .addIngredient(new ItemStack(RegistryManager.standingStoneT2, 1)) .addIngredient(new ItemStack(Items.GLOWSTONE_DUST, 1)) .addIngredient(new ItemStack(Blocks.STONEBRICK, 1, 2))); - addRitual(new RitualCrafting("growerStoneCrafting", 0, 105, 73) + addRitual(new RitualCrafting("growerStoneCrafting", 2, 0, 105, 73) .setResult(new ItemStack(RegistryManager.standingStoneGrower, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.verdantSprig, 1)) .addIncense(new ItemStack(RegistryManager.infernalStem, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) @@ -338,20 +218,8 @@ public static void init() { .addIngredient(new ItemStack(RegistryManager.standingStoneT2, 1)) .addIngredient(new ItemStack(Items.GLOWSTONE_DUST, 1)) .addIngredient(new ItemStack(Blocks.STONE, 1, 0))); - addRitual(new RitualCrafting("healerStoneCrafting", 0, 105, 73) + addRitual(new RitualCrafting("healerStoneCrafting", 2, 0, 105, 73) .setResult(new ItemStack(RegistryManager.standingStoneHealer, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.verdantSprig, 1)) .addIncense(new ItemStack(RegistryManager.infernalStem, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) @@ -359,20 +227,8 @@ public static void init() { .addIngredient(new ItemStack(RegistryManager.standingStoneT2)) .addIngredient(new ItemStack(Items.REDSTONE)) .addIngredient(new ItemStack(Blocks.STONEBRICK, 1, 3))); - addRitual(new RitualCrafting("igniterStoneCrafting", 0, 105, 73) + addRitual(new RitualCrafting("igniterStoneCrafting", 2, 0, 105, 73) .setResult(new ItemStack(RegistryManager.standingStoneIgniter, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.verdantSprig, 1)) .addIncense(new ItemStack(RegistryManager.infernalStem, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) @@ -380,20 +236,8 @@ public static void init() { .addIngredient(new ItemStack(RegistryManager.standingStoneT2, 1)) .addIngredient(new ItemStack(Items.REDSTONE, 1)) .addIngredient(new ItemStack(Blocks.STONEBRICK, 1, 2))); - addRitual(new RitualCrafting("repulsorStoneCrafting", 0, 105, 73) + addRitual(new RitualCrafting("repulsorStoneCrafting", 2, 0, 105, 73) .setResult(new ItemStack(RegistryManager.standingStoneRepulsor, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.verdantSprig, 1)) .addIncense(new ItemStack(RegistryManager.infernalStem, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) @@ -402,20 +246,8 @@ public static void init() { .addIngredient(new ItemStack(Items.GLOWSTONE_DUST, 1)) .addIngredient(new ItemStack(Blocks.STONEBRICK, 1, 3))); //just to move 403 wtf - addRitual(new RitualCrafting("vacuumStoneCrafting", 0, 105, 73) + addRitual(new RitualCrafting("vacuumStoneCrafting", 2, 0, 105, 73) .setResult(new ItemStack(RegistryManager.standingStoneVacuum, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.verdantSprig, 1)) .addIncense(new ItemStack(RegistryManager.infernalStem, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) @@ -423,20 +255,8 @@ public static void init() { .addIngredient(new ItemStack(RegistryManager.standingStoneT2, 1)) .addIngredient(new ItemStack(Items.GLOWSTONE_DUST, 1)) .addIngredient(new ItemStack(Blocks.NETHER_BRICK))); - addRitual(new RitualCrafting("runicFocusCrafting", 109, 242, 109) + addRitual(new RitualCrafting("runicFocusCrafting", 2, 109, 242, 109) .setResult(new ItemStack(RegistryManager.runicFocus, 1, 0)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.spruceTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.acaciaTreeBark, 1)) @@ -444,104 +264,64 @@ public static void init() { .addIngredient(new ItemStack(RegistryManager.verdantSprig, 1)) .addIngredient(new ItemStack(Items.DIAMOND, 1)) .addIngredient(new ItemStack(Blocks.STONE, 1))); - addRitual(new RitualCrafting("runicFocusCharging", 109, 242, 109) + addRitual(new RitualCrafting("runicFocusCharging", 2, 109, 242, 109) .setResult(new ItemStack(RegistryManager.runicFocus, 1, 1)) .addIncense(new ItemStack(RegistryManager.infernalStem, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) .addIngredient(new ItemStack(RegistryManager.runicFocus, 1, 0)) .addIngredient(new ItemStack(Items.REDSTONE, 1)) .addIngredient(new ItemStack(Items.GLOWSTONE_DUST, 1))); - addRitual(new RitualCrafting("livingPickaxeCrafting", 146, 214, 43) + addRitual(new RitualCrafting("livingPickaxeCrafting", 2, 146, 214, 43) .setResult(new ItemStack(RegistryManager.livingPickaxe, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIngredient(new ItemStack(Items.WOODEN_PICKAXE, 1)) .addIngredient(new ItemStack(RegistryManager.verdantSprig, 1)) .addIngredient(new ItemStack(Items.GOLD_NUGGET))); - addRitual(new RitualCrafting("livingAxeCrafting", 146, 214, 43) + addRitual(new RitualCrafting("livingAxeCrafting", 2, 146, 214, 43) .setResult(new ItemStack(RegistryManager.livingAxe, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIngredient(new ItemStack(Items.WOODEN_AXE, 1)) .addIngredient(new ItemStack(RegistryManager.verdantSprig, 1)) .addIngredient(new ItemStack(Items.GOLD_NUGGET, 1))); - addRitual(new RitualCrafting("livingSwordCrafting", 146, 214, 43) + addRitual(new RitualCrafting("livingSwordCrafting", 2, 146, 214, 43) .setResult(new ItemStack(RegistryManager.livingSword, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIngredient(new ItemStack(Items.WOODEN_SWORD, 1)) .addIngredient(new ItemStack(RegistryManager.verdantSprig, 1)) .addIngredient(new ItemStack(Items.GOLD_NUGGET, 1))); - addRitual(new RitualCrafting("livingHoeCrafting", 146, 214, 43) + addRitual(new RitualCrafting("livingHoeCrafting", 2, 146, 214, 43) .setResult(new ItemStack(RegistryManager.livingHoe, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIngredient(new ItemStack(Items.WOODEN_HOE, 1)) .addIngredient(new ItemStack(RegistryManager.verdantSprig, 1)) .addIngredient(new ItemStack(Items.GOLD_NUGGET, 1))); - addRitual(new RitualCrafting("livingShovelCrafting", 146, 214, 43) + addRitual(new RitualCrafting("livingShovelCrafting", 2, 146, 214, 43) .setResult(new ItemStack(RegistryManager.livingShovel, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.oakTreeBark, 1)) .addIngredient(new ItemStack(Items.WOODEN_SHOVEL, 1)) .addIngredient(new ItemStack(RegistryManager.verdantSprig, 1)) .addIngredient(new ItemStack(Items.GOLD_NUGGET, 1))); - addRitual(new RitualCauseRain("causerain", 23, 0, 138) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) + addRitual(new RitualCauseRain("causerain", 0, 23, 0, 138) .addIncense(new ItemStack(Blocks.VINE, 1)) .addIncense(new ItemStack(RegistryManager.oldRoot, 1)) .addIngredient(new ItemStack(Blocks.WATERLILY, 1))); - addRitual(new RitualCauseRain("banishrain", 204, 159, 35) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) + addRitual(new RitualCauseRain("banishrain", 0, 204, 159, 35) .addIncense(new ItemStack(Blocks.VINE, 1)) .addIncense(new ItemStack(RegistryManager.oldRoot, 1)) .addIngredient(new ItemStack(Items.WHEAT, 1))); - addRitual(new RitualMassBreed("massbreeding", 148, 61, 81) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 5) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 5, 1, -5) - .addBlock(RegistryManager.standingStoneT2, -5, 1, -5) + addRitual(new RitualMassBreed("massbreeding", 0, 148, 61, 81) .addIncense(new ItemStack(Items.CARROT, 1)) .addIncense(new ItemStack(Items.WHEAT, 1)) .addIncense(new ItemStack(Items.WHEAT_SEEDS, 1)) .addIncense(new ItemStack(Items.FISH, 1)) .addIngredient(new ItemStack(Items.GLOWSTONE_DUST, 1)) .addIngredient(new ItemStack(Items.BONE))); - addRitual(new RitualLifeDrain("lifedrain", 139, 22, 40) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 5) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 5, 1, -5) - .addBlock(RegistryManager.standingStoneT2, -5, 1, -5) + addRitual(new RitualLifeDrain("lifedrain", 2, 139, 22, 40) .addIncense(new ItemStack(Items.WOODEN_SWORD, 1)) .addIncense(new ItemStack(Items.WOODEN_AXE, 1)) .addIncense(new ItemStack(RegistryManager.darkOakTreeBark, 1)) @@ -549,257 +329,105 @@ public static void init() { .addIngredient(new ItemStack(Items.BLAZE_POWDER, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); addRitual(new RitualImbuer() - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) .addIngredient(new ItemStack(RegistryManager.crystalStaff, 1)) .addIngredient(new ItemStack(RegistryManager.verdantSprig, 1))); - addRitual(new RitualSummoning("cowSummoning", 199, 105, 193) + addRitual(new RitualSummoning("cowSummoning", 1, 199, 105, 193) .setResult(EntityCow.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) .addIncense(new ItemStack(Items.WHEAT_SEEDS, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.BEEF, 1)) .addIngredient(new ItemStack(Items.LEATHER, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualSummoning("pigSummoning", 199, 105, 193) + addRitual(new RitualSummoning("pigSummoning", 1, 199, 105, 193) .setResult(EntityPig.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) .addIncense(new ItemStack(Items.WHEAT_SEEDS, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.PORKCHOP, 1)) .addIngredient(new ItemStack(Items.PORKCHOP, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualSummoning("sheepSummoning", 199, 105, 193) + addRitual(new RitualSummoning("sheepSummoning", 1, 199, 105, 193) .setResult(EntitySheep.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) .addIncense(new ItemStack(Items.WHEAT_SEEDS, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.MUTTON, 1)) .addIngredient(new ItemStack(Blocks.WOOL, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualSummoning("chickenSummoning", 199, 105, 193) + addRitual(new RitualSummoning("chickenSummoning", 1, 199, 105, 193) .setResult(EntityChicken.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) .addIncense(new ItemStack(Items.WHEAT_SEEDS, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.CHICKEN, 1)) .addIngredient(new ItemStack(Items.FEATHER, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualSummoning("rabbitSummoning", 199, 105, 193) + addRitual(new RitualSummoning("rabbitSummoning", 1, 199, 105, 193) .setResult(EntityRabbit.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) .addIncense(new ItemStack(Items.WHEAT_SEEDS, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.RABBIT, 1)) .addIngredient(new ItemStack(Items.RABBIT_HIDE, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualSummoning("zombieSummoning", 58, 2, 84) + addRitual(new RitualSummoning("zombieSummoning", 2, 58, 2, 84) .setResult(EntityZombie.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(Items.COAL, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.ROTTEN_FLESH, 1)) .addIngredient(new ItemStack(Items.ROTTEN_FLESH, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualSummoning("skeletonSummoning", 58, 2, 84) + addRitual(new RitualSummoning("skeletonSummoning", 2, 58, 2, 84) .setResult(EntitySkeleton.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(Items.COAL, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.ARROW, 1)) .addIngredient(new ItemStack(Items.BONE, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualSummoning("spiderSummoning", 58, 2, 84) + addRitual(new RitualSummoning("spiderSummoning", 2, 58, 2, 84) .setResult(EntitySpider.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(Items.COAL, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.STRING, 1)) .addIngredient(new ItemStack(Items.SPIDER_EYE, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualSummoning("caveSpiderSummoning", 58, 2, 84) + addRitual(new RitualSummoning("caveSpiderSummoning", 2, 58, 2, 84) .setResult(EntityCaveSpider.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(Items.COAL, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.STRING, 1)) .addIngredient(new ItemStack(Items.FERMENTED_SPIDER_EYE, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualSummoning("slimeSummoning", 58, 2, 84) + addRitual(new RitualSummoning("slimeSummoning", 2, 58, 2, 84) .setResult(EntitySlime.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(Items.COAL, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.SLIME_BALL, 1)) .addIngredient(new ItemStack(Items.SLIME_BALL, 1)) .addIngredient(new ItemStack(Items.SLIME_BALL, 1))); - addRitual(new RitualSummoning("creeperSummoning", 58, 2, 84) + addRitual(new RitualSummoning("creeperSummoning", 2, 58, 2, 84) .setResult(EntityCreeper.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(Items.COAL, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.GUNPOWDER, 1)) .addIngredient(new ItemStack(Items.GUNPOWDER, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualSummoning("endermanSummoning", 58, 2, 84) + addRitual(new RitualSummoning("endermanSummoning", 2, 58, 2, 84) .setResult(EntityEnderman.class) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(Items.COAL, 1)) .addIncense(new ItemStack(Items.NETHER_WART, 1)) .addIngredient(new ItemStack(Items.ENDER_PEARL, 1)) .addIngredient(new ItemStack(Items.ENDER_PEARL, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualSacrifice("sacrifice", 94, 9, 56) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) + addRitual(new RitualSacrifice("sacrifice", 2, 94, 9, 56) .addIncense(new ItemStack(Items.BLAZE_POWDER, 1)) .addIncense(new ItemStack(RegistryManager.darkOakTreeBark, 1, 0)) .addIngredient(new ItemStack(Items.FLINT, 1)) .addIngredient(new ItemStack(Items.IRON_SWORD, 1)) .addIngredient(new ItemStack(Items.BONE, 1))); - addRitual(new RitualFlare("flare", 255, 91, 25) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) + addRitual(new RitualFlare("flare", 1, 255, 91, 25) .addIncense(new ItemStack(Items.GUNPOWDER, 1)) .addIncense(new ItemStack(RegistryManager.infernalStem, 1)) .addIngredient(new ItemStack(Items.FLINT, 1)) .addIngredient(new ItemStack(Items.COAL, 1)) .addIngredient(new ItemStack(Items.COAL, 1, 1))); - addRitual(new RitualGrow("grow", 82, 212, 47) + addRitual(new RitualGrow("grow", 0, 82, 212, 47) .addIncense(new ItemStack(Items.WHEAT, 1)) .addIncense(new ItemStack(Items.BEETROOT, 1)) .addIncense(new ItemStack(Items.POTATO, 1)) @@ -807,36 +435,17 @@ public static void init() { .addIngredient(new ItemStack(Items.REDSTONE, 1)) .addIngredient(new ItemStack(Items.DYE, 1, 15)) .addIngredient(new ItemStack(RegistryManager.verdantSprig, 1))); - addRitual(new RitualEngravedSword("engravedCrafting", 104, 106, 107) + addRitual(new RitualEngravedSword("engravedCrafting", 2, 104, 106, 107) .setResult(new ItemStack(RegistryManager.engravedSword)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(Items.GOLDEN_APPLE)) .addIncense(new ItemStack(Items.GOLDEN_CARROT, 1)) .addIngredient(new ItemStack(Items.STONE_SWORD)) .addIngredient(new ItemStack(RegistryManager.runicFocus)) .addIngredient(new ItemStack(Items.GLOWSTONE_DUST))); - addRitual(new RitualTimeShift("timeshift", 240, 245, 88, 252, 162, 35) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) + addRitual(new RitualTimeShift("timeshift", 1, 240, 245, 88) .addIngredient(new ItemStack(Items.CLOCK)) - .addIngredient(new ItemStack(Items.IRON_INGOT))); + .addIngredient(new ItemStack(Items.IRON_INGOT)) + .setSecondaryColor(new Vec3d(252, 162, 35))); } public static RitualBase getRitualFromName(String name) { diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualBanishRain.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualBanishRain.java deleted file mode 100644 index ef46121b..00000000 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualBanishRain.java +++ /dev/null @@ -1,31 +0,0 @@ -package elucent.rootsclassic.ritual.rituals; - -import java.util.List; -import elucent.rootsclassic.ritual.RitualBase; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public class RitualBanishRain extends RitualBase { - - public RitualBanishRain(String name, double r, double g, double b) { - super(name, r, g, b); - } - - // @Override - // public boolean incesceMatches(World world, BlockPos pos) { - // if (super.incesceMatches(world, pos)) { - // if (world.getWorldInfo().isRaining() == true) { - // return true; - // } - // } - // return false; - // } - - @Override - public void doEffect(World world, BlockPos pos, List inventory, List incenses) { - inventory.clear(); - world.getWorldInfo().setRaining(false); - world.getWorldInfo().setCleanWeatherTime(3600); - } -} diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCauseRain.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCauseRain.java index 409da3fe..f3e84a35 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCauseRain.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCauseRain.java @@ -8,8 +8,8 @@ public class RitualCauseRain extends RitualBase { - public RitualCauseRain(String name, double r, double g, double b) { - super(name, r, g, b); + public RitualCauseRain(String name, int level, double r, double g, double b) { + super(name, level, r, g, b); } // // @Override diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCrafting.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCrafting.java index 8f909fff..91f2303c 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCrafting.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCrafting.java @@ -11,18 +11,14 @@ public class RitualCrafting extends RitualBase { public ItemStack result = ItemStack.EMPTY; + public RitualCrafting(String name, int level, double r, double g, double b) { + super(name, level, r, g, b); + } public RitualCrafting setResult(ItemStack stack) { this.result = stack; return this; } - public RitualCrafting(String name, double r, double g, double b) { - super(name, r, g, b); - } - - public RitualCrafting(String name, double r, double g, double b, double r2, double g2, double b2) { - super(name, r, g, b, r2, g2, b2); - } @Override public void doEffect(World world, BlockPos pos, List inventory, List incenses) { diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualEngravedSword.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualEngravedSword.java index e578aa93..915e7a4b 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualEngravedSword.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualEngravedSword.java @@ -21,8 +21,8 @@ public RitualBase setResult(ItemStack stack) { return this; } - public RitualEngravedSword(String name, double r, double g, double b) { - super(name, r, g, b); + public RitualEngravedSword(String name, int level, double r, double g, double b) { + super(name, level, r, g, b); } @Override diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualFlare.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualFlare.java index 305ffdcf..ca8b02b5 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualFlare.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualFlare.java @@ -15,8 +15,8 @@ public class RitualFlare extends RitualBase { Random random = new Random(); - public RitualFlare(String name, double r, double g, double b) { - super(name, r, g, b); + public RitualFlare(String name, int level, double r, double g, double b) { + super(name, level, r, g, b); } @Override diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualGrow.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualGrow.java index b19d550e..4769fae7 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualGrow.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualGrow.java @@ -12,8 +12,8 @@ public class RitualGrow extends RitualBase { Random random = new Random(); - public RitualGrow(String name, double r, double g, double b) { - super(name, r, g, b); + public RitualGrow(String name, int level, double r, double g, double b) { + super(name, level, r, g, b); } @Override diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualImbuer.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualImbuer.java index a7e9a80a..0dca08a9 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualImbuer.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualImbuer.java @@ -13,7 +13,7 @@ public class RitualImbuer extends RitualBase { public RitualImbuer() { - super("imbuer", 255, 255, 255); + super("imbuer", 1, 255, 255, 255); } @Override diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualLifeDrain.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualLifeDrain.java index 1d191954..065588b8 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualLifeDrain.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualLifeDrain.java @@ -12,8 +12,8 @@ public class RitualLifeDrain extends RitualBase { - public RitualLifeDrain(String name, double r, double g, double b) { - super(name, r, g, b); + public RitualLifeDrain(String name, int level, double r, double g, double b) { + super(name, level, r, g, b); } @Override diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualMassBreed.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualMassBreed.java index 53fcf909..12bba341 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualMassBreed.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualMassBreed.java @@ -10,14 +10,14 @@ public class RitualMassBreed extends RitualBase { - public RitualMassBreed(String name, double r, double g, double b) { - super(name, r, g, b); + public RitualMassBreed(String name, int level, double r, double g, double b) { + super(name, level, r, g, b); } @Override public void doEffect(World world, BlockPos pos, List inventory, List incenses) { inventory.clear(); - List animals = (List) world.getEntitiesWithinAABB(EntityAnimal.class, new AxisAlignedBB(pos.getX() - 22, pos.getY() - 8, pos.getZ() - 22, pos.getX() + 23, pos.getY() + 9, pos.getZ() + 23)); + List animals = world.getEntitiesWithinAABB(EntityAnimal.class, new AxisAlignedBB(pos.getX() - 22, pos.getY() - 8, pos.getZ() - 22, pos.getX() + 23, pos.getY() + 9, pos.getZ() + 23)); if (animals.size() > 0) { for (int i = 0; i < animals.size(); i++) { animals.get(i).setInLove(world.getClosestPlayer(pos.getX(), pos.getY(), pos.getZ(), 5, false)); diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSacrifice.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSacrifice.java index 3363ad41..87cc3ee8 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSacrifice.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSacrifice.java @@ -19,8 +19,8 @@ public class RitualSacrifice extends RitualBase { public ArrayList potentialDrops = new ArrayList(); Random random = new Random(); - public RitualSacrifice(String name, double r, double g, double b) { - super(name, r, g, b); + public RitualSacrifice(String name, int level, double r, double g, double b) { + super(name, level, r, g, b); potentialDrops.add(new ItemStack(Items.WHEAT_SEEDS, 1)); potentialDrops.add(new ItemStack(Items.WHEAT_SEEDS, 1)); potentialDrops.add(new ItemStack(Items.PUMPKIN_SEEDS, 1)); @@ -42,15 +42,6 @@ public RitualSacrifice(String name, double r, double g, double b) { potentialDrops.add(new ItemStack(Blocks.WATERLILY, 1)); } - // @Override - // public boolean incesceMatches(World world, BlockPos pos) { - // if (super.incesceMatches(world, pos)) { - // if (world.getWorldInfo().isRaining() == false) { - // return true; - // } - // } - // return false; - // } @Override public void doEffect(World world, BlockPos pos, List inventory, List incenses) { diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSummoning.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSummoning.java index 67c19312..f6c7af07 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSummoning.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSummoning.java @@ -18,8 +18,8 @@ public RitualSummoning setResult(Class entity) { return this; } - public RitualSummoning(String name, double r, double g, double b) { - super(name, r, g, b); + public RitualSummoning(String name, int level, double r, double g, double b) { + super(name, level, r, g, b); } @Override diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualTimeShift.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualTimeShift.java index f77f0a7e..97f98095 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualTimeShift.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualTimeShift.java @@ -11,8 +11,8 @@ public class RitualTimeShift extends RitualBase { - public RitualTimeShift(String parName, double r, double g, double b, double r2, double g2, double b2) { - super(parName, r, g, b, r2, g2, b2); + public RitualTimeShift(String parName, int level, double r, double g, double b) { + super(parName, level, r, g, b); } @Override diff --git a/update.json b/update.json index 3b8f4801..44eae331 100644 --- a/update.json +++ b/update.json @@ -1,8 +1,8 @@ { "homepage": "https://minecraft.curseforge.com/projects/roots-classic", "promos": { - "1.12.2-latest": "1.1.0", - "1.12.2-recommended": "1.1.0" + "1.12.2-latest": "1.1.2", + "1.12.2-recommended": "1.1.2" }, "1.12.2":{ "1.0.0":"Initial Release" @@ -10,5 +10,7 @@ ,"1.0.2":"Infernal bulbs no longer get eaten when used on a skeleton. Removed restriction of Crystal Staff only working on vanilla grass blocks. More config controls added. You can now remove items from the mortar using an empty hand. Mortar gives you a status message if recipe is invalid. Fixed a crash when a Staff runs out of durability. Fixed Devil's Flower spell not spawning a skeleton. " ,"1.0.3":"Fixed a startup crash compatibility issue with ERZ. " ,"1.1.0":"Status messages while setting up rituals for ease of use. Ritual ingredients are now unique. If your ritual is invalid, you get status-bar messages to get a better idea of what is missing. When you start a ritual, if all ingredients are valid it will auto-light the braziers for you. Clicking a Ritual Altar recipe page now sends ingredients to chat to match how other recipes do it. Full CraftTweaker (zenscript) support to change items used by all spells and rituals. Item Tooltips added to all items rendered in the Runic Tablet GUI screens. Vanilla crafting recipes are no longer shown in the Runic Tablet; this was changed to stay consistent with Craft Tweaker and JEI. New Fruit salad food item to give berries more uses. " + ,"1.1.1":"Fix crash on startup. Duplicate items from zenscript reported to log. " + ,"1.1.2":"Zenscript support added for custom recipe crafting rituals, see the example file. " } } \ No newline at end of file From a50b350f0702d1360fd62b91fa8d479acd164276 Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 13 Jan 2019 12:18:18 -0800 Subject: [PATCH 08/12] 1.1.2 zenscript for more ritual customizing --- .../elucent/rootsclassic/RegistryManager.java | 6 +- .../block/brazier/TileEntityBrazier.java | 1 - .../rootsclassic/compat/RitualZen.java | 45 +++++++---- .../rootsclassic/item/ItemDruidRobes.java | 5 +- .../rootsclassic/ritual/RitualBase.java | 79 ++++++++++--------- .../rootsclassic/ritual/RitualManager.java | 67 ++++++++-------- update.json | 2 +- 7 files changed, 112 insertions(+), 93 deletions(-) diff --git a/src/main/java/elucent/rootsclassic/RegistryManager.java b/src/main/java/elucent/rootsclassic/RegistryManager.java index 8e657298..01554ebc 100644 --- a/src/main/java/elucent/rootsclassic/RegistryManager.java +++ b/src/main/java/elucent/rootsclassic/RegistryManager.java @@ -233,11 +233,13 @@ public static void init() { registerItem(whiteCurrant = new ItemRootsFood(4, 0.4F, false), "whitecurrant"); registerItem(elderBerry = new ItemRootsFood(2, 0.1F, false), "elderberry"); registerItem(healingPoultice = new ItemRootsFood(0, 0F, false).setAlwaysEdible().setMaxStackSize(8), "healingpoultice"); - registerItem(rootyStew = new ItemBowlFood(7, 5.0F), "rootystew");//7 means 3.5 nuggets (steak gives 4) 1 is saturation - registerItem(fruitSalad = new ItemBowlFood(8, 14.0F), "fruitsalad"); + float cookedBeefSat = 0.8F; + registerItem(rootyStew = new ItemBowlFood(7, 0.2F + cookedBeefSat), "rootystew");//7 means 3.5 nuggets (steak gives 4) 1 is saturation + registerItem(fruitSalad = new ItemBowlFood(8, 0.1F + cookedBeefSat), "fruitsalad"); registerItem(runicFocus = new ItemRunicFocus(), "runicfocus"); registerItem(engravedSword = new ItemEngravedSword(), "engravedsword"); registerItem(manaResearchIcon = new ItemRootsBasic(), "manaresearchicon"); + Item apple; /** * REGISTERING BLOCKS */ diff --git a/src/main/java/elucent/rootsclassic/block/brazier/TileEntityBrazier.java b/src/main/java/elucent/rootsclassic/block/brazier/TileEntityBrazier.java index 5078a629..864f216b 100644 --- a/src/main/java/elucent/rootsclassic/block/brazier/TileEntityBrazier.java +++ b/src/main/java/elucent/rootsclassic/block/brazier/TileEntityBrazier.java @@ -96,7 +96,6 @@ else if (isBurning()) { if (player.isSneaking()) { Roots.statusMessage(player, "brazier.burning.off"); stopBurning(); - // heldItem = ItemStack.EMPTY; notifyUpdate(state); return true; } diff --git a/src/main/java/elucent/rootsclassic/compat/RitualZen.java b/src/main/java/elucent/rootsclassic/compat/RitualZen.java index 03f47236..8583e282 100644 --- a/src/main/java/elucent/rootsclassic/compat/RitualZen.java +++ b/src/main/java/elucent/rootsclassic/compat/RitualZen.java @@ -27,6 +27,27 @@ public static void addCraftingRitual(String uniqueName, IItemStack output, int l RitualManager.addRitual(newCraft); } + @Optional.Method(modid = "crafttweaker") + @ZenMethod + public static void setPrimaryColor(String name, double r, double g, double b) { + RitualBase found = findRitualByName(name); + found.setPrimaryColor(r, g, b); + } + + @Optional.Method(modid = "crafttweaker") + @ZenMethod + public static void setSecondaryColor(String name, double r, double g, double b) { + RitualBase found = findRitualByName(name); + found.setSecondaryColor(r, g, b); + } + + @Optional.Method(modid = "crafttweaker") + @ZenMethod + public static void setLevel(String name, int level) { + RitualBase found = findRitualByName(name); + found.setLevel(level); + } + /** * Invalid ritual, names must be one of: staffCrafting,sylvanHoodCrafting,sylvanChestCrafting,sylvanLegsCrafting,sylvanBootsCrafting, * wildwoodHeadCrafting,wildwoodChestCrafting,wildwoodLegsCrafting,wildwoodBootsCrafting, acceleratorStoneCrafting,standingStone,entanglerStoneCrafting,growerStoneCrafting, @@ -37,24 +58,21 @@ public static void addCraftingRitual(String uniqueName, IItemStack output, int l @Optional.Method(modid = "crafttweaker") @ZenMethod public static void setRitualIngredients(String name, IItemStack items[]) { - // - RitualBase found = RitualManager.getRitualFromName(name); - if (found == null) { - String names = ""; - for (RitualBase c : RitualManager.rituals) { - names += c.getName() + ","; - } - Roots.logger.info(names); - throw new IllegalArgumentException("Invalid ritual[" + name + "], names must be one of: " + names); - } + RitualBase found = findRitualByName(name); Roots.logger.info("[ZenScript:Ritual] changing ingredients " + found.getName()); found.setIngredients(Arrays.asList(SpellZen.toStacks(items))); } + @Optional.Method(modid = "crafttweaker") @ZenMethod public static void setRitualIncense(String name, IItemStack[] items) { - // + RitualBase found = findRitualByName(name); + Roots.logger.info("[ZenScript:Ritual] changing incense " + found.getName()); + found.setIncenses(Arrays.asList(SpellZen.toStacks(items))); + } + + private static RitualBase findRitualByName(String name) { RitualBase found = RitualManager.getRitualFromName(name); if (found == null) { String names = ""; @@ -64,8 +82,7 @@ public static void setRitualIncense(String name, IItemStack[] items) { Roots.logger.info(names); throw new IllegalArgumentException("Invalid ritual[" + name + "], names must be one of: " + names); } - - Roots.logger.info("[ZenScript:Ritual] changing incense " + found.getName()); - found.setIncenses(Arrays.asList(SpellZen.toStacks(items))); + return found; } + } diff --git a/src/main/java/elucent/rootsclassic/item/ItemDruidRobes.java b/src/main/java/elucent/rootsclassic/item/ItemDruidRobes.java index 8e7a64d1..87a58c00 100644 --- a/src/main/java/elucent/rootsclassic/item/ItemDruidRobes.java +++ b/src/main/java/elucent/rootsclassic/item/ItemDruidRobes.java @@ -4,6 +4,7 @@ import java.util.Random; import elucent.rootsclassic.Const; import elucent.rootsclassic.RegistryManager; +import elucent.rootsclassic.Util; import elucent.rootsclassic.capability.RootsCapabilityManager; import elucent.rootsclassic.model.ModelDruidRobes; import net.minecraft.client.model.ModelBiped; @@ -41,9 +42,7 @@ public ModelBiped getArmorModel(EntityLivingBase living, ItemStack stack, Entity @Override public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { - if (stack.isItemDamaged() && rnd.nextInt(80) == 0) { - stack.setItemDamage(stack.getItemDamage() - 1); - } + Util.randomlyRepair(world.rand, stack); if (rnd.nextInt(40) == 0) { if (player.hasCapability(RootsCapabilityManager.manaCapability, null)) { player.getCapability(RootsCapabilityManager.manaCapability, null).setMana(player.getCapability(RootsCapabilityManager.manaCapability, null).getMana() + 1.0f); diff --git a/src/main/java/elucent/rootsclassic/ritual/RitualBase.java b/src/main/java/elucent/rootsclassic/ritual/RitualBase.java index dac83f0a..48e9219a 100644 --- a/src/main/java/elucent/rootsclassic/ritual/RitualBase.java +++ b/src/main/java/elucent/rootsclassic/ritual/RitualBase.java @@ -30,45 +30,39 @@ public RitualBase(String parName, int level, double r, double g, double b) { throw new IllegalArgumentException("No duplicate names for rituals"); } this.name = parName; - setPrimaryColor(new Vec3d(r, g, b)); - setSecondaryColor(new Vec3d(r, g, b)); + setPrimaryColor(r, g, b); + setSecondaryColor(r, g, b); setLevel(level); - } - private void setLevel(int level) { + public void setLevel(int level) { + if (level < 0 || level > 2) { + throw new IllegalArgumentException("Level must be 0, 1 or 2"); + } + this.blocks = new ArrayList(); this.level = level; - if (level == 0) { - // no pillars needed EX RitualCauseRain + //level 0 has no stones + if (level == 1 || level == 2) { + //the first circle of tier 1 stones + this.addRitualPillar(RegistryManager.standingStoneT1, -3, 0, -3); + this.addRitualPillar(RegistryManager.standingStoneT1, -3, 0, 3); + this.addRitualPillar(RegistryManager.standingStoneT1, 3, 0, -3); + this.addRitualPillar(RegistryManager.standingStoneT1, 3, 0, 3); + this.addRitualPillar(RegistryManager.standingStoneT1, 3, 0, 0); + this.addRitualPillar(RegistryManager.standingStoneT1, -3, 0, 0); + this.addRitualPillar(RegistryManager.standingStoneT1, 0, 0, 3); + this.addRitualPillar(RegistryManager.standingStoneT1, 0, 0, -3); } else if (level == 2) { - this.addBlock(RegistryManager.standingStoneT1, -3, 0, -3); - this.addBlock(RegistryManager.standingStoneT1, -3, 0, 3); - this.addBlock(RegistryManager.standingStoneT1, 3, 0, -3); - this.addBlock(RegistryManager.standingStoneT1, 3, 0, 3); - this.addBlock(RegistryManager.standingStoneT1, 3, 0, 0); - this.addBlock(RegistryManager.standingStoneT1, -3, 0, 0); - this.addBlock(RegistryManager.standingStoneT1, 0, 0, 3); - this.addBlock(RegistryManager.standingStoneT1, 0, 0, -3); - this.addBlock(RegistryManager.standingStoneT2, 5, 1, 0); - this.addBlock(RegistryManager.standingStoneT2, -5, 1, 0); - this.addBlock(RegistryManager.standingStoneT2, 0, 1, 5); - this.addBlock(RegistryManager.standingStoneT2, 0, 1, -5); + //the outer tier 2 stones + this.addRitualPillar(RegistryManager.standingStoneT2, 5, 1, 0); + this.addRitualPillar(RegistryManager.standingStoneT2, -5, 1, 0); + this.addRitualPillar(RegistryManager.standingStoneT2, 0, 1, 5); + this.addRitualPillar(RegistryManager.standingStoneT2, 0, 1, -5); } - else if (level == 1) { - this.addBlock(RegistryManager.standingStoneT1, -3, 0, -3); - this.addBlock(RegistryManager.standingStoneT1, -3, 0, 3); - this.addBlock(RegistryManager.standingStoneT1, 3, 0, -3); - this.addBlock(RegistryManager.standingStoneT1, 3, 0, 3); - this.addBlock(RegistryManager.standingStoneT1, 3, 0, 0); - this.addBlock(RegistryManager.standingStoneT1, -3, 0, 0); - this.addBlock(RegistryManager.standingStoneT1, 0, 0, 3); - this.addBlock(RegistryManager.standingStoneT1, 0, 0, -3); - } - else throw new IllegalArgumentException("Level must be 0, 1 or 2"); } - public RitualBase addBlock(Block b, int x, int y, int z) { + public RitualBase addRitualPillar(Block b, int x, int y, int z) { getBlocks().add(b); getPositionsRelative().add(new BlockPos(x, y, z)); return this; @@ -155,7 +149,8 @@ public List getIngredients() { return ingredients; } - public void setIngredients(List ingredients) { + public void setIngredients(List ingredients) + throws IllegalArgumentException { if (ingredients.size() == 0 || ingredients.size() > 3) { throw new IllegalArgumentException("Invalid ritual ingredients, must be in range [1,3]"); } @@ -166,7 +161,8 @@ public List getIncenses() { return incenses; } - public void setIncenses(List incenses) { + public void setIncenses(List incenses) + throws IllegalArgumentException { if (incenses.size() == 0 || incenses.size() > 4) { throw new IllegalArgumentException("Invalid ritual incense, must be in range [1,4]"); } @@ -193,22 +189,29 @@ public Vec3d getColor() { return color; } - public void setPrimaryColor(Vec3d color) { - this.color = color; + public void setPrimaryColor(double r, double g, double b) { + this.color = buildColor(r, g, b); } public Vec3d getSecondaryColor() { return secondaryColor; } - public RitualBase setSecondaryColor(Vec3d secondaryColor) { - this.secondaryColor = secondaryColor; + public RitualBase setSecondaryColor(double r, double g, double b) { + this.secondaryColor = buildColor(r, g, b); return this; } + private Vec3d buildColor(double r, double g, double b) throws IllegalArgumentException { + if (r < 0 || r > 255 || + g < 0 || g > 255 || + b < 0 || b > 255) { + throw new IllegalArgumentException("Invalid colour value use [0, 255]"); + } + return new Vec3d(r, g, b); + } + public String getName() { return name; } - - } diff --git a/src/main/java/elucent/rootsclassic/ritual/RitualManager.java b/src/main/java/elucent/rootsclassic/ritual/RitualManager.java index 57260a02..f71e2209 100644 --- a/src/main/java/elucent/rootsclassic/ritual/RitualManager.java +++ b/src/main/java/elucent/rootsclassic/ritual/RitualManager.java @@ -33,7 +33,6 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; public class RitualManager { @@ -75,14 +74,14 @@ public static void addRitual(RitualBase ritual) throws IllegalArgumentException public static void init() { addRitual(new RitualCrafting("staffCrafting", 2, 205, 86, 0) .setResult(new ItemStack(RegistryManager.crystalStaff, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) + .addRitualPillar(RegistryManager.standingStoneT1, -3, 0, -3) + .addRitualPillar(RegistryManager.standingStoneT1, -3, 0, 3) + .addRitualPillar(RegistryManager.standingStoneT1, 3, 0, -3) + .addRitualPillar(RegistryManager.standingStoneT1, 3, 0, 3) + .addRitualPillar(RegistryManager.standingStoneT1, 3, 0, 0) + .addRitualPillar(RegistryManager.standingStoneT1, -3, 0, 0) + .addRitualPillar(RegistryManager.standingStoneT1, 0, 0, 3) + .addRitualPillar(RegistryManager.standingStoneT1, 0, 0, -3) .addIncense(new ItemStack(Blocks.COAL_BLOCK, 1)) .addIncense(new ItemStack(RegistryManager.acaciaTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.verdantSprig, 1)) @@ -92,18 +91,18 @@ public static void init() { .addIngredient(new ItemStack(Items.BLAZE_POWDER, 1))); addRitual(new RitualCrafting("sylvanHoodCrafting", 2, 62, 138, 62) .setResult(new ItemStack(RegistryManager.druidRobesHead, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) + .addRitualPillar(RegistryManager.standingStoneT1, -3, 0, -3) + .addRitualPillar(RegistryManager.standingStoneT1, -3, 0, 3) + .addRitualPillar(RegistryManager.standingStoneT1, 3, 0, -3) + .addRitualPillar(RegistryManager.standingStoneT1, 3, 0, 3) + .addRitualPillar(RegistryManager.standingStoneT1, 3, 0, 0) + .addRitualPillar(RegistryManager.standingStoneT1, -3, 0, 0) + .addRitualPillar(RegistryManager.standingStoneT1, 0, 0, 3) + .addRitualPillar(RegistryManager.standingStoneT1, 0, 0, -3) + .addRitualPillar(RegistryManager.standingStoneT2, 5, 1, 0) + .addRitualPillar(RegistryManager.standingStoneT2, -5, 1, 0) + .addRitualPillar(RegistryManager.standingStoneT2, 0, 1, 5) + .addRitualPillar(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.birchTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.birchTreeBark, 1)) .addIncense(new ItemStack(Items.GOLDEN_APPLE, 1)) @@ -113,18 +112,18 @@ public static void init() { .addIngredient(new ItemStack(Blocks.VINE, 1))); addRitual(new RitualCrafting("sylvanChestCrafting", 2, 62, 138, 62) .setResult(new ItemStack(RegistryManager.druidRobesChest, 1)) - .addBlock(RegistryManager.standingStoneT1, -3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, -3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, -3, 0, 0) - .addBlock(RegistryManager.standingStoneT1, 0, 0, 3) - .addBlock(RegistryManager.standingStoneT1, 0, 0, -3) - .addBlock(RegistryManager.standingStoneT2, 5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, -5, 1, 0) - .addBlock(RegistryManager.standingStoneT2, 0, 1, 5) - .addBlock(RegistryManager.standingStoneT2, 0, 1, -5) + .addRitualPillar(RegistryManager.standingStoneT1, -3, 0, -3) + .addRitualPillar(RegistryManager.standingStoneT1, -3, 0, 3) + .addRitualPillar(RegistryManager.standingStoneT1, 3, 0, -3) + .addRitualPillar(RegistryManager.standingStoneT1, 3, 0, 3) + .addRitualPillar(RegistryManager.standingStoneT1, 3, 0, 0) + .addRitualPillar(RegistryManager.standingStoneT1, -3, 0, 0) + .addRitualPillar(RegistryManager.standingStoneT1, 0, 0, 3) + .addRitualPillar(RegistryManager.standingStoneT1, 0, 0, -3) + .addRitualPillar(RegistryManager.standingStoneT2, 5, 1, 0) + .addRitualPillar(RegistryManager.standingStoneT2, -5, 1, 0) + .addRitualPillar(RegistryManager.standingStoneT2, 0, 1, 5) + .addRitualPillar(RegistryManager.standingStoneT2, 0, 1, -5) .addIncense(new ItemStack(RegistryManager.birchTreeBark, 1)) .addIncense(new ItemStack(RegistryManager.birchTreeBark, 1)) .addIncense(new ItemStack(Items.GOLDEN_APPLE, 1)) @@ -445,7 +444,7 @@ public static void init() { addRitual(new RitualTimeShift("timeshift", 1, 240, 245, 88) .addIngredient(new ItemStack(Items.CLOCK)) .addIngredient(new ItemStack(Items.IRON_INGOT)) - .setSecondaryColor(new Vec3d(252, 162, 35))); + .setSecondaryColor(252, 162, 35)); } public static RitualBase getRitualFromName(String name) { diff --git a/update.json b/update.json index 44eae331..d085a5ae 100644 --- a/update.json +++ b/update.json @@ -11,6 +11,6 @@ ,"1.0.3":"Fixed a startup crash compatibility issue with ERZ. " ,"1.1.0":"Status messages while setting up rituals for ease of use. Ritual ingredients are now unique. If your ritual is invalid, you get status-bar messages to get a better idea of what is missing. When you start a ritual, if all ingredients are valid it will auto-light the braziers for you. Clicking a Ritual Altar recipe page now sends ingredients to chat to match how other recipes do it. Full CraftTweaker (zenscript) support to change items used by all spells and rituals. Item Tooltips added to all items rendered in the Runic Tablet GUI screens. Vanilla crafting recipes are no longer shown in the Runic Tablet; this was changed to stay consistent with Craft Tweaker and JEI. New Fruit salad food item to give berries more uses. " ,"1.1.1":"Fix crash on startup. Duplicate items from zenscript reported to log. " - ,"1.1.2":"Zenscript support added for custom recipe crafting rituals, see the example file. " + ,"1.1.2":"Zenscript support added for custom recipe crafting rituals, see the example files (https://github.com/Lothrazar/RootsClassic/tree/develop/scripts_zen_example). Also more support for customizing exisiting rituals. Updated saturation of food items. " } } \ No newline at end of file From 03c9ced6996b610e313375bf05d907bab41f07fb Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 13 Jan 2019 12:27:50 -0800 Subject: [PATCH 09/12] 1.1.2 #19 regeneration velocity nuked --- .../elucent/rootsclassic/compat/SpellZen.java | 17 +++++++++++------ .../component/components/ComponentPeony.java | 1 - update.json | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/elucent/rootsclassic/compat/SpellZen.java b/src/main/java/elucent/rootsclassic/compat/SpellZen.java index 527feb33..6b24b90b 100644 --- a/src/main/java/elucent/rootsclassic/compat/SpellZen.java +++ b/src/main/java/elucent/rootsclassic/compat/SpellZen.java @@ -24,7 +24,16 @@ public class SpellZen { @Optional.Method(modid = "crafttweaker") @ZenMethod public static void setSpellItems(String name, IItemStack items[]) { - // + + if (items.length == 0 || items.length > 4) { + throw new IllegalArgumentException("Invalid spell ingredients, must be in range [1,4]"); + } + ComponentRecipe found = findSpellByName(name); + Roots.logger.info("[ZenScript:Spell] changing recipe " + found.getLocalizedName()); + found.setMaterials(Arrays.asList(toStacks(items))); + } + + private static ComponentRecipe findSpellByName(String name) { ComponentRecipe found = ComponentManager.getSpellFromName(name); if (found == null) { String names = ""; @@ -34,11 +43,7 @@ public static void setSpellItems(String name, IItemStack items[]) { // Roots.logger.info(names); throw new IllegalArgumentException("Invalid spell [" + name + "], names must be one of: " + names); } - if (items.length == 0 || items.length > 4) { - throw new IllegalArgumentException("Invalid spell ingredients, must be in range [1,4]"); - } - Roots.logger.info("[ZenScript:Spell] changing recipe " + found.getLocalizedName()); - found.setMaterials(Arrays.asList(toStacks(items))); + return found; } /** diff --git a/src/main/java/elucent/rootsclassic/component/components/ComponentPeony.java b/src/main/java/elucent/rootsclassic/component/components/ComponentPeony.java index 0e894dc9..4d78669a 100644 --- a/src/main/java/elucent/rootsclassic/component/components/ComponentPeony.java +++ b/src/main/java/elucent/rootsclassic/component/components/ComponentPeony.java @@ -49,7 +49,6 @@ public void castingAction(EntityPlayer player, int count, int potency, int effic Roots.proxy.spawnParticleMagicAuraFX(world, fX + Util.randomDouble(0.0, 0.5), fY + Util.randomDouble(0.1, 0.5), fZ + Util.randomDouble(0.0, 0.5), (player.posX - fX) * factor, (player.posY - fY) * factor, (player.posZ - fZ) * factor, 138, 42, 235); } }); - player.setVelocity(0, 0, 0); } @Override diff --git a/update.json b/update.json index d085a5ae..867ee1ea 100644 --- a/update.json +++ b/update.json @@ -11,6 +11,6 @@ ,"1.0.3":"Fixed a startup crash compatibility issue with ERZ. " ,"1.1.0":"Status messages while setting up rituals for ease of use. Ritual ingredients are now unique. If your ritual is invalid, you get status-bar messages to get a better idea of what is missing. When you start a ritual, if all ingredients are valid it will auto-light the braziers for you. Clicking a Ritual Altar recipe page now sends ingredients to chat to match how other recipes do it. Full CraftTweaker (zenscript) support to change items used by all spells and rituals. Item Tooltips added to all items rendered in the Runic Tablet GUI screens. Vanilla crafting recipes are no longer shown in the Runic Tablet; this was changed to stay consistent with Craft Tweaker and JEI. New Fruit salad food item to give berries more uses. " ,"1.1.1":"Fix crash on startup. Duplicate items from zenscript reported to log. " - ,"1.1.2":"Zenscript support added for custom recipe crafting rituals, see the example files (https://github.com/Lothrazar/RootsClassic/tree/develop/scripts_zen_example). Also more support for customizing exisiting rituals. Updated saturation of food items. " + ,"1.1.2":"Zenscript support added for custom recipe crafting rituals, see the example files (https://github.com/Lothrazar/RootsClassic/tree/develop/scripts_zen_example). Also more support for customizing exisiting rituals. Updated saturation of food items. Regeneration spell no longer tries to set player movement to zero (also fixes server issue). " } } \ No newline at end of file From 55d0ba7d7119c69463946d88bb09c800a6c46de9 Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 13 Jan 2019 12:45:38 -0800 Subject: [PATCH 10/12] 1.1.2 src format --- .../java/elucent/rootsclassic/RegistryManager.java | 1 - src/main/java/elucent/rootsclassic/Util.java | 1 - .../rootsclassic/block/altar/TileEntityAltar.java | 11 +++-------- .../rootsclassic/block/brazier/TileEntityBrazier.java | 4 ---- .../rootsclassic/block/mortar/TileEntityMortar.java | 1 - .../java/elucent/rootsclassic/compat/RitualZen.java | 3 --- .../java/elucent/rootsclassic/compat/SpellZen.java | 1 - .../rootsclassic/component/ComponentRecipe.java | 1 - .../java/elucent/rootsclassic/gui/GuiTabletPage.java | 9 --------- .../rootsclassic/ritual/rituals/RitualCrafting.java | 2 +- .../rootsclassic/ritual/rituals/RitualSacrifice.java | 1 - .../tileentity/TileEntityStandingStoneEntangler.java | 1 - 12 files changed, 4 insertions(+), 32 deletions(-) diff --git a/src/main/java/elucent/rootsclassic/RegistryManager.java b/src/main/java/elucent/rootsclassic/RegistryManager.java index 01554ebc..f06c89a7 100644 --- a/src/main/java/elucent/rootsclassic/RegistryManager.java +++ b/src/main/java/elucent/rootsclassic/RegistryManager.java @@ -210,7 +210,6 @@ public static void init() { registerItem(jungleTreeBark = new ItemRootsBasic(), "jungletreebark"); registerItem(acaciaTreeBark = new ItemRootsBasic(), "acaciatreebark"); registerItem(darkOakTreeBark = new ItemRootsBasic(), "darkoaktreebark"); - registerItem(livingPickaxe = new ItemLivingPickaxe(), "livingpickaxe"); registerItem(livingAxe = new ItemLivingAxe(), "livingaxe"); registerItem(livingSword = new ItemLivingSword(), "livingsword"); diff --git a/src/main/java/elucent/rootsclassic/Util.java b/src/main/java/elucent/rootsclassic/Util.java index 24aaf6c2..41591c35 100644 --- a/src/main/java/elucent/rootsclassic/Util.java +++ b/src/main/java/elucent/rootsclassic/Util.java @@ -19,7 +19,6 @@ public class Util { public static Random random = new Random(); public static ArrayList berries = new ArrayList(); - public static double randomDouble(double min, double max) { double range = max - min; double scale = random.nextDouble() * range; diff --git a/src/main/java/elucent/rootsclassic/block/altar/TileEntityAltar.java b/src/main/java/elucent/rootsclassic/block/altar/TileEntityAltar.java index a4d60d04..4493a7dc 100644 --- a/src/main/java/elucent/rootsclassic/block/altar/TileEntityAltar.java +++ b/src/main/java/elucent/rootsclassic/block/altar/TileEntityAltar.java @@ -69,7 +69,7 @@ public NBTTagCompound writeToNBT(NBTTagCompound tag) { NBTTagList list = new NBTTagList(); for (int i = 0; i < getInventory().size(); i++) { // if (getInventory().get(i) != null) { - list.appendTag(getInventory().get(i).writeToNBT(new NBTTagCompound())); + list.appendTag(getInventory().get(i).writeToNBT(new NBTTagCompound())); // } } tag.setTag("inventory", list); @@ -79,7 +79,7 @@ public NBTTagCompound writeToNBT(NBTTagCompound tag) { for (int i = 0; i < getIncenses().size(); i++) { // ; // if (getIncenses().get(i) != null) { - list.appendTag(getIncenses().get(i).writeToNBT(new NBTTagCompound())); + list.appendTag(getIncenses().get(i).writeToNBT(new NBTTagCompound())); // } } tag.setTag("incenses", list); @@ -136,13 +136,12 @@ else if (player.isSneaking() && heldItem.isEmpty() && this.getProgress() == 0) { setRitualName(ritual.getName()); Roots.logger.info("found " + ritual.getName()); setIncenses(RitualManager.getIncenses(world, getPos())); - setProgress(RECIPE_PROGRESS_TIME); for (TileEntityBrazier brazier : ritual.getRecipeBraziers(world, pos)) { brazier.setBurning(true); brazier.setHeldItem(ItemStack.EMPTY); } -// this.emptyNearbyBraziers(); + // this.emptyNearbyBraziers(); // System.out.println(" ritual STARTED " + ritual.name); markDirty(); this.getWorld().notifyBlockUpdate(getPos(), state, world.getBlockState(pos), 3); @@ -238,12 +237,9 @@ public void update() { // } if (getProgress() == 0 && getRitualCurrent() != null) { Roots.logger.info("RITUAL has completed " + getRitualCurrent().getName()); - getRitualCurrent().doEffect(getWorld(), getPos(), getInventory(), getIncenses()); - setRitualName(null); setRitualCurrent(null); - markDirty(); this.getWorld().notifyBlockUpdate(getPos(), getWorld().getBlockState(getPos()), getWorld().getBlockState(getPos()), 3); } @@ -256,7 +252,6 @@ public void update() { // brazier.setBurning(false); // } // } - public ArrayList getInventory() { return inventory; } diff --git a/src/main/java/elucent/rootsclassic/block/brazier/TileEntityBrazier.java b/src/main/java/elucent/rootsclassic/block/brazier/TileEntityBrazier.java index 864f216b..1fce8b78 100644 --- a/src/main/java/elucent/rootsclassic/block/brazier/TileEntityBrazier.java +++ b/src/main/java/elucent/rootsclassic/block/brazier/TileEntityBrazier.java @@ -79,13 +79,11 @@ private void notifyUpdate(IBlockState state) { @Override public boolean activate(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack playerItem, EnumFacing side, float hitX, float hitY, float hitZ) { if (playerItem.isEmpty()) { - if (!getHeldItem().isEmpty() && !isBurning()) { if (player.isSneaking()) { Roots.statusMessage(player, getHeldItem().getDisplayName()); } else { - dropContaining(state); notifyUpdate(state); Roots.statusMessage(player, "brazier.burning.empty"); @@ -100,13 +98,11 @@ else if (isBurning()) { return true; } } - } else if (playerItem.getItem() == Items.FLINT_AND_STEEL) { if (!getHeldItem().isEmpty()) { startBurning(); Roots.statusMessage(player, "brazier.burning.on"); - notifyUpdate(state); return true; } diff --git a/src/main/java/elucent/rootsclassic/block/mortar/TileEntityMortar.java b/src/main/java/elucent/rootsclassic/block/mortar/TileEntityMortar.java index 407333d5..5da6a1a6 100644 --- a/src/main/java/elucent/rootsclassic/block/mortar/TileEntityMortar.java +++ b/src/main/java/elucent/rootsclassic/block/mortar/TileEntityMortar.java @@ -135,7 +135,6 @@ private boolean tryActivateRecipe(IBlockState state) { ComponentRecipe recipe = ComponentManager.getRecipe(inventory); if (recipe != null && !recipe.isDisabled() && this.inventory.size() > 3 && ComponentRecipe.getModifierCapacity(inventory) != -1) { - if (!world.isRemote) { world.spawnEntity(new EntityItem(world, getPos().getX() + 0.5, getPos().getY() + 0.5, getPos().getZ() + 0.5, recipe.getRecipeResult(inventory))); } diff --git a/src/main/java/elucent/rootsclassic/compat/RitualZen.java b/src/main/java/elucent/rootsclassic/compat/RitualZen.java index 8583e282..5ff964b6 100644 --- a/src/main/java/elucent/rootsclassic/compat/RitualZen.java +++ b/src/main/java/elucent/rootsclassic/compat/RitualZen.java @@ -19,7 +19,6 @@ public class RitualZen { @ZenMethod public static void addCraftingRitual(String uniqueName, IItemStack output, int level, double r, double g, double b, IItemStack incenses[], IItemStack ingredients[]) { - RitualCrafting newCraft = new RitualCrafting(uniqueName, level, r, g, b); newCraft.setResult(SpellZen.toStack(output)); newCraft.setIngredients(Arrays.asList(SpellZen.toStacks(ingredients))); @@ -63,7 +62,6 @@ public static void setRitualIngredients(String name, IItemStack items[]) { found.setIngredients(Arrays.asList(SpellZen.toStacks(items))); } - @Optional.Method(modid = "crafttweaker") @ZenMethod public static void setRitualIncense(String name, IItemStack[] items) { @@ -84,5 +82,4 @@ private static RitualBase findRitualByName(String name) { } return found; } - } diff --git a/src/main/java/elucent/rootsclassic/compat/SpellZen.java b/src/main/java/elucent/rootsclassic/compat/SpellZen.java index 6b24b90b..caa1f455 100644 --- a/src/main/java/elucent/rootsclassic/compat/SpellZen.java +++ b/src/main/java/elucent/rootsclassic/compat/SpellZen.java @@ -24,7 +24,6 @@ public class SpellZen { @Optional.Method(modid = "crafttweaker") @ZenMethod public static void setSpellItems(String name, IItemStack items[]) { - if (items.length == 0 || items.length > 4) { throw new IllegalArgumentException("Invalid spell ingredients, must be in range [1,4]"); } diff --git a/src/main/java/elucent/rootsclassic/component/ComponentRecipe.java b/src/main/java/elucent/rootsclassic/component/ComponentRecipe.java index ddacb2c5..3b1b3991 100644 --- a/src/main/java/elucent/rootsclassic/component/ComponentRecipe.java +++ b/src/main/java/elucent/rootsclassic/component/ComponentRecipe.java @@ -100,7 +100,6 @@ public boolean matches(List items) { return tempItems.size() == 0; } - public String getEffectResult() { return effectResult; } diff --git a/src/main/java/elucent/rootsclassic/gui/GuiTabletPage.java b/src/main/java/elucent/rootsclassic/gui/GuiTabletPage.java index 4ae4c102..f37e042c 100644 --- a/src/main/java/elucent/rootsclassic/gui/GuiTabletPage.java +++ b/src/main/java/elucent/rootsclassic/gui/GuiTabletPage.java @@ -157,14 +157,11 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) { textLines.add(new GuiTextInstance(info.get(i), basePosX + 16, basePosY + 32 + i * 11)); } break; - case TYPE_SMELTING: Minecraft.getMinecraft().getTextureManager().bindTexture(Const.tabletSmelting); this.drawTexturedModalRect(basePosX, basePosY, 0, 0, 192, 256); - slots.add(new GuiSlotInstance(page.smeltingRecipe.get(0), (int) basePosX + 56, (int) basePosY + 40)); slots.add(new GuiSlotInstance(page.smeltingRecipe.get(1), (int) basePosX + 144, (int) basePosY + 56)); - info = page.makeLines(makeInfo()); for (int i = 0; i < info.size(); i++) { textLines.add(new GuiTextInstance(info.get(i), basePosX + 16, basePosY + 104 + i * 11, Util.intColor(255, 255, 255))); @@ -175,15 +172,12 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) { case TYPE_DISPLAY: Minecraft.getMinecraft().getTextureManager().bindTexture(Const.tabletDisplay); this.drawTexturedModalRect(basePosX, basePosY, 0, 0, 192, 256); - slots.add(new GuiSlotInstance(page.displayItem, (int) basePosX + 88, (int) basePosY + 48)); - info = page.makeLines(makeInfo()); for (int i = 0; i < info.size(); i++) { textLines.add(new GuiTextInstance(info.get(i), basePosX + 16, basePosY + 80 + i * 11, Util.intColor(255, 255, 255))); } title = makeTitle(); - textLines.add(new GuiTextInstance(title, basePosX + 96 - (this.fontRenderer.getStringWidth(title) / 2.0f), basePosY + 12, Util.intColor(255, 255, 255))); break; case TYPE_ALTAR: @@ -216,7 +210,6 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) { for (int i = 0; i < page.altarRecipe.getIncenses().size(); i++) { slots.add(new GuiSlotInstance(page.altarRecipe.getIncenses().get(i), (int) basePosX + 76 + 16 * i, (int) basePosY + 88)); } - title = makeTitle(); textLines.add(new GuiTextInstance(title, basePosX + 96 - (this.fontRenderer.getStringWidth(title) / 2.0f), basePosY + 12, Util.intColor(255, 255, 255))); break; @@ -226,7 +219,6 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) { for (int i = 0; i < page.mortarRecipe.getMaterials().size(); i++) { slots.add(new GuiSlotInstance(page.mortarRecipe.getMaterials().get(i), (int) basePosX + 24 + i * 16, (int) basePosY + 56)); } - slots.add(new GuiSlotInstance(page.mortarRecipe.getRecipeResult(new ArrayList()), (int) basePosX + 144, (int) basePosY + 56)); info = page.makeLines(makeInfo()); for (int i = 0; i < info.size(); i++) { @@ -249,7 +241,6 @@ public void drawScreen(int mouseX, int mouseY, float partialTicks) { else fontRenderer.drawString(line.getLine(), (int) line.getX(), (int) line.getY(), line.getColor()); } - //TODO: arrows go black on rituals Minecraft.getMinecraft().getTextureManager().bindTexture(Const.tabletGui); if (showLeftArrow) { diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCrafting.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCrafting.java index 91f2303c..66438797 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCrafting.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualCrafting.java @@ -14,12 +14,12 @@ public class RitualCrafting extends RitualBase { public RitualCrafting(String name, int level, double r, double g, double b) { super(name, level, r, g, b); } + public RitualCrafting setResult(ItemStack stack) { this.result = stack; return this; } - @Override public void doEffect(World world, BlockPos pos, List inventory, List incenses) { // if (Util.itemListsMatchWithSize(inventory, this.ingredients)) { diff --git a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSacrifice.java b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSacrifice.java index 87cc3ee8..8a7bdceb 100644 --- a/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSacrifice.java +++ b/src/main/java/elucent/rootsclassic/ritual/rituals/RitualSacrifice.java @@ -42,7 +42,6 @@ public RitualSacrifice(String name, int level, double r, double g, double b) { potentialDrops.add(new ItemStack(Blocks.WATERLILY, 1)); } - @Override public void doEffect(World world, BlockPos pos, List inventory, List incenses) { inventory.clear(); diff --git a/src/main/java/elucent/rootsclassic/tileentity/TileEntityStandingStoneEntangler.java b/src/main/java/elucent/rootsclassic/tileentity/TileEntityStandingStoneEntangler.java index cfc15042..16a1fbda 100644 --- a/src/main/java/elucent/rootsclassic/tileentity/TileEntityStandingStoneEntangler.java +++ b/src/main/java/elucent/rootsclassic/tileentity/TileEntityStandingStoneEntangler.java @@ -43,7 +43,6 @@ public void update() { } if (ticker % 20 == 0) { List nearbyCreatures = this.getWorld().getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(pos.getX() - RADIUS, pos.getY() - RADIUS, pos.getZ() - RADIUS, pos.getX() + RADIUS, pos.getY() + RADIUS, pos.getZ() + RADIUS)); - if (nearbyCreatures.size() > 0) { for (int i = 0; i < nearbyCreatures.size(); i++) { nearbyCreatures.get(i).addPotionEffect(new PotionEffect(Potion.getPotionFromResourceLocation("slowness"), 25, 1)); From 3471b13c5116a0be60b5ca5ab08b3d2115ad6f41 Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 13 Jan 2019 15:39:49 -0800 Subject: [PATCH 11/12] 1.1.2 changelog typo --- update.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update.json b/update.json index 867ee1ea..fb06d2bc 100644 --- a/update.json +++ b/update.json @@ -11,6 +11,6 @@ ,"1.0.3":"Fixed a startup crash compatibility issue with ERZ. " ,"1.1.0":"Status messages while setting up rituals for ease of use. Ritual ingredients are now unique. If your ritual is invalid, you get status-bar messages to get a better idea of what is missing. When you start a ritual, if all ingredients are valid it will auto-light the braziers for you. Clicking a Ritual Altar recipe page now sends ingredients to chat to match how other recipes do it. Full CraftTweaker (zenscript) support to change items used by all spells and rituals. Item Tooltips added to all items rendered in the Runic Tablet GUI screens. Vanilla crafting recipes are no longer shown in the Runic Tablet; this was changed to stay consistent with Craft Tweaker and JEI. New Fruit salad food item to give berries more uses. " ,"1.1.1":"Fix crash on startup. Duplicate items from zenscript reported to log. " - ,"1.1.2":"Zenscript support added for custom recipe crafting rituals, see the example files (https://github.com/Lothrazar/RootsClassic/tree/develop/scripts_zen_example). Also more support for customizing exisiting rituals. Updated saturation of food items. Regeneration spell no longer tries to set player movement to zero (also fixes server issue). " + ,"1.1.2":"Zenscript support added for custom recipe crafting rituals, see the example files (https://github.com/Lothrazar/RootsClassic/tree/develop/scripts_zen_example). Also more support for customizing existing rituals. Updated saturation of food items. Regeneration spell no longer tries to set player movement to zero (also fixes server issue). " } } \ No newline at end of file From 1347e89448cd265dc9bb1f7ef85bd41189870885 Mon Sep 17 00:00:00 2001 From: sam Date: Sun, 13 Jan 2019 16:35:26 -0800 Subject: [PATCH 12/12] ex scripts --- scripts_zen_example/rituals.zs | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/scripts_zen_example/rituals.zs b/scripts_zen_example/rituals.zs index dd02b98c..26aa8b03 100644 --- a/scripts_zen_example/rituals.zs +++ b/scripts_zen_example/rituals.zs @@ -4,23 +4,35 @@ import mods.rootsclassic.Ritual; Ritual.setRitualIngredients("livingSwordCrafting", [,]); Ritual.setRitualIncense("livingSwordCrafting", [,]); -//crafting rituals //unique name, recipe output, level // r,g,b colours // incense list, ingredient list //level zero means no standing stones, only Altar+Brazier Ritual.addCraftingRitual("simple", , 0, - 51,51,255, - [,], [,]); + 51,51,255, + [,], [,] ); //level 1 means the Ritual.addCraftingRitual("test1", , 1, - 255,255,0, - [,], [,, ]); + 255,255,0, + [,], [,, ] ); //level 2 is the biggest ritual with the Attuned stones Ritual.addCraftingRitual("test2", , 2, - 255,0,0, - [,], [,, ]); + 255,0,0, + [,], [,, ] ); + + // other examples + Ritual.setPrimaryColor("test2",255,0,0); + Ritual.setSecondaryColor("igniterStoneCrafting",255,0,100); + + //change level for the standing stone requirements + Ritual.setLevel("igniterStoneCrafting",0); + + + + + + \ No newline at end of file