diff --git a/build.properties b/build.properties index 8a0a57d0..525b38d5 100644 --- a/build.properties +++ b/build.properties @@ -1,5 +1,5 @@ # -#Thu Dec 11 19:56:39 EST 2014 +#Fri Dec 12 19:27:09 EST 2014 mod_name=BloodMagic forge_version=10.13.2.1232 ccc_version=1.0.4.29 @@ -8,5 +8,5 @@ nei_version=1.0.3.64 package_group=com.wayoftime.bloodmagic mod_version=1.3.0Beta minetweaker_version=Dev-1.7.10-3.0.9B -build_number=5 +build_number=7 mc_version=1.7.10 diff --git a/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java b/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java index d3bd740f..dc5ee3d9 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java +++ b/src/main/java/WayofTime/alchemicalWizardry/AlchemicalWizardry.java @@ -1,14 +1,21 @@ package WayofTime.alchemicalWizardry; +import java.io.BufferedReader; +import java.io.DataInputStream; import java.io.File; +import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.PrintWriter; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +import net.minecraft.client.Minecraft; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -261,6 +268,8 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; @Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.3.0Beta", guiFactory = "WayofTime.alchemicalWizardry.client.gui.ConfigGuiFactory") @@ -1146,6 +1155,8 @@ public class AlchemicalWizardry // if(parseTextFiles) // this.parseTextFile(); + + this.createItemTextureFiles(); } public static void initAlchemyPotionRecipes() @@ -1377,164 +1388,233 @@ public class AlchemicalWizardry CompressionRegistry.registerItemThreshold(new ItemStack(Blocks.cobblestone), 64); } -// @SideOnly(Side.CLIENT) -// public void parseTextFile() -// { -// File textFiles = new File("config/BloodMagic/bookDocs"); -// //if(textFiles.exists()) -// { -// try { -// System.out.println("I am in an island of files!"); -// -// InputStream input = AlchemicalWizardry.class.getResourceAsStream("/assets/alchemicalwizardryBooks/books/book.txt"); -// -// Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(true); -// -// if(input != null) -// { -// DataInputStream in = new DataInputStream(input); -// BufferedReader br = new BufferedReader(new InputStreamReader(in)); -// String strLine; -// //Read File Line By Line -// -// int maxWidth = 25; -// int maxLines = 16; -// -// int currentPage = 0; -// -// int pageIndex = 1; -// -// String currentTitle = "aw.entry.Magnus"; -// -// String[] strings = new String[1]; -// strings[0] = ""; -// -// while ((strLine = br.readLine()) != null) -// { -// if(strLine.trim().isEmpty()) -// { -// continue; -// } -// -// if(strLine.startsWith("//TITLE ")) -// { -// String[] newStrings = new String[currentPage + 1 + 1]; //Just to show that it is increasing -// for(int i=0; i maxWidth) -//// { -//// currentLine++; -//// currentWidth = 0; -//// } -// //if(currentLine > maxLines) -// if(list.size() > maxLines) + public void createItemTextureFiles() + { + File textFiles = new File("config/BloodMagic/itemJsonFiles"); + + File bmDirectory = new File("src/main/resources/assets/alchemicalwizardryJsonFiles"); + if(!bmDirectory.exists()) + { + bmDirectory.mkdirs(); + } + + String[] itemStrings = new String[]{"apple", "apple"}; + + String prefix = "alchemicalwizardry:items/"; + + try + { + for(int i=0; i maxWidth) // { -// changePage = true; +// currentLine++; +// currentWidth = 0; // } -// if(changePage) -// { -// String[] newStrings = new String[currentPage + 1 + 1]; //Just to show that it is increasing -// for(int i=0; i 3L) -//// { -//// -//// }else + //if(currentLine > maxLines) + if(list.size() > maxLines) + { + changePage = true; + } + if(changePage) + { + String[] newStrings = new String[currentPage + 1 + 1]; //Just to show that it is increasing + for(int i=0; i 3L) // { -// PrintWriter writer = new PrintWriter(file); -// for(String stri : strings) -// { -// writer.println(stri); -// } -// writer.close(); -// } +// +// }else + { + PrintWriter writer = new PrintWriter(file); + for(String stri : strings) + { + writer.println(stri); + } + writer.close(); + } + // -//// -// } -// -// Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(false); -// -// } catch (FileNotFoundException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } catch (IOException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// } -// } + } + + Minecraft.getMinecraft().fontRenderer.setUnicodeFlag(false); + + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } } diff --git a/src/main/java/WayofTime/alchemicalWizardry/client/renderer/RenderHelper.java b/src/main/java/WayofTime/alchemicalWizardry/client/renderer/RenderHelper.java index 8e787b3e..e743e12d 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/client/renderer/RenderHelper.java +++ b/src/main/java/WayofTime/alchemicalWizardry/client/renderer/RenderHelper.java @@ -78,11 +78,14 @@ public class RenderHelper // renderTestHUD(mc, reagentStack, maxAmount); } - int max = APISpellHelper.getPlayerMaxLPTag(player); - - if(max > 1) + if(SpellHelper.canPlayerSeeLPBar(player)) { - renderLPHUD(mc, APISpellHelper.getPlayerLPTag(player), max); + int max = APISpellHelper.getPlayerMaxLPTag(player); + + if(max > 1) + { + renderLPHUD(mc, APISpellHelper.getPlayerLPTag(player), max); + } } } @@ -99,7 +102,7 @@ public class RenderHelper int x = (lpBarX - xSize / 2) * 8; int y = (lpBarY - ySize / 2) * 8; - + ResourceLocation test2 = new ResourceLocation("alchemicalwizardry", "textures/gui/container1.png"); GL11.glColor4f(1, 0, 0, 1.0F); mc.getTextureManager().bindTexture(test2); diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java b/src/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java index eafcaf38..1078fc69 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/AlchemicalWizardryEventHooks.java @@ -5,13 +5,10 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.UUID; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.IProjectile; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; @@ -25,7 +22,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.Vec3; -import net.minecraftforge.client.event.FOVUpdateEvent; import net.minecraftforge.event.AnvilUpdateEvent; import net.minecraftforge.event.entity.living.EnderTeleportEvent; import net.minecraftforge.event.entity.living.LivingAttackEvent; @@ -185,7 +181,7 @@ public class AlchemicalWizardryEventHooks @SubscribeEvent public void onLivingJumpEvent(LivingJumpEvent event) { - event.entityLiving.getEntityAttribute(SharedMonsterAttributes.maxHealth).removeModifier(new AttributeModifier(new UUID(493295, 1), "HealthModifier", 2, 0)); +// event.entityLiving.getEntityAttribute(SharedMonsterAttributes.maxHealth).removeModifier(new AttributeModifier(new UUID(493295, 1), "HealthModifier", 2, 0)); //event.entityLiving.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier(new UUID(493295, 1), "HealthModifier", 2, 0)); if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionBoost)) @@ -240,12 +236,12 @@ public class AlchemicalWizardryEventHooks } } - @SubscribeEvent - public void onFOVUpdate(FOVUpdateEvent event) - { - event.setResult(Result.DENY); - } - + +// @SubscribeEvent +// public void onFOVUpdate(FOVUpdateEvent event) +// { +// event.setResult(Result.DENY); +// } // @SubscribeEvent // public void onPlayerTickEnd(PlayerTickEvent event) // { diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java index 52653986..68931543 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/BoundArmour.java @@ -1,15 +1,7 @@ package WayofTime.alchemicalWizardry.common.items; -import WayofTime.alchemicalWizardry.AlchemicalWizardry; -import WayofTime.alchemicalWizardry.ModItems; -import WayofTime.alchemicalWizardry.api.alchemy.energy.IAlchemyGoggles; -import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; -import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; -import WayofTime.alchemicalWizardry.common.renderer.model.ModelOmegaArmour; -import cpw.mods.fml.common.Optional; -import cpw.mods.fml.common.Optional.Interface; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; + import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; @@ -30,11 +22,20 @@ import net.minecraftforge.common.util.Constants; import thaumcraft.api.IGoggles; import thaumcraft.api.IRunicArmor; import thaumcraft.api.nodes.IRevealer; - -import java.util.List; +import WayofTime.alchemicalWizardry.AlchemicalWizardry; +import WayofTime.alchemicalWizardry.ModItems; +import WayofTime.alchemicalWizardry.api.alchemy.energy.IAlchemyGoggles; +import WayofTime.alchemicalWizardry.api.items.interfaces.ArmourUpgrade; +import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable; +import WayofTime.alchemicalWizardry.common.items.sigil.DivinationSigil; +import WayofTime.alchemicalWizardry.common.renderer.model.ModelOmegaArmour; +import cpw.mods.fml.common.Optional; +import cpw.mods.fml.common.Optional.Interface; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; @Optional.InterfaceList(value = {@Interface(iface = "thaumcraft.api.nodes.IRevealer", modid = "Thaumcraft"), @Interface(iface = "thaumcraft.api.IGoggles", modid = "Thaumcraft"), @Interface(iface = "thaumcraft.api.IRunicArmor", modid = "Thaumcraft")}) -public class BoundArmour extends ItemArmor implements IAlchemyGoggles, ISpecialArmor, IBindable, IRevealer, IGoggles, IRunicArmor +public class BoundArmour extends ItemArmor implements IAlchemyGoggles, ISpecialArmor, IBindable, IRevealer, IGoggles, IRunicArmor, ILPGauge { private static int invSize = 9; private static IIcon helmetIcon; @@ -614,6 +615,8 @@ public class BoundArmour extends ItemArmor implements IAlchemyGoggles, ISpecialA { return false; } + + int blood = getMaxBloodShardLevel(itemStack); for (ItemStack item : inv) { @@ -621,11 +624,53 @@ public class BoundArmour extends ItemArmor implements IAlchemyGoggles, ISpecialA { continue; } - - if (item.getItem() instanceof IGoggles) + if (item.getItem() instanceof ArmourUpgrade && blood > 0) { - return true; + if (item.getItem() instanceof IGoggles) + { + return true; + } + + if(((ArmourUpgrade)item.getItem()).isUpgrade()) + { + blood--; + } + } + } + + return false; + } + + @Override + public boolean canSeeLPBar(ItemStack itemStack) + { + ItemStack[] inv = getInternalInventory(itemStack); + + if (inv == null) + { + return false; + } + + int blood = getMaxBloodShardLevel(itemStack); + + for (ItemStack item : inv) + { + if (item == null) + { + continue; } + if (item.getItem() instanceof ArmourUpgrade && blood > 0) + { + if (item.getItem() instanceof DivinationSigil) + { + return true; + } + + if(((ArmourUpgrade)item.getItem()).isUpgrade()) + { + blood--; + } + } } return false; diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/items/ILPGauge.java b/src/main/java/WayofTime/alchemicalWizardry/common/items/ILPGauge.java new file mode 100644 index 00000000..18368063 --- /dev/null +++ b/src/main/java/WayofTime/alchemicalWizardry/common/items/ILPGauge.java @@ -0,0 +1,8 @@ +package WayofTime.alchemicalWizardry.common.items; + +import net.minecraft.item.ItemStack; + +public interface ILPGauge +{ + public boolean canSeeLPBar(ItemStack itemStack); +} diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java b/src/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java index 543736dc..45b99fc5 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/spell/complex/effect/SpellHelper.java @@ -41,6 +41,8 @@ import WayofTime.alchemicalWizardry.api.items.interfaces.IReagentManipulator; import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler; import WayofTime.alchemicalWizardry.api.spell.APISpellHelper; import WayofTime.alchemicalWizardry.common.NewPacketHandler; +import WayofTime.alchemicalWizardry.common.items.ILPGauge; +import WayofTime.alchemicalWizardry.common.items.sigil.DivinationSigil; import cpw.mods.fml.common.FMLCommonHandler; public class SpellHelper @@ -95,6 +97,35 @@ public class SpellHelper return false; } + + public static boolean canPlayerSeeLPBar(EntityPlayer player) + { + if (player != null) + { + for(int i=0; i<4; i++) + { + ItemStack stack = player.getCurrentArmor(i); + if (stack != null) + { + Item item = stack.getItem(); + if (item instanceof ILPGauge && ((ILPGauge) item).canSeeLPBar(stack)) + { + return true; + } + } + + } + + ItemStack heldStack = player.getHeldItem(); + + if (heldStack != null && heldStack.getItem() instanceof DivinationSigil) + { + return true; + } + } + + return false; + } public static List getEntitiesInRange(World world, double posX, double posY, double posZ, double horizontalRadius, double verticalRadius) { diff --git a/src/main/resources/assets/alchemicalwizardry/schematics/building/buildings.zip b/src/main/resources/assets/alchemicalwizardry/schematics/building/buildings.zip index eb9a9fad..8bd63a85 100644 Binary files a/src/main/resources/assets/alchemicalwizardry/schematics/building/buildings.zip and b/src/main/resources/assets/alchemicalwizardry/schematics/building/buildings.zip differ