From a04c8af5500c95b1754b4d54ad2d31a14b52f69d Mon Sep 17 00:00:00 2001 From: WayofTime Date: Sat, 19 Nov 2016 17:06:11 -0500 Subject: [PATCH] Did some minor bug fixes and updates with some rituals. --- .../WayofTime/bloodmagic/ConfigHandler.java | 2 +- .../bloodmagic/ritual/RitualContainment.java | 2 +- .../bloodmagic/ritual/RitualExpulsion.java | 27 ++++++++++++------- .../bloodmagic/ritual/RitualHarvest.java | 2 +- .../bloodmagic/ritual/RitualInterdiction.java | 11 +++++--- .../bloodmagic/ritual/RitualRegeneration.java | 4 +-- 6 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/ConfigHandler.java b/src/main/java/WayofTime/bloodmagic/ConfigHandler.java index a5a279bc..810ddcae 100644 --- a/src/main/java/WayofTime/bloodmagic/ConfigHandler.java +++ b/src/main/java/WayofTime/bloodmagic/ConfigHandler.java @@ -202,7 +202,7 @@ public class ConfigHandler category = "Blood Altar Sacrificial Values"; config.addCustomCategoryComment(category, "Entity Sacrificial Value Settings"); - entitySacrificeValuesList = config.getStringList("entitySacrificeLP:HPValues", category, new String[] { "EntityVillager;100", "EntitySlime;15", "EntityEnderman;10", "EntityCow;100", "EntityChicken;100", "EntityHorse;250", "EntitySheep;100", "EntityWolf;100", "EntityOcelot;100", "EntityPig;100", "EntityRabbit;100", "EntityArmorStand;0" }, "Used to edit the amount of LP gained per HP sacrificed for the given entity.\nSetting an entity to 0 effectively blacklists it.\nIf a mod modifies an entity via the API, it will take precedence over this config.\nSyntax: EntityClassName;LPPerHP"); + entitySacrificeValuesList = config.getStringList("entitySacrificeLP:HPValues", category, new String[] { "EntityVillager;100", "EntitySlime;15", "EntityEnderman;10", "EntityCow;100", "EntityChicken;100", "EntityHorse;100", "EntitySheep;100", "EntityWolf;100", "EntityOcelot;100", "EntityPig;100", "EntityRabbit;100", "EntityArmorStand;0" }, "Used to edit the amount of LP gained per HP sacrificed for the given entity.\nSetting an entity to 0 effectively blacklists it.\nIf a mod modifies an entity via the API, it will take precedence over this config.\nSyntax: EntityClassName;LPPerHP"); buildEntitySacrificeValues(); category = "Potions"; diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualContainment.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualContainment.java index 3fa04ceb..d96561e3 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualContainment.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualContainment.java @@ -20,7 +20,7 @@ public class RitualContainment extends Ritual { super("ritualContainment", 0, 2000, "ritual." + Constants.Mod.MODID + ".containmentRitual"); addBlockRange(CONTAINMENT_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-3, 0, -3), 7)); - setMaximumVolumeAndDistanceOfRange(CONTAINMENT_RANGE, 0, 5, 10); + setMaximumVolumeAndDistanceOfRange(CONTAINMENT_RANGE, 0, 10, 10); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualExpulsion.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualExpulsion.java index 197afb0d..694cc40a 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualExpulsion.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualExpulsion.java @@ -8,24 +8,26 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.EnderTeleportEvent; +import net.minecraftforge.items.IItemHandler; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.iface.IBindable; -import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.AreaDescriptor; import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.Ritual; import WayofTime.bloodmagic.api.ritual.RitualComponent; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.api.util.helper.PlayerHelper; +import WayofTime.bloodmagic.util.Utils; import com.google.common.base.Strings; @@ -59,18 +61,23 @@ public class RitualExpulsion extends Ritual AreaDescriptor expulsionRange = getBlockRange(EXPULSION_RANGE); List allowedNames = new ArrayList(); + BlockPos masterPos = masterRitualStone.getBlockPos(); + TileEntity tile = world.getTileEntity(masterPos.up()); - if (world.getTileEntity(masterRitualStone.getBlockPos().up()) != null && world.getTileEntity(masterRitualStone.getBlockPos().up()) instanceof IInventory) + if (tile != null) { - IInventory inventory = (IInventory) world.getTileEntity(masterRitualStone.getBlockPos().up()); - for (int i = 0; i < inventory.getSizeInventory(); i++) + IItemHandler handler = Utils.getInventory(tile, null); + if (handler != null) { - ItemStack itemStack = inventory.getStackInSlot(i); - if (itemStack != null && itemStack.getItem() instanceof IBindable) + for (int i = 0; i < handler.getSlots(); i++) { - IBindable bindable = (IBindable) itemStack.getItem(); - if (!Strings.isNullOrEmpty(bindable.getOwnerName(itemStack)) && !allowedNames.contains(bindable.getOwnerName(itemStack))) - allowedNames.add(bindable.getOwnerName(itemStack)); + ItemStack itemStack = handler.getStackInSlot(i); + if (itemStack != null && itemStack.getItem() instanceof IBindable) + { + IBindable bindable = (IBindable) itemStack.getItem(); + if (!Strings.isNullOrEmpty(bindable.getOwnerName(itemStack)) && !allowedNames.contains(bindable.getOwnerName(itemStack))) + allowedNames.add(bindable.getOwnerName(itemStack)); + } } } } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualHarvest.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualHarvest.java index 1737e189..ff366848 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualHarvest.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualHarvest.java @@ -31,7 +31,7 @@ public class RitualHarvest extends Ritual { super("ritualHarvest", 0, 20000, "ritual." + Constants.Mod.MODID + ".harvestRitual"); addBlockRange(HARVEST_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-4, 1, -4), 9, 5, 9)); - setMaximumVolumeAndDistanceOfRange(HARVEST_RANGE, 81, 15, 15); + setMaximumVolumeAndDistanceOfRange(HARVEST_RANGE, 0, 15, 15); } @Override diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualInterdiction.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualInterdiction.java index e9b76b25..a94d9f53 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualInterdiction.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualInterdiction.java @@ -20,7 +20,7 @@ public class RitualInterdiction extends Ritual { super("ritualInterdiction", 0, 1000, "ritual." + Constants.Mod.MODID + ".interdictionRitual"); addBlockRange(INTERDICTION_RANGE, new AreaDescriptor.Rectangle(new BlockPos(-2, 0, -2), 5)); - setMaximumVolumeAndDistanceOfRange(INTERDICTION_RANGE, 0, 5, 5); + setMaximumVolumeAndDistanceOfRange(INTERDICTION_RANGE, 0, 10, 10); } @Override @@ -43,14 +43,19 @@ public class RitualInterdiction extends Ritual if (entity instanceof EntityPlayer && (((EntityPlayer) entity).capabilities.isCreativeMode || PlayerHelper.getUUIDFromPlayer((EntityPlayer) entity).toString().equals(masterRitualStone.getOwner()))) continue; - double xDif = entity.posX - masterRitualStone.getBlockPos().getX(); + double xDif = entity.posX - (masterRitualStone.getBlockPos().getX() + 0.5); double yDif = entity.posY - masterRitualStone.getBlockPos().getY() + 1; - double zDif = entity.posZ - masterRitualStone.getBlockPos().getZ(); + double zDif = entity.posZ - (masterRitualStone.getBlockPos().getZ() + 0.5); entity.motionX = 0.1 * xDif; entity.motionY = 0.1 * yDif; entity.motionZ = 0.1 * zDif; entity.fallDistance = 0; + + if (entity instanceof EntityPlayer) + { + entity.velocityChanged = true; + } } } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualRegeneration.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualRegeneration.java index 95f13cfb..fb03fa79 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualRegeneration.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualRegeneration.java @@ -77,7 +77,7 @@ public class RitualRegeneration extends Ritual double corrosiveDrain = 0; boolean syphonHealth = corrosiveWill >= corrosiveWillDrain; - boolean applyAbsorption = true; + boolean applyAbsorption = false; float absorptionRate = 1; int maxAbsorption = 20; @@ -177,7 +177,7 @@ public class RitualRegeneration extends Ritual @Override public int getRefreshCost() { - return 200; + return SACRIFICE_AMOUNT; } @Override