From 7e6cd43d6ee64d37d0bb9974d13522082d0588fe Mon Sep 17 00:00:00 2001 From: dries007 Date: Sun, 17 Aug 2014 22:35:10 +0200 Subject: [PATCH] Update to fix a lot of issues --- build.gradle | 2 +- .../Lumberjack.java} | 42 +++++---- .../items/ItemLumberAxe.java | 31 +++++-- .../lumberjack/util/Constants.java | 83 ++++++++++++++++++ .../{timber => lumberjack}/util/Point.java | 2 +- .../doubledoordev/timber/util/Constants.java | 39 -------- .../{timber => lumberjack}/lang/en_US.lang | 0 .../textures/items/aluminium_lumberaxe.png | Bin .../textures/items/bronze_lumberaxe.png | Bin .../textures/items/copper_lumberaxe.png | Bin .../textures/items/diamond_lumberaxe.png | Bin .../textures/items/gold_lumberaxe.png | Bin .../textures/items/invar_lumberaxe.png | Bin .../textures/items/iron_lumberaxe.png | Bin .../textures/items/lead_lumberaxe.png | Bin .../textures/items/obsidian_lumberaxe.png | Bin .../textures/items/quartz_lumberaxe.png | Bin .../textures/items/silver_lumberaxe.png | Bin .../textures/items/steel_lumberaxe.png | Bin .../textures/items/stone_lumberaxe.png | Bin .../textures/items/tin_lumberaxe.png | Bin .../textures/items/wood_lumberaxe.png | Bin 22 files changed, 136 insertions(+), 63 deletions(-) rename src/main/java/net/doubledoordev/{timber/Timber.java => lumberjack/Lumberjack.java} (81%) rename src/main/java/net/doubledoordev/{timber => lumberjack}/items/ItemLumberAxe.java (75%) create mode 100644 src/main/java/net/doubledoordev/lumberjack/util/Constants.java rename src/main/java/net/doubledoordev/{timber => lumberjack}/util/Point.java (98%) delete mode 100644 src/main/java/net/doubledoordev/timber/util/Constants.java rename src/main/resources/assets/{timber => lumberjack}/lang/en_US.lang (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/aluminium_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/bronze_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/copper_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/diamond_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/gold_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/invar_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/iron_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/lead_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/obsidian_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/quartz_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/silver_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/steel_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/stone_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/tin_lumberaxe.png (100%) rename src/main/resources/assets/{timber => lumberjack}/textures/items/wood_lumberaxe.png (100%) diff --git a/build.gradle b/build.gradle index 37b9310..320f2e2 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ apply plugin: "maven" apply plugin: "idea-utils" group = "net.doubledoordev.timber" -version = "1.0.0" +version = "1.0.1" targetCompatibility = 1.7 sourceCompatibility = 1.7 diff --git a/src/main/java/net/doubledoordev/timber/Timber.java b/src/main/java/net/doubledoordev/lumberjack/Lumberjack.java similarity index 81% rename from src/main/java/net/doubledoordev/timber/Timber.java rename to src/main/java/net/doubledoordev/lumberjack/Lumberjack.java index 7a33df3..f0068cb 100644 --- a/src/main/java/net/doubledoordev/timber/Timber.java +++ b/src/main/java/net/doubledoordev/lumberjack/Lumberjack.java @@ -28,7 +28,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.doubledoordev.timber; +package net.doubledoordev.lumberjack; import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableSet; @@ -39,8 +39,8 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import net.doubledoordev.lib.DevPerks; -import net.doubledoordev.timber.items.ItemLumberAxe; -import net.doubledoordev.timber.util.Point; +import net.doubledoordev.lumberjack.items.ItemLumberAxe; +import net.doubledoordev.lumberjack.util.Point; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayerMP; @@ -51,22 +51,24 @@ import net.minecraftforge.event.world.BlockEvent; import org.apache.logging.log4j.Logger; -import static net.doubledoordev.timber.util.Constants.MODID; +import java.util.HashSet; + +import static net.doubledoordev.lumberjack.util.Constants.*; /** * @author Dries007 */ @Mod(modid = MODID) -public class Timber +public class Lumberjack { @Mod.Instance(MODID) - public static Timber instance; + public static Lumberjack instance; public Logger logger; - public boolean debug = false; - public int limit = 1024; - public int mode = 0; - public boolean leaves = false; + public boolean debug = false; + public int limit = 1024; + public int mode = 0; + public boolean leaves = false; public HashMultimap pointMap = HashMultimap.create(); public HashMultimap nextMap = HashMultimap.create(); @@ -93,17 +95,25 @@ public void preInit(FMLPreInitializationEvent event) public void init(FMLInitializationEvent event) { if (debug) logger.info("Registering all tools"); + HashSet items = new HashSet<>(Item.ToolMaterial.values().length); for (Item.ToolMaterial material : Item.ToolMaterial.values()) { - try - { - new ItemLumberAxe(material); - } - catch (Exception e) + if (material.func_150995_f() == null && debug) logger.warn("The ToolMaterial " + material + " doesn't have a crafting item set. No LumberAxe from that!"); + else if (items.contains(material.func_150995_f()) && debug) logger.warn("The ToolMaterial " + material + " uses an item that has already been used."); + else { - // Noop + try + { + new ItemLumberAxe(material); + items.add(material.func_150995_f()); + } + catch (Exception e) + { + // Noop + } } } + if (debug) logger.info("Table of materials: \n" + makeTable(new TableData("Tool Material", ItemLumberAxe.toolMaterials), new TableData("Texture string", ItemLumberAxe.textureStrings), new TableData("Item name", ItemLumberAxe.itemNames), new TableData("Crafting Items", ItemLumberAxe.craftingItems))); } @SubscribeEvent diff --git a/src/main/java/net/doubledoordev/timber/items/ItemLumberAxe.java b/src/main/java/net/doubledoordev/lumberjack/items/ItemLumberAxe.java similarity index 75% rename from src/main/java/net/doubledoordev/timber/items/ItemLumberAxe.java rename to src/main/java/net/doubledoordev/lumberjack/items/ItemLumberAxe.java index 6242283..262182b 100644 --- a/src/main/java/net/doubledoordev/timber/items/ItemLumberAxe.java +++ b/src/main/java/net/doubledoordev/lumberjack/items/ItemLumberAxe.java @@ -28,10 +28,9 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.doubledoordev.timber.items; +package net.doubledoordev.lumberjack.items; import cpw.mods.fml.common.registry.GameRegistry; -import net.doubledoordev.timber.Timber; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; @@ -43,8 +42,9 @@ import net.minecraftforge.oredict.ShapedOreRecipe; import java.lang.reflect.Field; +import java.util.ArrayList; -import static net.doubledoordev.timber.util.Constants.MODID; +import static net.doubledoordev.lumberjack.util.Constants.MODID; /** * @author Dries007 @@ -57,6 +57,11 @@ public class ItemLumberAxe extends ItemAxe damageVsEntityField.setAccessible(true); } + public static ArrayList toolMaterials = new ArrayList<>(); + public static ArrayList textureStrings = new ArrayList<>(); + public static ArrayList itemNames = new ArrayList<>(); + public static ArrayList craftingItems = new ArrayList<>(); + public ItemLumberAxe(ToolMaterial toolMaterial) { super(toolMaterial); @@ -72,7 +77,9 @@ public ItemLumberAxe(ToolMaterial toolMaterial) setUnlocalizedName(name); GameRegistry.registerItem(this, name); - if (Timber.instance.debug) Timber.instance.logger.info(String.format("ToolMaterial: %s \tTexture string: %s \tItem name: %s", toolMaterial, iconString, name)); + toolMaterials.add(toolMaterial.toString()); + textureStrings.add(iconString); + itemNames.add(name); try { @@ -83,11 +90,23 @@ public ItemLumberAxe(ToolMaterial toolMaterial) e.printStackTrace(); } + String items = ""; ItemStack craftingItem = new ItemStack(toolMaterial.func_150995_f()); - for (int id : OreDictionary.getOreIDs(craftingItem)) + int[] ids = OreDictionary.getOreIDs(craftingItem); + if (ids.length == 0) + { + GameRegistry.addRecipe(new ShapedOreRecipe(this, "XX", "SX", "SX", 'S', "stickWood", 'X', craftingItem).setMirrored(true)); + items = craftingItem.getUnlocalizedName(); + } + else { - GameRegistry.addRecipe(new ShapedOreRecipe(this, "XX", "SX", "SX", 'S', "stickWood", 'X', OreDictionary.getOreName(id)).setMirrored(true)); + for (int id : ids) + { + GameRegistry.addRecipe(new ShapedOreRecipe(this, "XX", "SX", "SX", 'S', "stickWood", 'X', OreDictionary.getOreName(id)).setMirrored(true)); + items += OreDictionary.getOreName(id) + ", "; + } } + craftingItems.add(items); } @Override diff --git a/src/main/java/net/doubledoordev/lumberjack/util/Constants.java b/src/main/java/net/doubledoordev/lumberjack/util/Constants.java new file mode 100644 index 0000000..3e4fd10 --- /dev/null +++ b/src/main/java/net/doubledoordev/lumberjack/util/Constants.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2014, DoubleDoorDevelopment + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * Neither the name of the project nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package net.doubledoordev.lumberjack.util; + +import java.util.ArrayList; + +/** + * @author Dries007 + */ +public class Constants +{ + public static final String MODID = "Lumberjack"; + + public static final class TableData + { + public String header; + public ArrayList strings; + private int width; + + public TableData(String header, ArrayList data) + { + this.header = header; + this.strings = data; + width = header.length(); + + updateWidth(); + } + + private void updateWidth() + { + for (String string : strings) if (width < string.length()) width = string.length(); + } + } + + public static String makeTable(TableData... datas) + { + int size = 0; + for (TableData data : datas) size += data.width * data.strings.size(); + StringBuilder stringBuilder = new StringBuilder(size); + + for (TableData data : datas) stringBuilder.append('|').append(' ').append(data.header).append(new String(new char[data.width - data.header.length() + 1]).replace('\0', ' ')); + stringBuilder.append('|').append('\n'); + for (TableData data : datas) stringBuilder.append('+').append(new String(new char[data.width + 2]).replace('\0', '-')); + stringBuilder.append('+').append('\n'); + int i = 0; + while (i < datas[0].strings.size()) + { + for (TableData data : datas) stringBuilder.append('|').append(' ').append(data.strings.get(i)).append(new String(new char[data.width - data.strings.get(i).length() + 1]).replace('\0', ' ')); + stringBuilder.append('|').append('\n'); + i++; + } + + return stringBuilder.toString(); + } +} diff --git a/src/main/java/net/doubledoordev/timber/util/Point.java b/src/main/java/net/doubledoordev/lumberjack/util/Point.java similarity index 98% rename from src/main/java/net/doubledoordev/timber/util/Point.java rename to src/main/java/net/doubledoordev/lumberjack/util/Point.java index 254643b..a32b2ba 100644 --- a/src/main/java/net/doubledoordev/timber/util/Point.java +++ b/src/main/java/net/doubledoordev/lumberjack/util/Point.java @@ -28,7 +28,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.doubledoordev.timber.util; +package net.doubledoordev.lumberjack.util; /** * @author Dries007 diff --git a/src/main/java/net/doubledoordev/timber/util/Constants.java b/src/main/java/net/doubledoordev/timber/util/Constants.java deleted file mode 100644 index 7aaa696..0000000 --- a/src/main/java/net/doubledoordev/timber/util/Constants.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2014, DoubleDoorDevelopment - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of the project nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package net.doubledoordev.timber.util; - -/** - * @author Dries007 - */ -public class Constants -{ - public static final String MODID = "Timber"; -} diff --git a/src/main/resources/assets/timber/lang/en_US.lang b/src/main/resources/assets/lumberjack/lang/en_US.lang similarity index 100% rename from src/main/resources/assets/timber/lang/en_US.lang rename to src/main/resources/assets/lumberjack/lang/en_US.lang diff --git a/src/main/resources/assets/timber/textures/items/aluminium_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/aluminium_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/aluminium_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/aluminium_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/bronze_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/bronze_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/bronze_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/bronze_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/copper_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/copper_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/copper_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/copper_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/diamond_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/diamond_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/diamond_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/diamond_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/gold_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/gold_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/gold_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/gold_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/invar_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/invar_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/invar_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/invar_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/iron_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/iron_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/iron_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/iron_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/lead_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/lead_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/lead_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/lead_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/obsidian_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/obsidian_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/obsidian_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/obsidian_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/quartz_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/quartz_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/quartz_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/quartz_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/silver_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/silver_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/silver_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/silver_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/steel_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/steel_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/steel_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/steel_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/stone_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/stone_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/stone_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/stone_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/tin_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/tin_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/tin_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/tin_lumberaxe.png diff --git a/src/main/resources/assets/timber/textures/items/wood_lumberaxe.png b/src/main/resources/assets/lumberjack/textures/items/wood_lumberaxe.png similarity index 100% rename from src/main/resources/assets/timber/textures/items/wood_lumberaxe.png rename to src/main/resources/assets/lumberjack/textures/items/wood_lumberaxe.png