From d10fd21692bad49e75a7d665005df940c91942f8 Mon Sep 17 00:00:00 2001 From: Lance5057 Date: Sat, 6 Aug 2016 21:47:17 -0500 Subject: Launch update Only a week behind... --- .../finishingAnvil/utilities/FileGetter.java | 21 +++ .../finishingAnvil/utilities/Injector.java | 200 +++++++++++++++++---- .../finishingAnvil/utilities/ToolCoreTip.java | 16 +- 3 files changed, 195 insertions(+), 42 deletions(-) create mode 100644 src/main/java/lance5057/tDefense/finishingAnvil/utilities/FileGetter.java (limited to 'src/main/java/lance5057/tDefense/finishingAnvil/utilities') diff --git a/src/main/java/lance5057/tDefense/finishingAnvil/utilities/FileGetter.java b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/FileGetter.java new file mode 100644 index 0000000..9221376 --- /dev/null +++ b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/FileGetter.java @@ -0,0 +1,21 @@ +package lance5057.tDefense.finishingAnvil.utilities; + +import java.nio.file.FileVisitResult; +import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; +import java.util.ArrayList; +import java.util.List; + +public class FileGetter extends SimpleFileVisitor +{ + final public List filenames = new ArrayList(); + + @Override + public FileVisitResult visitFile(Path file, + BasicFileAttributes attr) + { + filenames.add(file.getFileName().toString()); + return FileVisitResult.CONTINUE; + } +} diff --git a/src/main/java/lance5057/tDefense/finishingAnvil/utilities/Injector.java b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/Injector.java index 375b2e5..2b754f0 100644 --- a/src/main/java/lance5057/tDefense/finishingAnvil/utilities/Injector.java +++ b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/Injector.java @@ -1,14 +1,23 @@ package lance5057.tDefense.finishingAnvil.utilities; +import java.io.IOException; +import java.net.URISyntaxException; +import java.nio.file.FileSystem; +import java.nio.file.FileSystems; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import lance5057.tDefense.TinkersDefense; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.item.Item; import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; import tconstruct.library.TConstructRegistry; import tconstruct.library.crafting.PatternBuilder; import tconstruct.library.crafting.PatternBuilder.MaterialSet; @@ -28,11 +37,52 @@ public class Injector extends ToolCore super(0); } - protected void loadHeads(IIconRegister iconRegister) + protected void loadHeads(IIconRegister iconRegister) throws IOException, URISyntaxException { + // final URL jarFile = + // TinkersDefense.class.getResource("assets/tinkersdefense/textures/items/"); + final int toolLength = TConstructRegistry.tools.size(); for(int i = 0; i < toolLength; i++) + { + final String toolName = TConstructRegistry.tools.get(i).getUnlocalizedName().toLowerCase().substring(TConstructRegistry.tools.get(i).getUnlocalizedName().lastIndexOf('.') + 1, TConstructRegistry.tools.get(i).getUnlocalizedName().length()); + final String path = "/assets/tinkersdefense/textures/items/" + toolName + "/"; + + final ResourceLocation loc = new ResourceLocation( + "tinkersdefense:textures/items/"); + //final InputStream in = Minecraft.getMinecraft().getResourceManager().getResource(loc).getInputStream(); + //final List filenames = new ArrayList(); + //final File files = new File(Minecraft.getMinecraft().mcDataDir.getPath() + "/mods/tinkersdefense-1.3.6.jar"); + + final Path zipfile = Paths.get(Minecraft.getMinecraft().mcDataDir.getPath() + "/mods/tinkersdefense-1.3.6.jar"); + final FileSystem fs = FileSystems.newFileSystem(zipfile, Minecraft.class.getClassLoader()); + + final Path root = fs.getPath(path); + //final Iterable files = fs.getFileStores(); + final FileGetter fileget = new FileGetter(); + + Files.walkFileTree(root, fileget); + + //IDE + //final File files = new File(url.toURI()); + + if(TinkersDefense.config.debug) + { + for(final String file : fileget.filenames) + { + System.out.println(file); + } + } + setup(TConstructRegistry.tools.get(i), toolName, fileget.filenames, iconRegister); + } + } + + //} + //} + + private void setup(ToolCore tool, String name, List filenames, IIconRegister iconRegister) + { { heads.clear(); accessories.clear(); @@ -48,45 +98,116 @@ public class Injector extends ToolCore extraStrings.clear(); extraIcons.clear(); - final ToolCore tool = TConstructRegistry.tools.get(i); - final IIcon origHead = tool.headIcons.get(-1); final IIcon origAccessory = tool.accessoryIcons.get(-1); final IIcon origHandle = tool.handleIcons.get(-1); final IIcon origExtra = tool.extraIcons.get(-1); - if(tool.getToolName().equals("Battleaxe")) - { - BattleAxe(); - } - if(tool.getToolName().equals("Arrow")) - { - Arrow(); - } - if(tool.getToolName().equals("Broadsword")) - { - Broadsword(); - } - if(tool.getToolName().equals("Battlesign")) - { - Battlesign(); - } - if(tool.getToolName().equals("Hatchet")) - { - Axe(); - } - if(tool.getToolName().equals("Mattock")) - { - Mattock(); - } - if(tool.getToolName().equals("Longbow")) - { - Longbow(); - } - if(tool.getToolName().equals("HeaterShield")) + final ToolCoreTip tt = new ToolCoreTip(); + + tt.accessory = "Accessory"; + tt.head = "Head"; + tt.handle = "Handle"; + tt.extra = "Extra"; + + tt.headTT.add("Standard"); + tt.accessoryTT.add("Standard"); + tt.handleTT.add("Standard"); + tt.extraTT.add("Standard"); + + for(int i = 0; i < filenames.size(); i++) { - HeaterShield(); + final String filename = filenames.get(i); + + if(filename.contains("head")) + { + String formatted = filename.substring(0, filename.indexOf(".png")); + heads.add(formatted); + formatted = formatted.substring(1, formatted.length()); + formatted = formatted.replace('_', ' '); + tt.headTT.add(formatted); + } + + if(filename.contains("accessory")) + { + String formatted = filename.substring(0, filename.indexOf(".png")); + accessories.add(formatted); + formatted = formatted.substring(1, formatted.length()); + formatted.replace("_", " "); + tt.accessoryTT.add(formatted); + } + + if(filename.contains("handle")) + { + String formatted = filename.substring(0, filename.indexOf(".png")); + handles.add(formatted); + formatted = formatted.substring(1, formatted.length()); + formatted.replace("_", " "); + tt.handleTT.add(formatted); + } + + if(filename.contains("extra")) + { + String formatted = filename.substring(0, filename.indexOf(".png")); + extras.add(formatted); + formatted = formatted.substring(1, formatted.length()); + formatted.replace("_", " "); + tt.extraTT.add(formatted); + } } + // tt.headTT.add("Magic Backhead"); + // tt.headTT.add("Scythe Backhead"); + // + // extras.add("_magic_extra"); + // extras.add("_scythe_extra"); + // extras.add("_halbard_extra"); + // extras.add("_ornate_extra"); + // + // tt.extraTT.add("Halbard Head"); + // tt.extraTT.add("Magic Head"); + // tt.extraTT.add("Scythe Head"); + // tt.extraTT.add("Ornate Head"); + // + // accessories.add("_magic_accessory"); + // accessories.add("_halbard_accessory"); + // accessories.add("_knob_accessory"); + + //Metallurgy 5 + + tools.put(name, tt); + + // if(tool.getToolName().equals("Battleaxe")) + // { + // BattleAxe(); + // } + // if(tool.getToolName().equals("Arrow")) + // { + // Arrow(); + // } + // if(tool.getToolName().equals("Broadsword")) + // { + // Broadsword(); + // } + // if(tool.getToolName().equals("Battlesign")) + // { + // Battlesign(); + // } + // if(tool.getToolName().equals("Hatchet")) + // { + // Axe(); + // } + // if(tool.getToolName().equals("Mattock")) + // { + // Mattock(); + // } + // if(tool.getToolName().equals("Longbow")) + // { + // Longbow(); + // } + // if(tool.getToolName().equals("HeaterShield")) + // { + // HeaterShield(); + // } setupIcons(tool, iconRegister, heads, headStrings, headIcons); setupIcons(tool, iconRegister, accessories, accessoryStrings, accessoryIcons); setupIcons(tool, iconRegister, handles, handleStrings, handleIcons); @@ -114,7 +235,18 @@ public class Injector extends ToolCore @Override public void registerIcons(IIconRegister iconRegister) { - loadHeads(iconRegister); + try + { + loadHeads(iconRegister); + } + catch(final IOException e) + { + System.out.print("No Finishing Anvil for you"); + } + catch(final URISyntaxException e) + { + System.out.print("No Finishing Anvil for you"); + } } @Override diff --git a/src/main/java/lance5057/tDefense/finishingAnvil/utilities/ToolCoreTip.java b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/ToolCoreTip.java index 7da31f0..e93a11d 100644 --- a/src/main/java/lance5057/tDefense/finishingAnvil/utilities/ToolCoreTip.java +++ b/src/main/java/lance5057/tDefense/finishingAnvil/utilities/ToolCoreTip.java @@ -25,9 +25,9 @@ public class ToolCoreTip { case 1: return head; - case 2: - return handle; case 3: + return handle; + case 2: return accessory; case 4: return extra; @@ -41,16 +41,16 @@ public class ToolCoreTip switch(partId) { case 1: - if(headTT.size() > 0 && headTT.size() >= id - 1 && headTT.get(id) != null) + if(headTT.size() > 0 && headTT.size() - 1 >= id && headTT.get(id) != null) return headTT.get(id); - case 2: - if(handleTT.size() > 0 && handleTT.size() >= id - 1 && handleTT.get(id) != null) - return handleTT.get(id); case 3: - if(accessoryTT.size() > 0 && accessoryTT.size() >= id - 1 && accessoryTT.get(id) != null) + if(handleTT.size() > 0 && handleTT.size() - 1 >= id && handleTT.get(id) != null) + return handleTT.get(id); + case 2: + if(accessoryTT.size() > 0 && accessoryTT.size() - 1 >= id && accessoryTT.get(id) != null) return accessoryTT.get(id); case 4: - if(extraTT.size() > 0 && extraTT.size() >= id - 1 && extraTT.get(id) != null) + if(extraTT.size() > 0 && extraTT.size() - 1 >= id && extraTT.get(id) != null) return extraTT.get(id); default: return ""; -- cgit v1.2.3