Bucket recipe fix and Creative Sacrificial Dagger fix (#827)

* Bucket recipe fix and Creative Sacrificial Dagger fix

* Do #808

* Add a Sacrificial Dagger conversion config

* Put the conversion everywhere
This commit is contained in:
Arcaratus 2016-06-28 11:55:58 -04:00 committed by WayofTime
parent 81a5e3c956
commit 81d7cd4093
5 changed files with 15 additions and 8 deletions

View file

@ -138,6 +138,8 @@ public class ConfigHandler
// General // General
public static int sacrificialPackConversion; public static int sacrificialPackConversion;
public static int sacrificialDaggerDamage;
public static int sacrificialDaggerConversion;
// Client // Client
public static boolean alwaysRenderRoutingLines; public static boolean alwaysRenderRoutingLines;
@ -286,6 +288,8 @@ public class ConfigHandler
config.addCustomCategoryComment(category, "General settings"); config.addCustomCategoryComment(category, "General settings");
BloodMagicAPI.setLoggingEnabled(config.getBoolean("enableLogging", category, true, "Allows logging information to the console. Fatal errors will bypass this")); BloodMagicAPI.setLoggingEnabled(config.getBoolean("enableLogging", category, true, "Allows logging information to the console. Fatal errors will bypass this"));
sacrificialPackConversion = config.getInt("sacrificialPackConversion", category, 20, 0, 100, "Base multiplier for the Coat of Arms. DamageDealt * sacrificialPackConversion"); sacrificialPackConversion = config.getInt("sacrificialPackConversion", category, 20, 0, 100, "Base multiplier for the Coat of Arms. DamageDealt * sacrificialPackConversion");
sacrificialDaggerDamage = config.getInt("sacrificialDaggerDamage", category, 2, 0, 10000, "Damage done from using the Sacrificial Dagger");
sacrificialDaggerConversion = config.getInt("sacrificialDaggerConversion", category, 100, 0, 10000, "Amount of LP received per damage point (not heart!)");
category = "Client"; category = "Client";
config.addCustomCategoryComment(category, "Client only settings"); config.addCustomCategoryComment(category, "Client only settings");

View file

@ -1,5 +1,6 @@
package WayofTime.bloodmagic.api.util.helper; package WayofTime.bloodmagic.api.util.helper;
import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.api.altar.IBloodAltar; import WayofTime.bloodmagic.api.altar.IBloodAltar;
import WayofTime.bloodmagic.registry.ModPotions; import WayofTime.bloodmagic.registry.ModPotions;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@ -70,7 +71,7 @@ public class PlayerSacrificeHelper
{ {
float sacrificedHealth = health - maxHealth / 10.0f; float sacrificedHealth = health - maxHealth / 10.0f;
if (findAndFillAltar(player.getEntityWorld(), player, (int) (sacrificedHealth * 100f * getModifier(amount)), false)) if (findAndFillAltar(player.getEntityWorld(), player, (int) (sacrificedHealth * ConfigHandler.sacrificialDaggerConversion * getModifier(amount)), false))
{ {
player.setHealth(maxHealth / 10.0f); player.setHealth(maxHealth / 10.0f);
setPlayerIncense(player, 0); setPlayerIncense(player, 0);

View file

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.client.IMeshProvider; import WayofTime.bloodmagic.client.IMeshProvider;
import net.minecraft.client.renderer.ItemMeshDefinition; import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.model.ModelResourceLocation;
@ -105,7 +106,7 @@ public class ItemSacrificialDagger extends Item implements IMeshProvider
return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, stack); return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, stack);
} }
int lpAdded = 200; int lpAdded = getMetadata(stack) == 1 ? Integer.MAX_VALUE : ConfigHandler.sacrificialDaggerConversion * ConfigHandler.sacrificialDaggerDamage;
RayTraceResult rayTrace = rayTrace(world, player, false); RayTraceResult rayTrace = rayTrace(world, player, false);
if (rayTrace != null && rayTrace.typeOfHit == RayTraceResult.Type.BLOCK) if (rayTrace != null && rayTrace.typeOfHit == RayTraceResult.Type.BLOCK)
@ -118,7 +119,7 @@ public class ItemSacrificialDagger extends Item implements IMeshProvider
if (!player.capabilities.isCreativeMode) if (!player.capabilities.isCreativeMode)
{ {
SacrificeKnifeUsedEvent evt = new SacrificeKnifeUsedEvent(player, true, true, 2, lpAdded); SacrificeKnifeUsedEvent evt = new SacrificeKnifeUsedEvent(player, true, true, ConfigHandler.sacrificialDaggerDamage, lpAdded);
if (MinecraftForge.EVENT_BUS.post(evt)) if (MinecraftForge.EVENT_BUS.post(evt))
return super.onItemRightClick(stack, world, player, hand); return super.onItemRightClick(stack, world, player, hand);
@ -126,7 +127,7 @@ public class ItemSacrificialDagger extends Item implements IMeshProvider
{ {
player.hurtResistantTime = 0; player.hurtResistantTime = 0;
player.attackEntityFrom(BloodMagicAPI.getDamageSource(), 0.001F); player.attackEntityFrom(BloodMagicAPI.getDamageSource(), 0.001F);
player.setHealth(Math.max(player.getHealth() - 2, 0.0001f)); player.setHealth(Math.max(player.getHealth() - ConfigHandler.sacrificialDaggerDamage, 0.0001f));
if (player.getHealth() <= 0.001f) if (player.getHealth() <= 0.001f)
{ {
player.onDeath(BloodMagicAPI.getDamageSource()); player.onDeath(BloodMagicAPI.getDamageSource());

View file

@ -3,12 +3,14 @@ package WayofTime.bloodmagic.registry;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import WayofTime.bloodmagic.api.BloodMagicAPI;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.ForgeModContainer; import net.minecraftforge.common.ForgeModContainer;
import net.minecraftforge.fluids.UniversalBucket;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.RecipeSorter; import net.minecraftforge.oredict.RecipeSorter;
@ -156,7 +158,7 @@ public class ModRecipes
AltarRecipeRegistry.registerFillRecipe(OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, ModItems.orbWeak.getCapacity(), 2, 1); AltarRecipeRegistry.registerFillRecipe(OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, ModItems.orbWeak.getCapacity(), 2, 1);
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.DIAMOND), OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, 2000, 2, 1)); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.DIAMOND), OrbRegistry.getOrbStack(ModItems.orbWeak), EnumAltarTier.ONE, 2000, 2, 1));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.STONE), new ItemStack(ModItems.slate), EnumAltarTier.ONE, 1000, 5, 5)); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Blocks.STONE), new ItemStack(ModItems.slate), EnumAltarTier.ONE, 1000, 5, 5));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.BUCKET), new ItemStack(ForgeModContainer.getInstance().universalBucket), EnumAltarTier.ONE, 1000, 5, 0)); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.BUCKET), UniversalBucket.getFilledBucket(ForgeModContainer.getInstance().universalBucket, BloodMagicAPI.getLifeEssence()), EnumAltarTier.ONE, 1000, 5, 0));
AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.BOOK), new ItemStack(ModItems.sanguineBook), EnumAltarTier.ONE, 1000, 20, 0)); AltarRecipeRegistry.registerRecipe(new AltarRecipeRegistry.AltarRecipe(new ItemStack(Items.BOOK), new ItemStack(ModItems.sanguineBook), EnumAltarTier.ONE, 1000, 20, 0));
// TWO // TWO

View file

@ -1,5 +1,6 @@
package WayofTime.bloodmagic.ritual; package WayofTime.bloodmagic.ritual;
import WayofTime.bloodmagic.ConfigHandler;
import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.saving.SoulNetwork;
import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.ritual.*;
@ -20,8 +21,6 @@ public class RitualFeatheredKnife extends Ritual
public static final String ALTAR_RANGE = "altar"; public static final String ALTAR_RANGE = "altar";
public static final String DAMAGE_RANGE = "damage"; public static final String DAMAGE_RANGE = "damage";
public static final int SACRIFICE_AMOUNT = 100;
public BlockPos altarOffsetPos = new BlockPos(0, 0, 0); //TODO: Save! public BlockPos altarOffsetPos = new BlockPos(0, 0, 0); //TODO: Save!
public RitualFeatheredKnife() public RitualFeatheredKnife()
@ -90,7 +89,7 @@ public class RitualFeatheredKnife extends Ritual
{ {
player.setHealth(health - 1); player.setHealth(health - 1);
tileAltar.sacrificialDaggerCall(SACRIFICE_AMOUNT, false); tileAltar.sacrificialDaggerCall(ConfigHandler.sacrificialDaggerConversion, false);
totalEffects++; totalEffects++;