diff --git a/build.properties b/build.properties index 2df0e5a8..fb217e6c 100644 --- a/build.properties +++ b/build.properties @@ -1,5 +1,5 @@ # -#Mon May 11 13:18:11 EDT 2015 +#Sun May 17 08:27:28 EDT 2015 mod_name=BloodMagic forge_version=10.13.3.1374-1.7.10 ccc_version=1.0.4.29 @@ -9,5 +9,5 @@ guideapi_version=1.0-14 package_group=com.wayoftime.bloodmagic mod_version=1.3.2aBeta minetweaker_version=Dev-1.7.10-3.0.9B -build_number=8 mc_version=1.7.10 +build_number=13 diff --git a/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java b/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java index f5dbf8df..b1ffc1af 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java +++ b/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java @@ -112,6 +112,7 @@ import WayofTime.alchemicalWizardry.common.harvest.BloodMagicHarvestHandler; import WayofTime.alchemicalWizardry.common.harvest.CactusReedHarvestHandler; import WayofTime.alchemicalWizardry.common.harvest.GourdHarvestHandler; import WayofTime.alchemicalWizardry.common.harvest.PamHarvestCompatRegistry; +import WayofTime.alchemicalWizardry.common.items.ItemIncense; import WayofTime.alchemicalWizardry.common.items.ItemRitualDiviner; import WayofTime.alchemicalWizardry.common.items.armour.OmegaArmour; import WayofTime.alchemicalWizardry.common.items.forestry.ItemBloodFrame; @@ -1117,6 +1118,9 @@ public class AlchemicalWizardry AlchemyRecipeRegistry.registerRecipe(new ItemStack(Items.ghast_tear, 2), 100, new ItemStack[]{ghastTearStack, concentratedCatalystStack, weakBloodShardStack, new ItemStack(Blocks.soul_sand), new ItemStack(Blocks.soul_sand)}, 5); AlchemyRecipeRegistry.registerRecipe(new ItemStack(Items.coal, 5), 1, new ItemStack[]{new ItemStack(Items.coal, 1, 1), new ItemStack(Items.coal, 1, 1), new ItemStack(Items.coal, 1, 1), new ItemStack(Items.coal, 1, 1), new ItemStack(Items.coal, 1, 1)}, 1); AlchemyRecipeRegistry.registerRecipe(new ItemStack(Items.clay_ball, 4), 5, new ItemStack[]{new ItemStack(Blocks.sand), waterBucketStack}, 2); + + ItemIncense.registerIncenseRecipes(); + GameRegistry.addRecipe(new ItemStack(ModBlocks.blockCrucible), "i i", "sis", " S ", 's', new ItemStack(Blocks.stone_slab), 'i', ironIngotStack, 'S', stoneStack); } @EventHandler diff --git a/src/main/java/WayofTime/alchemicalWizardry/api/sacrifice/PlayerSacrificeHandler.java b/src/main/java/WayofTime/alchemicalWizardry/api/sacrifice/PlayerSacrificeHandler.java index 9ed5766a..7ebf91e8 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/api/sacrifice/PlayerSacrificeHandler.java +++ b/src/main/java/WayofTime/alchemicalWizardry/api/sacrifice/PlayerSacrificeHandler.java @@ -30,9 +30,11 @@ public class PlayerSacrificeHandler return false; } - amount = amount + Math.max(increment, max - amount); + amount = amount + Math.min(increment, max - amount); setPlayerIncense(player, amount); +// System.out.println("Amount of incense: " + amount + ", Increment: " + increment); + return true; } diff --git a/src/main/java/WayofTime/alchemicalWizardry/client/nei/NEIBloodOrbShapedHandler.java b/src/main/java/WayofTime/alchemicalWizardry/client/nei/NEIBloodOrbShapedHandler.java index 1db08fa1..ad2c63fe 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/client/nei/NEIBloodOrbShapedHandler.java +++ b/src/main/java/WayofTime/alchemicalWizardry/client/nei/NEIBloodOrbShapedHandler.java @@ -47,6 +47,11 @@ public class NEIBloodOrbShapedHandler extends ShapedRecipeHandler { PositionedStack stack = new PositionedStack(orbs, 25 + x * 18, 6 + y * 18, false); stack.setMaxSize(1); ingredients.add(stack); + }else if(o instanceof List) + { + PositionedStack stack = new PositionedStack((List)o, 25 + x * 18, 6 + y * 18, false); + stack.setMaxSize(1); + ingredients.add(stack); } } } diff --git a/src/main/java/WayofTime/alchemicalWizardry/client/nei/NEIBloodOrbShapelessHandler.java b/src/main/java/WayofTime/alchemicalWizardry/client/nei/NEIBloodOrbShapelessHandler.java index ea773e7a..3e1b3d87 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/client/nei/NEIBloodOrbShapelessHandler.java +++ b/src/main/java/WayofTime/alchemicalWizardry/client/nei/NEIBloodOrbShapelessHandler.java @@ -44,6 +44,11 @@ public class NEIBloodOrbShapelessHandler extends ShapelessRecipeHandler { PositionedStack stack = new PositionedStack(orbs, 25 + stackorder[ingred][0] * 18, 6 + stackorder[ingred][1] * 18); stack.setMaxSize(1); ingredients.add(stack); + }else if(o instanceof List) + { + PositionedStack stack = new PositionedStack((List)o, 25 + stackorder[ingred][0] * 18, 6 + stackorder[ingred][1] * 18); + stack.setMaxSize(1); + ingredients.add(stack); } } } diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockCrucible.java b/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockCrucible.java index 02306715..f8866236 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockCrucible.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/block/BlockCrucible.java @@ -2,17 +2,32 @@ package WayofTime.alchemicalWizardry.common.block; import java.util.Random; +import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.inventory.IInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.common.tileEntity.TECrucible; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class BlockCrucible extends BlockContainer { + @SideOnly(Side.CLIENT) + private static IIcon topIcon; + @SideOnly(Side.CLIENT) + private static IIcon sideIcon; + @SideOnly(Side.CLIENT) + private static IIcon bottomIcon; + public BlockCrucible() { super(Material.anvil); @@ -20,18 +35,43 @@ public class BlockCrucible extends BlockContainer this.setResistance(1.5f); this.setCreativeTab(AlchemicalWizardry.tabBloodMagic); this.setBlockName("blockCrucible"); + this.setBlockBounds(0.3125F, 0.0F, 0.3125F, 0.6875F, 0.625F, 0.6875F); } @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { - return null; + this.topIcon = iconRegister.registerIcon("AlchemicalWizardry:Crucible_Top"); + this.sideIcon = iconRegister.registerIcon("AlchemicalWizardry:Crucible_Side"); + this.bottomIcon = iconRegister.registerIcon("AlchemicalWizardry:Crucible_Bottom"); } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) + { + switch (side) + { + case 0: + return bottomIcon; + case 1: + return topIcon; + default: + return sideIcon; + } + } + +// @Override +// public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) +// { +// return null; +// } @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { - this.setBlockBounds(0.4F, 0.0F, 0.4F, 0.6F, 0.6F, 0.6F); + this.setBlockBounds(0.3125F, 0.0F, 0.3125F, 0.6875F, 0.625F, 0.6875F); } @Override @@ -61,4 +101,68 @@ public class BlockCrucible extends BlockContainer tile.spawnClientParticle(world, x, y, z, rand); } } + + @Override + public void breakBlock(World world, int x, int y, int z, Block par5, int par6) + { + dropItems(world, x, y, z); + super.breakBlock(world, x, y, z, par5, par6); + } + + @Override + public boolean hasComparatorInputOverride() + { + return true; + } + + @Override + public int getComparatorInputOverride(World world, int x, int y, int z, int meta) + { + TileEntity tile = world.getTileEntity(x, y, z); + if (tile instanceof TECrucible) + { + return ((TECrucible) tile).getRSPowerOutput(); + } + return 15; + } + + private void dropItems(World world, int x, int y, int z) + { + Random rand = new Random(); + TileEntity tileEntity = world.getTileEntity(x, y, z); + + if (!(tileEntity instanceof IInventory)) + { + return; + } + + IInventory inventory = (IInventory) tileEntity; + + for (int i = 0; i < inventory.getSizeInventory(); i++) + { + ItemStack item = inventory.getStackInSlot(i); + + if (item != null && item.stackSize > 0) + { + float rx = rand.nextFloat() * 0.8F + 0.1F; + float ry = rand.nextFloat() * 0.8F + 0.1F; + float rz = rand.nextFloat() * 0.8F + 0.1F; + EntityItem entityItem = new EntityItem(world, + x + rx, y + ry, z + rz, + new ItemStack(item.getItem(), item.stackSize, item.getItemDamage())); + + if (item.hasTagCompound()) + { + entityItem.getEntityItem().setTagCompound((NBTTagCompound) item.getTagCompound().copy()); + } + + float factor = 0.05F; + entityItem.motionX = rand.nextGaussian() * factor; + entityItem.motionY = rand.nextGaussian() * factor + 0.2F; + entityItem.motionZ = rand.nextGaussian() * factor; + world.spawnEntityInWorld(entityItem); + item.stackSize = 0; + } + } + } } diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemIncense.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemIncense.java index c46c5551..b0bf0a6e 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemIncense.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/ItemIncense.java @@ -5,19 +5,25 @@ import java.util.List; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.util.StatCollector; +import net.minecraftforge.oredict.OreDictionary; import WayofTime.alchemicalWizardry.AlchemicalWizardry; +import WayofTime.alchemicalWizardry.ModItems; +import WayofTime.alchemicalWizardry.api.items.ShapelessBloodOrbRecipe; import WayofTime.alchemicalWizardry.api.sacrifice.IIncense; +import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class ItemIncense extends Item implements IIncense { - private static final String[] ITEM_NAMES = new String[]{"Woodash", "Cloves"}; + private static final String[] ITEM_NAMES = new String[]{"Woodash", "Byrrus", "Livens", "Viridis", "Purpura"}; @SideOnly(Side.CLIENT) private IIcon[] icons; @@ -40,9 +46,17 @@ public class ItemIncense extends Item implements IIncense { icons = new IIcon[ITEM_NAMES.length]; + IIcon baseIcon = iconRegister.registerIcon("AlchemicalWizardry:" + "baseIncenseItem"); + for (int i = 0; i < ITEM_NAMES.length; ++i) { - icons[i] = iconRegister.registerIcon("AlchemicalWizardry:" + "baseIncenseItem" + ITEM_NAMES[i]); + if(this.doesIncenseHaveUniqueTexture(i)) + { + icons[i] = iconRegister.registerIcon("AlchemicalWizardry:" + "baseIncenseItem" + ITEM_NAMES[i]); + }else + { + icons[i] = baseIcon; + } } } @@ -76,67 +90,131 @@ public class ItemIncense extends Item implements IIncense list.add(new ItemStack(id, 1, meta)); } } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) + { + if(!this.doesIncenseHaveUniqueTexture(stack.getItemDamage())) + { + EnumIncense inc = EnumIncense.getEnumForIndex(stack.getItemDamage()); + return (int)((255*inc.redColour * 256 * 256 + 255*inc.greenColour * 256 + 255*inc.blueColour)); + } + + return 256 * (256 * 255 + 255) + 255; + } @Override public int getMinLevel(ItemStack stack) { - switch(stack.getItemDamage()) - { - case 0: - return 0; - case 1: - return 200; - } - return 0; + return EnumIncense.getEnumForIndex(stack.getItemDamage()).minValue; } @Override public int getMaxLevel(ItemStack stack) { - switch(stack.getItemDamage()) - { - case 0: - return 200; - case 1: - return 500; - } - return 100; + return EnumIncense.getEnumForIndex(stack.getItemDamage()).maxValue; } @Override public int getIncenseDuration(ItemStack stack) { - return 200; + return EnumIncense.getEnumForIndex(stack.getItemDamage()).incenseDuration; } @Override public float getTickRate(ItemStack stack) { - switch(stack.getItemDamage()) - { - case 0: - return 1.0f; - case 1: - return 0.5f; - } - return 1.0f; + return EnumIncense.getEnumForIndex(stack.getItemDamage()).tickRate; } @Override public float getRedColour(ItemStack stack) { - return 1.0f; + return EnumIncense.getEnumForIndex(stack.getItemDamage()).redColour; } @Override public float getGreenColour(ItemStack stack) { - return 0; + return EnumIncense.getEnumForIndex(stack.getItemDamage()).greenColour; } @Override public float getBlueColour(ItemStack stack) { - return 0; + return EnumIncense.getEnumForIndex(stack.getItemDamage()).blueColour; + } + + public boolean doesIncenseHaveUniqueTexture(int meta) + { + return false; + } + + public static void registerIncenseRecipes() + { + int WILDCARD = OreDictionary.WILDCARD_VALUE; + ItemStack woodStack = new ItemStack(Blocks.log, 1, WILDCARD); + ItemStack charcoalStack = new ItemStack(Items.coal, 1, 1); + ItemStack leavesStack = new ItemStack(Blocks.leaves, 1, WILDCARD); + ItemStack goldNuggetStack = new ItemStack(Items.gold_nugget, 1, WILDCARD); + ItemStack stringStack = new ItemStack(Items.string, 1, WILDCARD); + ItemStack glowstoneStack = new ItemStack(Items.glowstone_dust, 1, WILDCARD); + ItemStack soulSandStack = new ItemStack(Blocks.soul_sand); + ItemStack gunpowderStack = new ItemStack(Items.gunpowder); + ItemStack fermentedEyeStack = new ItemStack(Items.fermented_spider_eye); + ItemStack quartzStack = new ItemStack(Items.quartz, 1, WILDCARD); + ItemStack blazePowderStack = new ItemStack(Items.blaze_powder); + ItemStack netherwartStack = new ItemStack(Items.nether_wart); + ItemStack fracturedBoneStack = new ItemStack(ModItems.baseAlchemyItems, 1, 5); + + ItemStack woodashStack = new ItemStack(ModItems.itemIncense, 1, 0); + + GameRegistry.addRecipe(woodashStack, "WWW", "WCW", "WWW", 'W', woodStack, 'C', charcoalStack); //WOODASH + GameRegistry.addRecipe(new ShapelessBloodOrbRecipe(new ItemStack(ModItems.itemIncense, 1, 1), woodashStack, "dyeRed", "dyeRed", new ItemStack(Items.redstone), leavesStack, leavesStack, new ItemStack(ModItems.apprenticeBloodOrb))); + GameRegistry.addRecipe(new ShapelessBloodOrbRecipe(new ItemStack(ModItems.itemIncense, 1, 2), woodashStack, "dyeBlue", "dyeBlue", goldNuggetStack, goldNuggetStack, glowstoneStack, stringStack, stringStack, new ItemStack(ModItems.magicianBloodOrb))); + GameRegistry.addRecipe(new ShapelessBloodOrbRecipe(new ItemStack(ModItems.itemIncense, 1, 3), woodashStack, "dyeGreen", "dyeGreen", soulSandStack, gunpowderStack, fermentedEyeStack, new ItemStack(ModItems.masterBloodOrb))); + GameRegistry.addRecipe(new ShapelessBloodOrbRecipe(new ItemStack(ModItems.itemIncense, 1, 4), woodashStack, "dyePurple", "dyePurple", quartzStack, netherwartStack, blazePowderStack, fracturedBoneStack, goldNuggetStack, new ItemStack(ModItems.archmageBloodOrb))); + } + + public enum EnumIncense + { + WOODASH(0, 200, 1.0f, 1000, 0.937f, 0.898f, 0.820f), + RED(200, 600, 1.5f, 1000, 1.0f, 0, 0), + BLUE(600, 1200, 3.0f, 1000, 0, 0, 1.0f), + GREEN(1200, 2000, 4.0f, 1000, 0, 1.0f, 0), + PURPLE(2000, 3000, 5.0f, 1000, 1.0f, 0, 1.0f); + + public final int minValue; + public final int maxValue; + public final float tickRate; + public final int incenseDuration; + + public final float redColour; + public final float greenColour; + public final float blueColour; + + private EnumIncense(int minValue, int maxValue, float tickRate, int dur, float red, float green, float blue) + { + this.minValue = minValue; + this.maxValue = maxValue; + this.tickRate = tickRate; + this.incenseDuration = dur; + + this.redColour = red; + this.greenColour = green; + this.blueColour = blue; + } + + public static EnumIncense getEnumForIndex(int index) + { + if(index > EnumIncense.values().length || index < 0) + { + return WOODASH; + }else + { + return EnumIncense.values()[index]; + } + } } } diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEllipsoid.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEllipsoid.java index 8fe1ca25..5e82d851 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEllipsoid.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEllipsoid.java @@ -48,7 +48,7 @@ public class RitualEffectEllipsoid extends RitualEffect int ySize = item2 == null ? 0 : item2.stackSize; int zSize = item3 == null ? 0 : item3.stackSize; - int cost = (int) Math.pow((xSize + 1) * (ySize + 1) * (zSize + 1), 0.333); + int cost = 5; if (currentEssence < cost) { diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TECrucible.java b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TECrucible.java index 5552a5cd..b73d1509 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TECrucible.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/tileEntity/TECrucible.java @@ -3,6 +3,7 @@ package WayofTime.alchemicalWizardry.common.tileEntity; import java.util.List; import java.util.Random; +import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -16,6 +17,8 @@ import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; public class TECrucible extends TEInventory { + private int radius = 5; + public float rColour; public float gColour; public float bColour; @@ -72,7 +75,7 @@ public class TECrucible extends TEInventory if(ticksRemaining > 0) { - List playerList = SpellHelper.getPlayersInRange(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 3, 3); + List playerList = SpellHelper.getPlayersInRange(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, radius, radius); if(playerList != null && !playerList.isEmpty()) { @@ -103,6 +106,8 @@ public class TECrucible extends TEInventory if(stateChanged) { worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + + updateNeighbors(); } }else { @@ -110,6 +115,7 @@ public class TECrucible extends TEInventory { state = 0; worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + updateNeighbors(); } } }else @@ -118,24 +124,42 @@ public class TECrucible extends TEInventory { state = 0; worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); + updateNeighbors(); } } } + private void updateNeighbors() + { + Block block = worldObj.getBlock(xCoord + 1, yCoord, zCoord); + block.onNeighborBlockChange(worldObj, xCoord + 1, yCoord, zCoord, block); + block = worldObj.getBlock(xCoord - 1, yCoord, zCoord); + block.onNeighborBlockChange(worldObj, xCoord - 1, yCoord, zCoord, block); + block = worldObj.getBlock(xCoord, yCoord + 1, zCoord); + block.onNeighborBlockChange(worldObj, xCoord, yCoord + 1, zCoord, block); + block = worldObj.getBlock(xCoord, yCoord - 1, zCoord); + block.onNeighborBlockChange(worldObj, xCoord, yCoord - 1, zCoord, block); + block = worldObj.getBlock(xCoord, yCoord, zCoord + 1); + block.onNeighborBlockChange(worldObj, xCoord, yCoord, zCoord + 1, block); + block = worldObj.getBlock(xCoord, yCoord, zCoord - 1); + block.onNeighborBlockChange(worldObj, xCoord, yCoord, zCoord - 1, block); + } + public void spawnClientParticle(World world, int x, int y, int z, Random rand) { switch(state) { case 0: - world.spawnParticle("reddust", x + 0.5D + rand.nextGaussian() / 8, y + 0.5D, z + 0.5D + rand.nextGaussian() / 8, 0.15, 0.15, 0.15); + world.spawnParticle("reddust", x + 0.5D + rand.nextGaussian() / 8, y + 0.7D, z + 0.5D + rand.nextGaussian() / 8, 0.15, 0.15, 0.15); break; case 1: - world.spawnParticle("reddust", x + 0.5D + rand.nextGaussian() / 8, y + 0.5D, z + 0.5D + rand.nextGaussian() / 8, 0.9, 0.9, 0.9); + world.spawnParticle("reddust", x + 0.5D + rand.nextGaussian() / 8, y + 0.7D, z + 0.5D + rand.nextGaussian() / 8, 1.0, 1.0, 1.0); break; case 2: - world.spawnParticle("reddust", x + 0.5D + rand.nextGaussian() / 8, y + 0.5D, z + 0.5D + rand.nextGaussian() / 8, rColour, gColour, bColour); + world.spawnParticle("reddust", x + 0.5D + rand.nextGaussian() / 8, y + 0.7D, z + 0.5D + rand.nextGaussian() / 8, rColour, gColour, bColour); + world.spawnParticle("flame", x + 0.5D + rand.nextGaussian() / 32, y + 0.7D, z + 0.5D + rand.nextGaussian() / 32, 0, 0.02, 0); break; case 3: @@ -152,6 +176,7 @@ public class TECrucible extends TEInventory tag.setInteger("ticksRemaining", ticksRemaining); tag.setInteger("minValue", minValue); tag.setInteger("maxValue", maxValue); + tag.setFloat("increment", this.incrementValue); this.writeClientNBT(tag); } @@ -164,6 +189,7 @@ public class TECrucible extends TEInventory ticksRemaining = tag.getInteger("ticksRemaining"); minValue = tag.getInteger("minValue"); maxValue = tag.getInteger("maxValue"); + incrementValue = tag.getFloat("increment"); this.readClientNBT(tag); } @@ -211,4 +237,9 @@ public class TECrucible extends TEInventory { return stack != null ? stack.getItem() instanceof IIncense : false; } + + public int getRSPowerOutput() + { + return (state == 1 || state == 0) ? 0 : 15; + } } diff --git a/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang b/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang index a3afbcd8..bef5fe52 100644 --- a/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang +++ b/src/main/resources/assets/alchemicalwizardry/lang/en_US.lang @@ -67,6 +67,7 @@ tile.blockMimic.name=Mimic Block tile.blockSpectralContainer.name=Spectral Container tile.blockBloodLightSource.name=Blood Light tile.spectralBlock.name=Spectral Block +tile.blockCrucible.name=Incense Crucible #Item Localization item.weakBloodOrb.name=Weak Blood Orb @@ -235,7 +236,11 @@ item.boundPlateWater.name=Water Omega Plate item.boundLeggingsWater.name=Water Omega Leggings item.boundBootsWater.name=Water Omega Boots -item.bloodMagicIncenseItem.Woodash.name=Testing Incense +item.bloodMagicIncenseItem.Woodash.name=Wood Ash +item.bloodMagicIncenseItem.Byrrus.name=Byrrus +item.bloodMagicIncenseItem.Livens.name=Livens +item.bloodMagicIncenseItem.Viridis.name=Viridis +item.bloodMagicIncenseItem.Purpura.name=Purpura #Creative Tab itemGroup.tabBloodMagic=Blood Magic @@ -416,6 +421,7 @@ tooltip.voidsigil.desc=Better than a Swiffer! tooltip.watersigil.desc=Infinite water, anyone? tooltip.routingFocus.limit=Limit: tooltip.routingFocus.desc=A focus used to route items +tooltip.alchemy.usedinincense=Purifying incense used in a crucible #Messages message.altar.capacity=Capacity: %s LP diff --git a/src/main/resources/assets/alchemicalwizardry/textures/blocks/Crucible_Bottom.png b/src/main/resources/assets/alchemicalwizardry/textures/blocks/Crucible_Bottom.png new file mode 100644 index 00000000..b3fac0f7 Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/blocks/Crucible_Bottom.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/blocks/Crucible_Side.png b/src/main/resources/assets/alchemicalwizardry/textures/blocks/Crucible_Side.png new file mode 100644 index 00000000..535b0a9a Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/blocks/Crucible_Side.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/blocks/Crucible_Top.png b/src/main/resources/assets/alchemicalwizardry/textures/blocks/Crucible_Top.png new file mode 100644 index 00000000..ba280f66 Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/blocks/Crucible_Top.png differ diff --git a/src/main/resources/assets/alchemicalwizardry/textures/items/baseIncenseItem.png b/src/main/resources/assets/alchemicalwizardry/textures/items/baseIncenseItem.png new file mode 100644 index 00000000..0cec47e7 Binary files /dev/null and b/src/main/resources/assets/alchemicalwizardry/textures/items/baseIncenseItem.png differ