Added in Unbinding Ritual recipes (UnbindingRegistry.registerRecipe(outputItemStack, inputItemStack)) and automatic reversion of registered Binding Recipes. Renamed Binding Ritual class, updated ritual blacklist. Blood Magic, now with 8% more lightning!
This commit is contained in:
parent
1eefcda6ca
commit
9247e66f13
|
@ -11,6 +11,7 @@ import java.util.List;
|
|||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipInputStream;
|
||||
|
||||
import WayofTime.alchemicalWizardry.api.bindingRegistry.UnbindingRegistry;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
|
@ -166,7 +167,7 @@ import WayofTime.alchemicalWizardry.common.rituals.RitualEffectLifeConduit;
|
|||
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectMagnetic;
|
||||
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectOmegaStalling;
|
||||
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectOmegaTest;
|
||||
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSoulBound;
|
||||
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectBinding;
|
||||
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSpawnWard;
|
||||
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSphereCreator;
|
||||
import WayofTime.alchemicalWizardry.common.rituals.RitualEffectSummonMeteor;
|
||||
|
@ -376,6 +377,13 @@ public class AlchemicalWizardry
|
|||
public static boolean ritualDisabledSpawnWard;
|
||||
public static boolean ritualDisabledVeilOfEvil;
|
||||
public static boolean ritualDisabledFullStomach;
|
||||
public static boolean ritualDisabledConvocation;
|
||||
public static boolean ritualDisabledSymmetry;
|
||||
public static boolean ritualDisabledStalling;
|
||||
public static boolean ritualDisabledCrafting;
|
||||
public static boolean ritualDisabledPhantomHands;
|
||||
public static boolean ritualDisabledSphereIsland;
|
||||
|
||||
|
||||
public static boolean isThaumcraftLoaded;
|
||||
public static boolean isForestryLoaded;
|
||||
|
@ -1391,7 +1399,7 @@ public class AlchemicalWizardry
|
|||
Rituals.registerRitual("AW003GreenGrove", 1, 1000, new RitualEffectGrowth(), "Ritual of the Green Grove", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/AlchemyArrays/GreenGroveArray.png"), 244, 164, 96, 255, 0, 1.0, 1.6, 0, 1.5, false));
|
||||
Rituals.registerRitual("AW004Interdiction", 1, 1000, new RitualEffectInterdiction(), "Interdiction Ritual", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/AlchemyArrays/InterdictionArray.png"), 27, 227, 206, 255, 0, 0.501, 0.8, 0, 1.5, false));
|
||||
Rituals.registerRitual("AW005Containment", 1, 2000, new RitualEffectContainment(), "Ritual of Containment", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/SimpleTransCircle.png"), 186, 21, 21, 255, 0, 2.5, 2.5, 0, 2.5, false));
|
||||
Rituals.registerRitual("AW006Binding", 1, 5000, new RitualEffectSoulBound(), "Ritual of Binding", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/TransCircleBinding.png"), 193, 7, 7, 255, 0, 0.501, 1.0, 0, 2.5, true));
|
||||
Rituals.registerRitual("AW006Binding", 1, 5000, new RitualEffectBinding(), "Ritual of Binding", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/TransCircleBinding.png"), 193, 7, 7, 255, 0, 0.501, 1.0, 0, 2.5, true));
|
||||
Rituals.registerRitual("AW007Unbinding", 1, 30000, new RitualEffectUnbinding(), "Ritual of Unbinding", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/SimpleTransCircle.png"), 193, 7, 7, 255, 0, 0.5, 0.8, 0, 2.5, false));
|
||||
Rituals.registerRitual("AW008HighJump", 1, 1000, new RitualEffectJumping(), "Ritual of the High Jump", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/SimpleTransCircle.png"), 10, 183, 173, 255, 0, 0.501, 1.501, 0, 1.5, false));
|
||||
Rituals.registerRitual("AW009Magnetism", 1, 5000, new RitualEffectMagnetic(), "Ritual of Magnetism", new AlchemyCircleRenderer(new ResourceLocation("alchemicalwizardry:textures/models/AlchemyArrays/MagnetismArray.png"), 126, 39, 0, 255, 0, 0.501, 2.0, 0, 1.5, false));
|
||||
|
@ -1422,7 +1430,7 @@ public class AlchemicalWizardry
|
|||
|
||||
Rituals.registerRitual("AW034Crafting", 1, 15000, new RitualEffectCrafting(), "Rhythm of the Beating Anvil");
|
||||
|
||||
Rituals.registerRitual("AW035", 1, 10000, new RitualEffectItemRouting(), "Orchestra of the Phantom Hands");
|
||||
Rituals.registerRitual("AW035PhantomHands", 1, 10000, new RitualEffectItemRouting(), "Orchestra of the Phantom Hands");
|
||||
|
||||
Rituals.registerRitual("AW036SphereIsland", 2, 10000, new RitualEffectSphereCreator(), "Birth of the Bastion");
|
||||
//Rituals.registerRitual(1,100,new RitualEffectApiaryOverclock(),"Apiary Overclock"));
|
||||
|
@ -1435,6 +1443,9 @@ public class AlchemicalWizardry
|
|||
BindingRegistry.registerRecipe(new ItemStack(ModItems.boundShovel), new ItemStack(Items.diamond_shovel));
|
||||
BindingRegistry.registerRecipe(new ItemStack(ModItems.energySword), new ItemStack(Items.diamond_sword));
|
||||
BindingRegistry.registerRecipe(new ItemStack(ModItems.energyBlaster), new ItemStack(ModItems.apprenticeBloodOrb));
|
||||
BindingRegistry.registerRecipe(new ItemStack(Items.baked_potato), new ItemStack(Items.potato)); // <---Shhhhhh....
|
||||
|
||||
UnbindingRegistry.addAllUnbindingRecipesFromBinding();
|
||||
}
|
||||
|
||||
public static void initHarvestRegistry()
|
||||
|
|
|
@ -10,12 +10,10 @@ import net.minecraft.entity.EntityList;
|
|||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraftforge.common.config.Configuration;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.Rituals;
|
||||
import WayofTime.alchemicalWizardry.api.sacrifice.PlayerSacrificeHandler;
|
||||
import WayofTime.alchemicalWizardry.client.renderer.ColourThreshold;
|
||||
import WayofTime.alchemicalWizardry.client.renderer.RenderHelper;
|
||||
import WayofTime.alchemicalWizardry.common.demonVillage.DemonVillagePath;
|
||||
import WayofTime.alchemicalWizardry.common.demonVillage.tileEntity.TEDemonPortal;
|
||||
import WayofTime.alchemicalWizardry.common.items.ItemIncense;
|
||||
import WayofTime.alchemicalWizardry.common.items.armour.BoundArmour;
|
||||
import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorParadigm;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
|
@ -47,7 +45,6 @@ public class BloodMagicConfiguration
|
|||
colorList.add(new ColourThreshold(Integer.valueOf(ct[0].trim()), ct[1].trim()));
|
||||
}
|
||||
|
||||
|
||||
config = new Configuration(configFile);
|
||||
|
||||
try
|
||||
|
@ -142,6 +139,12 @@ public class BloodMagicConfiguration
|
|||
AlchemicalWizardry.ritualDisabledSpawnWard = config.get("Ritual Blacklist", "Ward of Sacrosanctity", false).getBoolean(false);
|
||||
AlchemicalWizardry.ritualDisabledVeilOfEvil = config.get("Ritual Blacklist", "Veil of Evil", false).getBoolean(false);
|
||||
AlchemicalWizardry.ritualDisabledFullStomach = config.get("Ritual Blacklist", "Requiem of the Satiated Stomach", false).getBoolean(false);
|
||||
AlchemicalWizardry.ritualDisabledConvocation = config.get("Ritual Blacklist", "Convocation of the Damned", false).getBoolean(false);
|
||||
AlchemicalWizardry.ritualDisabledSymmetry = config.get("Ritual Blacklist", "Symmetry of the Omega", false).getBoolean(false);
|
||||
AlchemicalWizardry.ritualDisabledStalling = config.get("Ritual Blacklist", "Duet of the Fused Souls", false).getBoolean(false);
|
||||
AlchemicalWizardry.ritualDisabledCrafting = config.get("Ritual Blacklist", "Rhythm of the Beating Anvil", false).getBoolean(false);
|
||||
AlchemicalWizardry.ritualDisabledPhantomHands = config.get("Ritual Blacklist", "Orchestra of the Phantom Hands", false).getBoolean(false);
|
||||
AlchemicalWizardry.ritualDisabledSphereIsland = config.get("Ritual Blacklist", "Birth of the Bastion", false).getBoolean(false);
|
||||
|
||||
teleposerBlacklist = config.get("Teleposer Blacklist", "Blacklist", blacklist, "Stops specified blocks from being teleposed. Put entries on new lines. Valid syntax is: \nmodid:blockname:meta").getStringList();
|
||||
|
||||
|
@ -372,5 +375,35 @@ public class BloodMagicConfiguration
|
|||
Rituals.ritualMap.remove("AW030FullStomach");
|
||||
Rituals.keyList.remove("AW030FullStomach");
|
||||
}
|
||||
if (AlchemicalWizardry.ritualDisabledConvocation)
|
||||
{
|
||||
Rituals.ritualMap.remove("AW031Convocation");
|
||||
Rituals.keyList.remove("AW031Convocation");
|
||||
}
|
||||
if (AlchemicalWizardry.ritualDisabledSymmetry)
|
||||
{
|
||||
Rituals.ritualMap.remove("AW032Symmetry");
|
||||
Rituals.keyList.remove("AW032Symmetry");
|
||||
}
|
||||
if (AlchemicalWizardry.ritualDisabledStalling)
|
||||
{
|
||||
Rituals.ritualMap.remove("AW033Stalling");
|
||||
Rituals.keyList.remove("AW033Stalling");
|
||||
}
|
||||
if (AlchemicalWizardry.ritualDisabledCrafting)
|
||||
{
|
||||
Rituals.ritualMap.remove("AW034Crafting");
|
||||
Rituals.keyList.remove("AW034Crafting");
|
||||
}
|
||||
if (AlchemicalWizardry.ritualDisabledPhantomHands)
|
||||
{
|
||||
Rituals.ritualMap.remove("AW035PhantomHands");
|
||||
Rituals.keyList.remove("AW035PhantomHands");
|
||||
}
|
||||
if (AlchemicalWizardry.ritualDisabledSphereIsland)
|
||||
{
|
||||
Rituals.ritualMap.remove("AW036SphereIsland");
|
||||
Rituals.keyList.remove("AW036SphereIsland");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
package WayofTime.alchemicalWizardry.api.bindingRegistry;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class UnbindingRecipe
|
||||
{
|
||||
public ItemStack requiredItem;
|
||||
public ItemStack outputItem;
|
||||
|
||||
public UnbindingRecipe(ItemStack outputItem, ItemStack requiredItem)
|
||||
{
|
||||
this.requiredItem = requiredItem;
|
||||
this.outputItem = outputItem;
|
||||
}
|
||||
|
||||
public boolean doesRequiredItemMatch(ItemStack testStack)
|
||||
{
|
||||
if (testStack == null || this.requiredItem == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return this.requiredItem.isItemEqual(testStack);
|
||||
}
|
||||
|
||||
public ItemStack getResult(ItemStack inputItem)
|
||||
{
|
||||
return this.getResult();
|
||||
}
|
||||
|
||||
public ItemStack getResult()
|
||||
{
|
||||
return this.outputItem;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
package WayofTime.alchemicalWizardry.api.bindingRegistry;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
public class UnbindingRegistry
|
||||
{
|
||||
public static List<UnbindingRecipe> unbindingRecipes = new LinkedList();
|
||||
|
||||
public static void addAllUnbindingRecipesFromBinding()
|
||||
{
|
||||
for (BindingRecipe bindingRecipe : BindingRegistry.bindingRecipes)
|
||||
{
|
||||
unbindingRecipes.add(new UnbindingRecipe(bindingRecipe.requiredItem, bindingRecipe.outputItem));
|
||||
}
|
||||
}
|
||||
|
||||
public static void registerRecipe(ItemStack output, ItemStack input)
|
||||
{
|
||||
unbindingRecipes.add(new UnbindingRecipe(output, input));
|
||||
}
|
||||
|
||||
public static boolean isRequiredItemValid(ItemStack testItem)
|
||||
{
|
||||
for (UnbindingRecipe recipe : unbindingRecipes)
|
||||
{
|
||||
if (recipe.doesRequiredItemMatch(testItem))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static int getIndexForItem(ItemStack testItem)
|
||||
{
|
||||
int i = 0;
|
||||
for (UnbindingRecipe recipe : unbindingRecipes)
|
||||
{
|
||||
if (recipe.doesRequiredItemMatch(testItem))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static ItemStack getOutputForIndex(int index)
|
||||
{
|
||||
if (unbindingRecipes.size() <= index)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return unbindingRecipes.get(index).getResult();
|
||||
}
|
||||
}
|
|
@ -19,7 +19,7 @@ import java.util.ArrayList;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
public class RitualEffectSoulBound extends RitualEffect
|
||||
public class RitualEffectBinding extends RitualEffect
|
||||
{
|
||||
@Override
|
||||
public void performEffect(IMasterRitualStone ritualStone)
|
|
@ -3,6 +3,7 @@ package WayofTime.alchemicalWizardry.common.rituals;
|
|||
import WayofTime.alchemicalWizardry.ModBlocks;
|
||||
import WayofTime.alchemicalWizardry.ModItems;
|
||||
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.bindingRegistry.UnbindingRegistry;
|
||||
import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||
|
@ -95,15 +96,15 @@ public class RitualEffectUnbinding extends RitualEffect
|
|||
{
|
||||
ritualStone.setVar1(-1);
|
||||
}
|
||||
else if (UnbindingRegistry.isRequiredItemValid(itemStack))
|
||||
{
|
||||
ritualStone.setVar1(UnbindingRegistry.getIndexForItem(itemStack) + 9);
|
||||
}
|
||||
|
||||
if (ritualStone.getVar1() > 0)
|
||||
if (ritualStone.getVar1() > 0 && ritualStone.getVar1() <= 8)
|
||||
{
|
||||
item.setDead();
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z - 5));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z + 5));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x - 5, y + 1, z));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x + 5, y + 1, z));
|
||||
NBTTagCompound itemTag = itemStack.getTagCompound();
|
||||
doLightning(world, x, y, z);
|
||||
ItemStack[] inv = ((BoundArmour) itemStack.getItem()).getInternalInventory(itemStack);
|
||||
|
||||
if (inv != null)
|
||||
|
@ -112,6 +113,7 @@ public class RitualEffectUnbinding extends RitualEffect
|
|||
{
|
||||
if (internalItem != null)
|
||||
{
|
||||
doLightning(world, x, y, z);
|
||||
EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, internalItem.copy());
|
||||
world.spawnEntityInWorld(newItem);
|
||||
}
|
||||
|
@ -126,11 +128,7 @@ public class RitualEffectUnbinding extends RitualEffect
|
|||
} else if (ritualStone.getVar1() == -1)
|
||||
{
|
||||
item.setDead();
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z - 5));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z + 5));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x - 5, y + 1, z));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x + 5, y + 1, z));
|
||||
NBTTagCompound itemTag = itemStack.getTagCompound();
|
||||
doLightning(world, x, y, z);
|
||||
ItemStack[] inv = ((SigilOfHolding) itemStack.getItem()).getInternalInventory(itemStack);
|
||||
|
||||
if (inv != null)
|
||||
|
@ -151,12 +149,21 @@ public class RitualEffectUnbinding extends RitualEffect
|
|||
drain = true;
|
||||
break;
|
||||
}
|
||||
|
||||
else if (ritualStone.getVar1() >= 9)
|
||||
{
|
||||
item.setDead();
|
||||
doLightning(world, x, y, z);
|
||||
ItemStack spawnedItem = UnbindingRegistry.getOutputForIndex(ritualStone.getVar1() - 9);
|
||||
EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, spawnedItem.copy());
|
||||
world.spawnEntityInWorld(newItem);
|
||||
ritualStone.setActive(false);
|
||||
drain = true;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (drain)
|
||||
{
|
||||
if (drain) {
|
||||
SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh());
|
||||
}
|
||||
}
|
||||
|
@ -167,6 +174,14 @@ public class RitualEffectUnbinding extends RitualEffect
|
|||
}
|
||||
}
|
||||
|
||||
private void doLightning(World world, int x, int y, int z)
|
||||
{
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z - 5));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z + 5));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x - 5, y + 1, z));
|
||||
world.addWeatherEffect(new EntityLightningBolt(world, x + 5, y + 1, z));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCostPerRefresh()
|
||||
{
|
||||
|
|
|
@ -52,7 +52,6 @@ public class ContainerTeleposer extends Container
|
|||
{
|
||||
ItemStack stackInSlot = slotObject.getStack();
|
||||
stack = stackInSlot.copy();
|
||||
System.out.println("Slots: " + slots);
|
||||
|
||||
if (stack.getItem() instanceof TelepositionFocus)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue