Commitment

This commit is contained in:
WayofTime 2014-12-13 19:17:38 -05:00
parent ef82b68a16
commit d8f267b7e3
8 changed files with 353 additions and 190 deletions

View file

@ -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

View file

@ -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<strings.length; i++)
// {
// newStrings[i] = strings[i];
// }
//
// currentPage++;
// newStrings[currentPage - 1] = currentTitle + "." + pageIndex + "=" + newStrings[currentPage - 1];
// newStrings[currentPage] = "";
// strings = newStrings;
//
// pageIndex = 1;
//
// String title = strLine.replaceFirst("//TITLE ", " ").trim();
// currentTitle = "aw.entry." + title;
//
// continue;
// }
//
// strLine = strLine.replace('”', '"').replace('“','"');
//
// if(Minecraft.getMinecraft() != null && Minecraft.getMinecraft().fontRenderer != null)
// {
// List list = Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strLine, 110);
// if(list != null)
// {
// System.out.println("Number of lines: " + list.size());
// }
// }
//
// String[] cutStrings = strLine.split(" ");
//
// for(String word : cutStrings)
// {
// boolean changePage = false;
// int length = word.length();
// word = word.replace('\t', ' ');
// List list = Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strings[currentPage] + " " + word, 110);
//
//// if(currentWidth != 0 && currentWidth + length + 1 > 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<itemStrings.length; i+=2)
{
if(i+1 < itemStrings.length)
{
File file = new File(bmDirectory, itemStrings[i] + ".json");
{
String[] strings = getGeneratedStrings(prefix + itemStrings[i + 1]);
PrintWriter writer = new PrintWriter(file);
for(String stri : strings)
{
writer.println(stri);
}
writer.close();
}
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String[] getGeneratedStrings(String itemName)
{
String[] strings = new String[18];
strings[0] = "{";
strings[1] = " \"parent\": \"builtin/generated\",";
strings[2] = " \"textures\": {";
strings[3] = " \"layer0\": \"" + itemName + "\"";
strings[4] = " },";
strings[5] = " \"display\": {";
strings[6] = " \"thirdperson\": {";
strings[7] = " \"rotation\": [ -90, 0, 0 ],";
strings[8] = " \"translation\": [ 0, 1, -3 ],";
strings[9] = " \"scale\": [ 0.55, 0.55, 0.55 ]";
strings[10] = " },";
strings[11] = " \"firstperson\": {";
strings[12] = " \"rotation\": [ 0, -135, 25 ],";
strings[13] = " \"translation\": [ 0, 4, 2 ],";
strings[14] = " \"scale\": [ 1.7, 1.7, 1.7 ]";
strings[15] = " }";
strings[16] = " }";
strings[17] = "}";
return strings;
}
@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<strings.length; i++)
{
newStrings[i] = strings[i];
}
currentPage++;
newStrings[currentPage - 1] = currentTitle + "." + pageIndex + "=" + newStrings[currentPage - 1];
newStrings[currentPage] = "";
strings = newStrings;
pageIndex = 1;
String title = strLine.replaceFirst("//TITLE ", " ").trim();
currentTitle = "aw.entry." + title;
continue;
}
strLine = strLine.replace('”', '"').replace('“','"');
if(Minecraft.getMinecraft() != null && Minecraft.getMinecraft().fontRenderer != null)
{
List list = Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strLine, 110);
if(list != null)
{
System.out.println("Number of lines: " + list.size());
}
}
String[] cutStrings = strLine.split(" ");
for(String word : cutStrings)
{
boolean changePage = false;
int length = word.length();
word = word.replace('\t', ' ');
List list = Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strings[currentPage] + " " + word, 110);
// if(currentWidth != 0 && currentWidth + length + 1 > 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<strings.length; i++)
// {
// newStrings[i] = strings[i];
// }
//
// currentPage++;
//
// newStrings[currentPage - 1] = currentTitle + "." + pageIndex + "=" + newStrings[currentPage - 1];
// newStrings[currentPage] = word;
// strings = newStrings;
//
// pageIndex++;
//
// changePage = false;
// }else
// {
// strings[currentPage] = strings[currentPage] + " " + word;
// }
// }
//
// int currentLines = Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strings[currentPage], 110).size();
// while(Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strings[currentPage] + " ", 110).size() <= currentLines)
// {
// {
// strings[currentPage] = strings[currentPage] + " ";
// }
// }
//
// System.out.println("" + strLine);
// }
//
// strings[currentPage] = currentTitle + "." + pageIndex + "=" + strings[currentPage];
//
// File bmDirectory = new File("src/main/resources/assets/alchemicalwizardryBooks");
// if(!bmDirectory.exists())
// {
// bmDirectory.mkdirs();
// }
//
// File file = new File(bmDirectory, "books.txt");
//// if (file.exists() && file.length() > 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<strings.length; i++)
{
newStrings[i] = strings[i];
}
currentPage++;
newStrings[currentPage - 1] = currentTitle + "." + pageIndex + "=" + newStrings[currentPage - 1];
newStrings[currentPage] = word;
strings = newStrings;
pageIndex++;
changePage = false;
}else
{
strings[currentPage] = strings[currentPage] + " " + word;
}
}
int currentLines = Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strings[currentPage], 110).size();
while(Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(strings[currentPage] + " ", 110).size() <= currentLines)
{
{
strings[currentPage] = strings[currentPage] + " ";
}
}
System.out.println("" + strLine);
}
strings[currentPage] = currentTitle + "." + pageIndex + "=" + strings[currentPage];
File bmDirectory = new File("src/main/resources/assets/alchemicalwizardryBooks");
if(!bmDirectory.exists())
{
bmDirectory.mkdirs();
}
File file = new File(bmDirectory, "books.txt");
// if (file.exists() && file.length() > 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();
}
}
}
}

View file

@ -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);

View file

@ -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)
// {

View file

@ -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;

View file

@ -0,0 +1,8 @@
package WayofTime.alchemicalWizardry.common.items;
import net.minecraft.item.ItemStack;
public interface ILPGauge
{
public boolean canSeeLPBar(ItemStack itemStack);
}

View file

@ -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<Entity> getEntitiesInRange(World world, double posX, double posY, double posZ, double horizontalRadius, double verticalRadius)
{