From db4f3abdb2a2d46de35bd624ab1eacd3fdd9f18a Mon Sep 17 00:00:00 2001 From: TrainerGuy22 Date: Thu, 19 Jun 2014 10:02:37 -0400 Subject: [PATCH] This commit is big? Says who? - I broke ModStats, and will be fixing it. - Converted to libsandstone, our awesome new mod framework. Found here, https://www.github.com/EnderWizards/libsandstone - Reliquary *should* be 1.7.10 compatible out of the box. Don't quote me on that. - Finally implemented the amazing TOML config system, with some help from libsandstone. - Serpent Staff now works, and is pretty awesome (cool particle effects included). - Moved stuff around. I think I'm finally happy with the package structure. --- gradlew | 0 gradlew.bat | 0 .../org/modstats/reporter/v1/Reporter.java | 37 -------- src/main/java/xreliquary/CreativeTabXR.java | 2 +- src/main/java/xreliquary/Reliquary.java | 46 +++++---- .../blocks/BlockAlkahestryAltar.java | 8 +- .../blocks/BlockApothecaryCauldron.java | 13 ++- .../blocks/BlockApothecaryMortar.java | 16 +--- .../blocks/BlockFertileLilypad.java | 10 +- .../blocks/BlockInterdictionTorch.java | 8 +- .../xreliquary/blocks/BlockWraithNode.java | 4 +- .../blocks/tile/TileEntityAltar.java | 4 +- .../blocks/tile/TileEntityCauldron.java | 4 +- .../blocks/tile/TileEntityMortar.java | 19 +--- .../java/xreliquary/client/ClientProxy.java | 3 +- .../client/gui/GuiAlkahestTome.java | 12 +-- .../java/xreliquary/client/gui/GuiBase.java | 75 --------------- .../xreliquary/client/model/ModelHandgun.java | 0 .../client/render/ItemRendererHandgun.java | 0 .../java/xreliquary/common/CommonProxy.java | 31 ++---- .../entities/ConcussiveExplosion.java | 2 - .../xreliquary/entities/EntityBlazeShot.java | 0 .../xreliquary/entities/EntityBusterShot.java | 0 .../entities/EntityConcussiveShot.java | 0 .../entities/EntityCondensedFertility.java | 0 .../EntityCondensedSplashAphrodite.java | 0 .../EntityCondensedSplashBlindness.java | 0 .../EntityCondensedSplashConfusion.java | 0 .../entities/EntityCondensedSplashHarm.java | 0 .../entities/EntityCondensedSplashPoison.java | 0 .../entities/EntityCondensedSplashRuin.java | 0 .../EntityCondensedSplashSlowness.java | 0 .../EntityCondensedSplashWeakness.java | 0 .../entities/EntityCondensedSplashWither.java | 0 .../xreliquary/entities/EntityEnderShot.java | 0 .../entities/EntityExorcismShot.java | 0 .../entities/EntityGlowingWater.java | 0 .../entities/EntityHolyHandGrenade.java | 0 .../entities/EntityKrakenSlime.java | 64 +++++++++++++ .../entities/EntityNeutralShot.java | 0 .../xreliquary/entities/EntitySandShot.java | 0 .../xreliquary/entities/EntitySeekerShot.java | 0 .../entities/EntitySpecialSnowball.java | 0 .../xreliquary/entities/EntityStormShot.java | 0 .../xreliquary/event/ClientEventHandler.java | 4 +- .../xreliquary/event/CommonEventHandler.java | 13 ++- .../java/xreliquary/init/ContentHandler.java | 79 ---------------- src/main/java/xreliquary/init/XRInit.java | 9 -- src/main/java/xreliquary/init/XRRecipes.java | 8 +- .../xreliquary/items/IVoidUpgradable.java | 0 .../xreliquary/items/ItemAlkahestryTome.java | 13 +-- .../xreliquary/items/ItemAngelheartVial.java | 12 +-- .../xreliquary/items/ItemAngelicFeather.java | 12 +-- src/main/java/xreliquary/items/ItemBase.java | 88 ------------------ .../java/xreliquary/items/ItemBullet.java | 7 +- .../items/ItemClawsOfTheFiredrinker.java | 7 +- .../xreliquary/items/ItemCondensedPotion.java | 9 +- .../xreliquary/items/ItemCrimsonCloth.java | 7 +- .../items/ItemDestructionCatalyst.java | 11 ++- .../xreliquary/items/ItemDragonClaws.java | 7 +- .../xreliquary/items/ItemDragonTalon.java | 7 +- .../xreliquary/items/ItemElsewhereFlask.java | 13 +-- .../xreliquary/items/ItemEmperorChalice.java | 18 ++-- .../xreliquary/items/ItemEmptyVoidTear.java | 16 ++-- .../java/xreliquary/items/ItemEnderStaff.java | 9 +- .../xreliquary/items/ItemFortuneCoin.java | 13 +-- .../xreliquary/items/ItemGlowingBread.java | 6 +- .../xreliquary/items/ItemGlowingWater.java | 9 +- .../java/xreliquary/items/ItemGunPart.java | 7 +- .../java/xreliquary/items/ItemHandgun.java | 9 +- .../xreliquary/items/ItemHeroMedallion.java | 13 +-- .../xreliquary/items/ItemHolyHandGrenade.java | 7 +- .../java/xreliquary/items/ItemIceRod.java | 7 +- .../xreliquary/items/ItemKrakenShell.java | 7 +- .../items/ItemKrakenShellFragment.java | 7 +- .../java/xreliquary/items/ItemMagazine.java | 9 +- .../java/xreliquary/items/ItemMagicbane.java | 6 +- .../java/xreliquary/items/ItemMercyCross.java | 6 +- .../xreliquary/items/ItemMidasTouchstone.java | 7 +- .../xreliquary/items/ItemPhoenixDown.java | 6 +- .../xreliquary/items/ItemSalamanderEye.java | 17 ++-- .../xreliquary/items/ItemSerpentStaff.java | 50 +++++++++- .../xreliquary/items/ItemSojournerStaff.java | 16 ++-- .../java/xreliquary/items/ItemSquidBeak.java | 10 +- .../xreliquary/items/ItemTwilightCloak.java | 14 +-- .../java/xreliquary/items/ItemVoidTear.java | 10 +- .../xreliquary/items/ItemWitherlessRose.java | 7 +- .../java/xreliquary/items/ItemWraithEye.java | 15 ++- .../alkahestry/AlkahestryCraftingRecipe.java | 18 ++-- .../alkahestry/AlkahestryRedstoneRecipe.java | 18 ++-- .../xreliquary/items/block/ItemBlockBase.java | 77 --------------- .../items/block/ItemFertileLilypad.java | 2 +- src/main/java/xreliquary/lib/Colors.java | 19 ---- src/main/java/xreliquary/lib/Names.java | 2 +- src/main/java/xreliquary/lib/Reference.java | 0 .../java/xreliquary/util/LanguageHelper.java | 45 --------- src/main/java/xreliquary/util/LogHelper.java | 17 ---- .../java/xreliquary/util/ObjectUtils.java | 50 ---------- .../util/alkahestry/Alkahestry.java | 4 +- src/main/java/xreliquary/util/misc/Duo.java | 13 --- .../util/potions/PotionEssence.java | 2 - .../util/potions/PotionIngredient.java | 2 +- .../assets/xreliquary/lang/en_US.lang | 14 +-- .../textures/blocks/._interdiction_torch.png | Bin 0 -> 4096 bytes .../xreliquary/textures/blocks/altar.png | Bin .../xreliquary/textures/blocks/altar_idle.png | Bin .../blocks/apothecary_cauldron_inside.png | Bin .../textures/blocks/interdiction_torch.png | Bin .../xreliquary/textures/blocks/lilypad.png | Bin .../textures/blocks/wraith_node.png | Bin .../textures/blocks/wraith_node_top.png | Bin .../textures/entities/blazeShot.png | Bin .../textures/entities/busterShot.png | Bin .../textures/entities/concussiveShot.png | Bin .../textures/entities/enderShot.png | Bin .../textures/entities/exorcismShot.png | Bin .../textures/entities/neutralShot.png | Bin .../xreliquary/textures/entities/sandShot.png | Bin .../textures/entities/seekerShot.png | Bin .../textures/entities/stormShot.png | Bin .../textures/entities/thrownItemsSheet.png | Bin 25089 -> 2004 bytes .../assets/xreliquary/textures/gui/book.png | Bin .../textures/items/._serpent_staff.png | Bin 0 -> 4096 bytes .../textures/items/alkahest_tome.png | Bin .../xreliquary/textures/items/bullet.png | Bin .../textures/items/bullet_overlay.png | Bin .../textures/items/condensed_potion.png | Bin .../items/condensed_potion_overlay.png | Bin .../items/condensed_potion_splash.png | Bin .../items/condensed_potion_splash_overlay.png | Bin .../textures/items/destruction_catalyst.png | Bin .../textures/items/emperor_chalice.png | Bin .../items/emperor_chalice_overlay.png | Bin .../textures/items/fortune_coin.png | Bin .../textures/items/fortune_coin_overlay.png | Bin .../textures/items/glowing_bread.png | Bin .../textures/items/glowing_water.png | Bin .../xreliquary/textures/items/gun_part_0.png | Bin .../xreliquary/textures/items/gun_part_1.png | Bin .../xreliquary/textures/items/gun_part_2.png | Bin .../xreliquary/textures/items/handgun.png | Bin .../textures/items/handgun_overlay.png | Bin .../textures/items/holy_hand_grenade.png | Bin .../xreliquary/textures/items/lilypad.png | Bin .../xreliquary/textures/items/magazine.png | Bin .../textures/items/magazine_overlay.png | Bin .../xreliquary/textures/items/magicbane.png | Bin .../xreliquary/textures/items/mercy_cross.png | Bin .../textures/items/midas_touchstone.png | Bin .../textures/items/salamander_eye.png | Bin .../textures/items/sojourner_staff.png | Bin .../xreliquary/textures/items/void_tear.png | Bin .../textures/items/void_tear_empty.png | Bin .../textures/items/witherless_rose.png | Bin .../xreliquary/textures/items/wraith_eye.png | Bin .../xreliquary/textures/logo/xrlogo.png | Bin .../xreliquary/textures/models/handgun.png | Bin .../xreliquary/textures/templates/Blank.png | Bin src/main/resources/mcmod.info | 0 159 files changed, 412 insertions(+), 836 deletions(-) mode change 100755 => 100644 gradlew mode change 100644 => 100755 gradlew.bat delete mode 100644 src/main/java/org/modstats/reporter/v1/Reporter.java mode change 100755 => 100644 src/main/java/xreliquary/CreativeTabXR.java mode change 100755 => 100644 src/main/java/xreliquary/Reliquary.java mode change 100755 => 100644 src/main/java/xreliquary/blocks/BlockFertileLilypad.java mode change 100755 => 100644 src/main/java/xreliquary/blocks/BlockWraithNode.java mode change 100755 => 100644 src/main/java/xreliquary/blocks/tile/TileEntityAltar.java mode change 100755 => 100644 src/main/java/xreliquary/client/ClientProxy.java delete mode 100644 src/main/java/xreliquary/client/gui/GuiBase.java mode change 100755 => 100644 src/main/java/xreliquary/client/model/ModelHandgun.java mode change 100755 => 100644 src/main/java/xreliquary/client/render/ItemRendererHandgun.java mode change 100755 => 100644 src/main/java/xreliquary/common/CommonProxy.java mode change 100755 => 100644 src/main/java/xreliquary/entities/ConcussiveExplosion.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityBlazeShot.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityBusterShot.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityConcussiveShot.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityCondensedFertility.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityCondensedSplashAphrodite.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityCondensedSplashBlindness.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityCondensedSplashConfusion.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityCondensedSplashHarm.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityCondensedSplashPoison.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityCondensedSplashRuin.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityCondensedSplashSlowness.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityCondensedSplashWeakness.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityCondensedSplashWither.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityEnderShot.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityExorcismShot.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityGlowingWater.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityHolyHandGrenade.java create mode 100644 src/main/java/xreliquary/entities/EntityKrakenSlime.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityNeutralShot.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntitySandShot.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntitySeekerShot.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntitySpecialSnowball.java mode change 100755 => 100644 src/main/java/xreliquary/entities/EntityStormShot.java mode change 100755 => 100644 src/main/java/xreliquary/event/CommonEventHandler.java delete mode 100644 src/main/java/xreliquary/init/ContentHandler.java delete mode 100644 src/main/java/xreliquary/init/XRInit.java mode change 100755 => 100644 src/main/java/xreliquary/items/IVoidUpgradable.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemAlkahestryTome.java delete mode 100644 src/main/java/xreliquary/items/ItemBase.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemBullet.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemCondensedPotion.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemDestructionCatalyst.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemEmperorChalice.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemEmptyVoidTear.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemFortuneCoin.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemGlowingBread.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemGlowingWater.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemGunPart.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemHandgun.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemHolyHandGrenade.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemIceRod.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemMagazine.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemMagicbane.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemMercyCross.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemMidasTouchstone.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemSalamanderEye.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemSojournerStaff.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemVoidTear.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemWitherlessRose.java mode change 100755 => 100644 src/main/java/xreliquary/items/ItemWraithEye.java delete mode 100644 src/main/java/xreliquary/items/block/ItemBlockBase.java mode change 100755 => 100644 src/main/java/xreliquary/items/block/ItemFertileLilypad.java mode change 100755 => 100644 src/main/java/xreliquary/lib/Colors.java mode change 100755 => 100644 src/main/java/xreliquary/lib/Names.java mode change 100755 => 100644 src/main/java/xreliquary/lib/Reference.java delete mode 100644 src/main/java/xreliquary/util/LanguageHelper.java delete mode 100755 src/main/java/xreliquary/util/LogHelper.java delete mode 100644 src/main/java/xreliquary/util/ObjectUtils.java delete mode 100644 src/main/java/xreliquary/util/misc/Duo.java create mode 100644 src/main/resources/assets/xreliquary/textures/blocks/._interdiction_torch.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/blocks/altar.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/blocks/altar_idle.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/blocks/apothecary_cauldron_inside.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/blocks/interdiction_torch.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/blocks/lilypad.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/blocks/wraith_node.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/blocks/wraith_node_top.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/entities/blazeShot.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/entities/busterShot.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/entities/concussiveShot.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/entities/enderShot.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/entities/exorcismShot.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/entities/neutralShot.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/entities/sandShot.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/entities/seekerShot.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/entities/stormShot.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/entities/thrownItemsSheet.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/gui/book.png create mode 100644 src/main/resources/assets/xreliquary/textures/items/._serpent_staff.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/alkahest_tome.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/bullet.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/bullet_overlay.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/condensed_potion.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/condensed_potion_overlay.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/condensed_potion_splash.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/condensed_potion_splash_overlay.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/destruction_catalyst.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/emperor_chalice.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/emperor_chalice_overlay.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/fortune_coin.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/fortune_coin_overlay.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/glowing_bread.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/glowing_water.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/gun_part_0.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/gun_part_1.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/gun_part_2.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/handgun.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/handgun_overlay.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/holy_hand_grenade.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/lilypad.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/magazine.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/magazine_overlay.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/magicbane.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/mercy_cross.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/midas_touchstone.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/salamander_eye.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/sojourner_staff.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/void_tear.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/void_tear_empty.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/witherless_rose.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/items/wraith_eye.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/logo/xrlogo.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/models/handgun.png mode change 100755 => 100644 src/main/resources/assets/xreliquary/textures/templates/Blank.png mode change 100755 => 100644 src/main/resources/mcmod.info diff --git a/gradlew b/gradlew old mode 100755 new mode 100644 diff --git a/gradlew.bat b/gradlew.bat old mode 100644 new mode 100755 diff --git a/src/main/java/org/modstats/reporter/v1/Reporter.java b/src/main/java/org/modstats/reporter/v1/Reporter.java deleted file mode 100644 index f68308a4..00000000 --- a/src/main/java/org/modstats/reporter/v1/Reporter.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) <2012-2014>, Oleg Romanovskiy aka Shedar - * 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 author 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 OWNER 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 org.modstats.reporter.v1; - -/** - * Obsolete. - * @deprecated See org.modstats.reporter.v2 - */ -@Deprecated() -public class Reporter -{ -} diff --git a/src/main/java/xreliquary/CreativeTabXR.java b/src/main/java/xreliquary/CreativeTabXR.java old mode 100755 new mode 100644 index e52b75f2..e3244f5b --- a/src/main/java/xreliquary/CreativeTabXR.java +++ b/src/main/java/xreliquary/CreativeTabXR.java @@ -2,7 +2,7 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; -import xreliquary.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentHandler; import xreliquary.lib.Names; public class CreativeTabXR extends CreativeTabs { diff --git a/src/main/java/xreliquary/Reliquary.java b/src/main/java/xreliquary/Reliquary.java old mode 100755 new mode 100644 index 93e768ba..76301997 --- a/src/main/java/xreliquary/Reliquary.java +++ b/src/main/java/xreliquary/Reliquary.java @@ -1,24 +1,28 @@ package xreliquary; +import java.io.File; + +import lib.enderwizards.sandstone.Sandstone; +import lib.enderwizards.sandstone.mod.SandstoneMod; +import lib.enderwizards.sandstone.mod.config.Configuration; +import lib.enderwizards.sandstone.mod.config.TomlConfig; import net.minecraft.item.Item; + import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.modstats.ModstatInfo; import org.modstats.Modstats; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - -// TODO: Use jTOML (https://github.com/asafh/jtoml) over Forge's configuration system. This will allow for a better/cleaner syntax, since we only need the config for options now (since IDs don't conflict anymore, because they don't exist). -import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.MinecraftForge; - import xreliquary.items.ItemDestructionCatalyst; import xreliquary.util.alkahestry.Alkahestry; import xreliquary.lib.Reference; import xreliquary.common.CommonProxy; import xreliquary.util.alkahestry.AlkahestRecipe; -import xreliquary.util.LogHelper; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; @@ -32,7 +36,8 @@ import cpw.mods.fml.relauncher.Side; @ModstatInfo(prefix = "reliquary") -@Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION) +@Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION, dependencies = "required-after:libsandstone") +@SandstoneMod(basePackage = "xreliquary") public class Reliquary { @Instance(Reference.MOD_ID) @@ -41,31 +46,32 @@ public class Reliquary { @SidedProxy(clientSide = Reference.CLIENT_PROXY, serverSide = Reference.COMMON_PROXY) public static CommonProxy PROXY; - public static Configuration CONFIG; + public static TomlConfig CONFIG; public static CreativeTabs CREATIVE_TAB = new CreativeTabXR(CreativeTabs.getNextID(), Reference.MOD_ID); + public static Logger LOGGER = LogManager.getLogger(Reference.MOD_ID); - @EventHandler + @EventHandler public void preInit(FMLPreInitializationEvent event) { - CONFIG = new Configuration(event.getSuggestedConfigurationFile()); - - CONFIG.load(); + CONFIG = Configuration.toml(new File(event.getModConfigurationDirectory(), Reference.MOD_ID + ".toml")); + + PROXY.initOptions(); + Sandstone.preInit(); PROXY.preInit(); - CONFIG.save(); } @EventHandler - public void load(FMLInitializationEvent event) { - Modstats.instance().getReporter().registerMod(this); + public void init(FMLInitializationEvent event) { + // Modstats.instance().getReporter().registerMod(this); PROXY.init(); MinecraftForge.EVENT_BUS.register(this); } @EventHandler - public void modsLoaded(FMLPostInitializationEvent event) { - LogHelper.log(Level.INFO, "Loaded successfully!"); + public void postInit(FMLPostInitializationEvent event) { + LOGGER.log(Level.INFO, "Loaded successfully!"); if (event.getSide() == Side.CLIENT && Loader.isModLoaded("NotEnoughItems")) { - LogHelper.log(Level.INFO, "Hey NEI! I got a plugin for you! (hopefully in the near future)."); + LOGGER.log(Level.INFO, "Hey NEI! I got a plugin for you! (hopefully in the near future)."); } } @@ -73,7 +79,7 @@ public void modsLoaded(FMLPostInitializationEvent event) { public void onMessage(IMCEvent event) { for (IMCMessage message : event.getMessages()) { if (message.key.equals("DestructionCatalyst")) { - LogHelper.log(Level.INFO, "[IMC] Added block " + message.getStringValue() + " from " + message.getSender() + " was added to the Destruction Catalyst's registry."); + LOGGER.log(Level.INFO, "[IMC] Added block " + message.getStringValue() + " from " + message.getSender() + " was added to the Destruction Catalyst's registry."); ItemDestructionCatalyst.ids.add(message.getStringValue()); } else if (message.key.equals("Alkahest")) { NBTTagCompound tag = message.getNBTValue(); @@ -82,9 +88,9 @@ public void onMessage(IMCEvent event) { Alkahestry.addKey(new AlkahestRecipe(tag.getString("dictionaryName"), tag.getInteger("yield"), tag.getInteger("cost"))); else Alkahestry.addKey(new AlkahestRecipe(ItemStack.loadItemStackFromNBT(tag.getCompoundTag("item")), tag.getInteger("yield"), tag.getInteger("cost"))); - LogHelper.log(Level.INFO, "[IMC] Added AlkahestRecipe ID: " + Item.itemRegistry.getNameForObject(ItemStack.loadItemStackFromNBT(tag.getCompoundTag("item"))) + " from " + message.getSender() + " to registry."); + LOGGER.log(Level.INFO, "[IMC] Added AlkahestRecipe ID: " + Item.itemRegistry.getNameForObject(ItemStack.loadItemStackFromNBT(tag.getCompoundTag("item"))) + " from " + message.getSender() + " to registry."); } else { - LogHelper.log(Level.WARN, "[IMC] Invalid AlkahestRecipe from " + message.getSender() + "! Please contact the mod author if you see this error occurring."); + LOGGER.log(Level.WARN, "[IMC] Invalid AlkahestRecipe from " + message.getSender() + "! Please contact the mod author if you see this error occurring."); } } } diff --git a/src/main/java/xreliquary/blocks/BlockAlkahestryAltar.java b/src/main/java/xreliquary/blocks/BlockAlkahestryAltar.java index de3128b5..56c4b3d7 100644 --- a/src/main/java/xreliquary/blocks/BlockAlkahestryAltar.java +++ b/src/main/java/xreliquary/blocks/BlockAlkahestryAltar.java @@ -14,8 +14,8 @@ import net.minecraft.world.World; import xreliquary.Reliquary; import xreliquary.blocks.tile.TileEntityAltar; -import xreliquary.init.ContentHandler; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; @@ -23,14 +23,14 @@ public class BlockAlkahestryAltar extends BlockContainer { - @XRInit + @ContentInit static public class BlockActiveAlkahestryAltar extends BlockAlkahestryAltar { public BlockActiveAlkahestryAltar() { super(true); } } - @XRInit + @ContentInit static public class BlockIdleAlkahestryAltar extends BlockAlkahestryAltar { public BlockIdleAlkahestryAltar() { super(false); diff --git a/src/main/java/xreliquary/blocks/BlockApothecaryCauldron.java b/src/main/java/xreliquary/blocks/BlockApothecaryCauldron.java index 1f26cdb5..ef20c52f 100644 --- a/src/main/java/xreliquary/blocks/BlockApothecaryCauldron.java +++ b/src/main/java/xreliquary/blocks/BlockApothecaryCauldron.java @@ -22,16 +22,16 @@ import xreliquary.Reliquary; import xreliquary.blocks.tile.TileEntityCauldron; import xreliquary.client.render.RenderApothecaryCauldron; -import xreliquary.init.ContentHandler; -import xreliquary.init.XRInit; -import xreliquary.items.block.ItemBlockBase; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentInit; +import lib.enderwizards.sandstone.items.block.ItemBlockBase; import xreliquary.lib.Names; import xreliquary.lib.Reference; import java.util.List; import java.util.Random; -@XRInit(itemBlock = ItemBlockBase.class) +@ContentInit(itemBlock = ItemBlockBase.class) public class BlockApothecaryCauldron extends BlockContainer { public BlockApothecaryCauldron() { @@ -92,9 +92,8 @@ public void addCollisionBoxesToList(World world, int x, int y, int z, AxisAligne //called by the renderer to get the texture in a static method. @SideOnly(Side.CLIENT) - public static IIcon getCauldronIcon(String textureName) - { - BlockApothecaryCauldron cauldronStatic = (BlockApothecaryCauldron)ContentHandler.getBlock(Names.apothecary_cauldron); + public static IIcon getCauldronIcon(String textureName) { + BlockApothecaryCauldron cauldronStatic = (BlockApothecaryCauldron) ContentHandler.getBlock(Names.apothecary_cauldron); return textureName.equals("inner") ? cauldronStatic.innerTexture : (textureName.equals("bottom") ? cauldronStatic.bottomTexture : textureName.equals("inside") ? cauldronStatic.insideTexture : null); } diff --git a/src/main/java/xreliquary/blocks/BlockApothecaryMortar.java b/src/main/java/xreliquary/blocks/BlockApothecaryMortar.java index 6da4ab8d..6023257b 100644 --- a/src/main/java/xreliquary/blocks/BlockApothecaryMortar.java +++ b/src/main/java/xreliquary/blocks/BlockApothecaryMortar.java @@ -6,34 +6,26 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; import net.minecraft.item.Item; -import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.blocks.tile.TileEntityCauldron; import xreliquary.blocks.tile.TileEntityMortar; -import xreliquary.client.render.RenderApothecaryCauldron; -import xreliquary.client.render.RenderApothecaryMortar; -import xreliquary.init.ContentHandler; -import xreliquary.init.XRInit; -import xreliquary.items.block.ItemBlockBase; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentInit; +import lib.enderwizards.sandstone.items.block.ItemBlockBase; import xreliquary.lib.Names; import xreliquary.lib.Reference; import java.util.List; import java.util.Random; -@XRInit(itemBlock = ItemBlockBase.class) +@ContentInit(itemBlock = ItemBlockBase.class) public class BlockApothecaryMortar extends BlockContainer { public BlockApothecaryMortar() { diff --git a/src/main/java/xreliquary/blocks/BlockFertileLilypad.java b/src/main/java/xreliquary/blocks/BlockFertileLilypad.java old mode 100755 new mode 100644 index 606bf2e6..6f110a12 --- a/src/main/java/xreliquary/blocks/BlockFertileLilypad.java +++ b/src/main/java/xreliquary/blocks/BlockFertileLilypad.java @@ -6,9 +6,9 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.items.block.ItemFertileLilypad; -import xreliquary.util.ObjectUtils; +import lib.enderwizards.sandstone.util.ContentHelper; import net.minecraft.block.Block; import net.minecraft.block.BlockFlower; import net.minecraft.block.material.Material; @@ -26,7 +26,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit(itemBlock = ItemFertileLilypad.class) +@ContentInit(itemBlock = ItemFertileLilypad.class) public class BlockFertileLilypad extends BlockFlower { public BlockFertileLilypad() { @@ -72,7 +72,7 @@ public void growCropsNearby(World world, int xO, int yO, int zO) { int z = zO + zD; Block block = world.getBlock(x, y, z); - if (block != null && Block.blockRegistry.getNameForObject(block).equals(ObjectUtils.getBlockIdentifier(block))) { + if (block != null && Block.blockRegistry.getNameForObject(block).equals(ContentHelper.getIndent(block))) { continue; } @@ -104,7 +104,7 @@ public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, @Override protected boolean canPlaceBlockOn(Block block) { - return block == null ? false : ObjectUtils.areBlocksEqual(block, Blocks.water); + return block == null ? false : ContentHelper.areBlocksEqual(block, Blocks.water); } @Override diff --git a/src/main/java/xreliquary/blocks/BlockInterdictionTorch.java b/src/main/java/xreliquary/blocks/BlockInterdictionTorch.java index 2aa00fb5..04ef3279 100644 --- a/src/main/java/xreliquary/blocks/BlockInterdictionTorch.java +++ b/src/main/java/xreliquary/blocks/BlockInterdictionTorch.java @@ -4,24 +4,22 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockTorch; import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.boss.IBossDisplayData; -import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.init.XRInit; -import xreliquary.items.block.ItemBlockBase; +import lib.enderwizards.sandstone.init.ContentInit; +import lib.enderwizards.sandstone.items.block.ItemBlockBase; import xreliquary.lib.Names; import xreliquary.lib.Reference; import java.util.List; import java.util.Random; -@XRInit(itemBlock = ItemBlockBase.class) +@ContentInit(itemBlock = ItemBlockBase.class) public class BlockInterdictionTorch extends BlockTorch { public BlockInterdictionTorch() { diff --git a/src/main/java/xreliquary/blocks/BlockWraithNode.java b/src/main/java/xreliquary/blocks/BlockWraithNode.java old mode 100755 new mode 100644 index f781bb18..389f1abc --- a/src/main/java/xreliquary/blocks/BlockWraithNode.java +++ b/src/main/java/xreliquary/blocks/BlockWraithNode.java @@ -5,13 +5,13 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.util.IIcon; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class BlockWraithNode extends Block { public IIcon topIcon; diff --git a/src/main/java/xreliquary/blocks/tile/TileEntityAltar.java b/src/main/java/xreliquary/blocks/tile/TileEntityAltar.java old mode 100755 new mode 100644 index fd0362fa..c1f6ba73 --- a/src/main/java/xreliquary/blocks/tile/TileEntityAltar.java +++ b/src/main/java/xreliquary/blocks/tile/TileEntityAltar.java @@ -1,11 +1,11 @@ package xreliquary.blocks.tile; +import lib.enderwizards.sandstone.blocks.tile.TileEntityBase; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import xreliquary.blocks.BlockAlkahestryAltar; -public class TileEntityAltar extends TileEntity { +public class TileEntityAltar extends TileEntityBase { private int cycleTime; private boolean isActive; private int redstoneCount; diff --git a/src/main/java/xreliquary/blocks/tile/TileEntityCauldron.java b/src/main/java/xreliquary/blocks/tile/TileEntityCauldron.java index 924a9f81..b6aafe42 100644 --- a/src/main/java/xreliquary/blocks/tile/TileEntityCauldron.java +++ b/src/main/java/xreliquary/blocks/tile/TileEntityCauldron.java @@ -1,9 +1,9 @@ package xreliquary.blocks.tile; +import lib.enderwizards.sandstone.blocks.tile.TileEntityBase; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -public class TileEntityCauldron extends TileEntity { +public class TileEntityCauldron extends TileEntityBase { public TileEntityCauldron() { //TODO initialization stuff, as needed. diff --git a/src/main/java/xreliquary/blocks/tile/TileEntityMortar.java b/src/main/java/xreliquary/blocks/tile/TileEntityMortar.java index 9aad50c9..4b7b90c0 100644 --- a/src/main/java/xreliquary/blocks/tile/TileEntityMortar.java +++ b/src/main/java/xreliquary/blocks/tile/TileEntityMortar.java @@ -2,20 +2,15 @@ import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; +import lib.enderwizards.sandstone.blocks.tile.TileEntityBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.Packet; -import net.minecraft.network.play.server.S35PacketUpdateTileEntity; -import net.minecraft.tileentity.TileEntity; import xreliquary.lib.Reference; -import java.util.List; - -public class TileEntityMortar extends TileEntity implements IInventory { +public class TileEntityMortar extends TileEntityBase implements IInventory { //counts the number of times the player has right clicked the block //arbitrarily setting the number of times the player needs to grind the materials to five. @@ -34,16 +29,6 @@ public void updateEntity() { //do stuff on tick? I don't think we need this to tick. } - public Packet getDescriptionPacket() { - NBTTagCompound nbtTag = new NBTTagCompound(); - this.writeToNBT(nbtTag); - return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 1, nbtTag); - } - - public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) { - readFromNBT(packet.func_148857_g()); - } - @Override public void readFromNBT(NBTTagCompound tag) { super.readFromNBT(tag); diff --git a/src/main/java/xreliquary/client/ClientProxy.java b/src/main/java/xreliquary/client/ClientProxy.java old mode 100755 new mode 100644 index aaad6f36..242affbe --- a/src/main/java/xreliquary/client/ClientProxy.java +++ b/src/main/java/xreliquary/client/ClientProxy.java @@ -12,7 +12,7 @@ import xreliquary.common.CommonProxy; import xreliquary.entities.*; import xreliquary.event.ClientEventHandler; -import xreliquary.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentHandler; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.client.registry.RenderingRegistry; @@ -50,6 +50,7 @@ public void registerRenderers() { RenderingRegistry.registerEntityRenderingHandler(EntityHolyHandGrenade.class, new RenderThrown(12)); RenderingRegistry.registerEntityRenderingHandler(EntitySpecialSnowball.class, new RenderSnowball(Items.snowball)); RenderingRegistry.registerEntityRenderingHandler(EntityEnderStaffProjectile.class, new RenderSnowball(Items.ender_pearl)); + RenderingRegistry.registerEntityRenderingHandler(EntityKrakenSlime.class, new RenderThrown(13)); RenderingRegistry.registerEntityRenderingHandler(EntityGlowingWater.class, new RenderThrown(Reference.WATER_SPRITE)); RenderingRegistry.registerEntityRenderingHandler(EntityCondensedSplashAphrodite.class, new RenderThrown(Reference.SPLASH_POTION_SPRITE + Reference.APHRODITE_META)); RenderingRegistry.registerEntityRenderingHandler(EntityCondensedSplashPoison.class, new RenderThrown(Reference.SPLASH_POTION_SPRITE + Reference.POISON_META)); diff --git a/src/main/java/xreliquary/client/gui/GuiAlkahestTome.java b/src/main/java/xreliquary/client/gui/GuiAlkahestTome.java index 16ecabda..5cb4c906 100644 --- a/src/main/java/xreliquary/client/gui/GuiAlkahestTome.java +++ b/src/main/java/xreliquary/client/gui/GuiAlkahestTome.java @@ -1,11 +1,11 @@ package xreliquary.client.gui; +import lib.enderwizards.sandstone.client.gui.GuiBase; import net.minecraft.init.Blocks; import net.minecraft.init.Items; -import xreliquary.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentHandler; import xreliquary.lib.Names; import xreliquary.lib.Reference; -import xreliquary.util.LanguageHelper; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -20,18 +20,18 @@ public GuiAlkahestTome(Container container) { @Override protected void drawGuiContainerForegroundLayer(int x, int y) { - this.drawCenteredPositionedString(this.mc.standardGalacticFontRenderer, "Perform basic,;intermediate or;advanced Alkahestry.", 146, 4, 0000000); - this.drawPositionedString(this.fontRendererObj, LanguageHelper.getLocalization("gui.tome.text"), 16, 36, 0000000); + this.drawCenteredPositionedString(this.mc.standardGalacticFontRenderer, "Perform basic,;intermediate or;advanced Alkahestry.", 146, 4, 0); + this.drawPositionedString(this.fontRendererObj, "gui.tome.text", 16, 36, 0); } @Override protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { - this.mc.renderEngine.bindTexture(this.BOOK_TEX); + this.bindTexture(this.BOOK_TEX); this.drawTexturedModalRect((this.width - 146) / 2, (this.height - 179) / 2, 0, 0, 146, 179); this.drawTexturedModalRect(((this.width - 16) / 2) + 19, ((this.height - 179) / 2) + 148, 0, 180, 10, 10); this.drawTexturedModalRect(((this.width - 16) / 2) - 14, ((this.height - 179) / 2) + 148, 10, 180, 10, 10); - this.drawItemStack(new ItemStack(ContentHandler.getItem(Names.alkahest_tome)), (this.width - 16) / 2, ((this.height - 179) / 2) + 145); + this.drawItemStack(new ItemStack(ContentHandler.getItem(Names.alkahestry_tome)), (this.width - 16) / 2, ((this.height - 179) / 2) + 145); this.drawItemStack(new ItemStack(Items.redstone), ((this.width - 16) / 2) - 32, ((this.height - 179) / 2) + 145); this.drawItemStack(new ItemStack(Blocks.redstone_block), ((this.width - 16) / 2) + 32, ((this.height - 179) / 2) + 145); } diff --git a/src/main/java/xreliquary/client/gui/GuiBase.java b/src/main/java/xreliquary/client/gui/GuiBase.java deleted file mode 100644 index 846d9ccc..00000000 --- a/src/main/java/xreliquary/client/gui/GuiBase.java +++ /dev/null @@ -1,75 +0,0 @@ -package xreliquary.client.gui; - -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import org.lwjgl.opengl.GL11; - -/** - * GuiBase, a helper class for guis. Handles String parsing and positioning, and easily drawing ItemStacks. - * - * @author TheMike - */ -public abstract class GuiBase extends GuiContainer { - - public GuiBase(Container container) { - super(container); - } - - /** - * Draws a positioned set of strings, with a new line indicated by ';'. - * @param renderer The font renderer. Should be 'mc.fontRenderer' unless your using the Galactic fontRenderer. - * @param values The String to parse. New line indicated by ';'. - * @param x The x position of all of the lines. - * @param baseY The base Y position. This will be modified by 9 each new line. - * @param color The color value. - */ - public void drawPositionedString(FontRenderer renderer, String values, int x, int baseY, int color) { - int count = 1; - for(String value : values.split(";")) { - int y = baseY + (count * renderer.FONT_HEIGHT); - renderer.drawString(value, x + 15, y, color); - count++; - } - } - - /** - * Not much different from drawPositionedString(), but this centers the String on the x axis. - * @param renderer The font renderer. Should be 'mc.fontRenderer' unless your using the Galactic fontRenderer. - * @param values The String to parse. New line indicated by ';'. - * @param xLimit The maximum x value allowed for centering. - * @param baseY The base Y position. This will be modified by 9 each new line. - * @param color The color value. - */ - public void drawCenteredPositionedString(FontRenderer renderer, String values, int xLimit, int baseY, int color) { - int count = 1; - for(String value : values.split(";")) { - int x = (xLimit - renderer.getStringWidth(value)) / 2; - int y = baseY + (count * renderer.FONT_HEIGHT); - renderer.drawString(value, x + 15, y, color); - count++; - } - } - - /** - * Provides an easy way to draw an ItemStack into the inventory. - * @param stack The ItemStack to be drawn. - * @param x Where the stack will be placed on the x axis. - * @param y Where the stack will be placed on the y axis. - */ - public void drawItemStack(ItemStack stack, int x, int y) { - GL11.glDisable(GL11.GL_LIGHTING); - this.zLevel = 200.0F; - itemRender.zLevel = 200.0F; - itemRender.renderItemAndEffectIntoGUI(stack.getItem().getFontRenderer(stack), this.mc.getTextureManager(), stack, x, y); - itemRender.renderItemOverlayIntoGUI(stack.getItem().getFontRenderer(stack), this.mc.getTextureManager(), stack, x, y); - this.zLevel = 0.0F; - itemRender.zLevel = 0.0F; - GL11.glEnable(GL11.GL_LIGHTING); - } - - @Override - abstract protected void drawGuiContainerBackgroundLayer(float f, int i, int j); - -} diff --git a/src/main/java/xreliquary/client/model/ModelHandgun.java b/src/main/java/xreliquary/client/model/ModelHandgun.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/client/render/ItemRendererHandgun.java b/src/main/java/xreliquary/client/render/ItemRendererHandgun.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/common/CommonProxy.java b/src/main/java/xreliquary/common/CommonProxy.java old mode 100755 new mode 100644 index f76e369e..13f09e53 --- a/src/main/java/xreliquary/common/CommonProxy.java +++ b/src/main/java/xreliquary/common/CommonProxy.java @@ -1,21 +1,20 @@ package xreliquary.common; +import lib.enderwizards.sandstone.mod.config.TomlConfig; import cpw.mods.fml.common.FMLCommonHandler; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fluids.FluidContainerRegistry; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; - import xreliquary.Reliquary; import xreliquary.blocks.tile.TileEntityAltar; import xreliquary.blocks.tile.TileEntityMortar; -import xreliquary.init.ContentHandler; import xreliquary.common.gui.GUIHandler; import xreliquary.entities.*; -import xreliquary.entities.EntityStormShot; import xreliquary.event.CommonEventHandler; import xreliquary.init.XRRecipes; import xreliquary.util.alkahestry.Alkahestry; +import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.EntityRegistry; @@ -23,18 +22,8 @@ public class CommonProxy { - public int chaliceMultiplier; - public int tomeRedstoneLimit; - public int handgunHUDPosition; - public int heroMedallionLevelThreshold; - public int twilightCloakLightThreshold; - public boolean disableCoinAudio; - - public void preInit() { - this.initOptions(); - + public void preInit() { try { - ContentHandler.init(); XRRecipes.init(); Alkahestry.init(); } catch(Exception e) { e.printStackTrace(); System.exit(1); } @@ -53,12 +42,12 @@ public void init() { } public void initOptions() { - disableCoinAudio = Reliquary.CONFIG.get("Misc_Options", "disableCoinAudio", false).getBoolean(Reference.DISABLE_COIN_AUDIO_DEFAULT); - chaliceMultiplier = Reliquary.CONFIG.get("Misc_Options", "chaliceMultiplier", 1).getInt(1); - tomeRedstoneLimit = Reliquary.CONFIG.get("Misc_Options", "tomeRedstoneLimit", 256).getInt(256); - heroMedallionLevelThreshold = Reliquary.CONFIG.get("Misc_Options", "heroMedallionLevelThreshold", 30).getInt(30); - twilightCloakLightThreshold = Reliquary.CONFIG.get("Misc_Options", "twilightCloakLightThreshold", 4).getInt(4); - handgunHUDPosition = Reliquary.CONFIG.get("Misc_Options", "handgunHUDPosition", 3).getInt(3); + Reliquary.CONFIG.require(Names.fortune_coin, "disableAudio", false); + Reliquary.CONFIG.require(Names.emperor_chalice, "multiplier", 1); + Reliquary.CONFIG.require(Names.alkahestry_tome, "redstoneLimit", 256); + Reliquary.CONFIG.require(Names.hero_medallion, "xpLevelCap", 30); + Reliquary.CONFIG.require(Names.twilight_cloak, "maxLightLevel", 4); + Reliquary.CONFIG.require(Names.handgun, "hudPosition", 3); } public void registerTileEntities() { @@ -67,7 +56,6 @@ public void registerTileEntities() { } public void registerEntities() { - EntityRegistry.registerModEntity(EntityHolyHandGrenade.class, "entityHGrenade", 0, Reliquary.INSTANCE, 128, 5, true); EntityRegistry.registerModEntity(EntityGlowingWater.class, "entityHolyWater", 1, Reliquary.INSTANCE, 128, 5, true); EntityRegistry.registerModEntity(EntitySpecialSnowball.class, "entitySpecialSnowball", 2, Reliquary.INSTANCE, 128, 5, true); @@ -90,6 +78,7 @@ public void registerEntities() { EntityRegistry.registerModEntity(EntityCondensedSplashWeakness.class, "entitySplashWeakness", 19, Reliquary.INSTANCE, 128, 5, true); EntityRegistry.registerModEntity(EntityCondensedSplashWither.class, "entitySplashWither", 20, Reliquary.INSTANCE, 128, 5, true); EntityRegistry.registerModEntity(EntityCondensedFertility.class, "entitySplashFertility", 21, Reliquary.INSTANCE, 128, 5, true); + EntityRegistry.registerModEntity(EntityKrakenSlime.class, "entityKSlime", 22, Reliquary.INSTANCE, 128, 5, true); } } diff --git a/src/main/java/xreliquary/entities/ConcussiveExplosion.java b/src/main/java/xreliquary/entities/ConcussiveExplosion.java old mode 100755 new mode 100644 index 73035dbc..01653657 --- a/src/main/java/xreliquary/entities/ConcussiveExplosion.java +++ b/src/main/java/xreliquary/entities/ConcussiveExplosion.java @@ -1,6 +1,5 @@ package xreliquary.entities; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -27,7 +26,6 @@ public class ConcussiveExplosion extends Explosion { public double explosionZ; public Entity exploder; public float explosionSize; - public List field_77281_g = new ArrayList(); private Map field_77288_k = new HashMap(); private EntityPlayer shootingEntity; public boolean hurtsPlayer; diff --git a/src/main/java/xreliquary/entities/EntityBlazeShot.java b/src/main/java/xreliquary/entities/EntityBlazeShot.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityBusterShot.java b/src/main/java/xreliquary/entities/EntityBusterShot.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityConcussiveShot.java b/src/main/java/xreliquary/entities/EntityConcussiveShot.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityCondensedFertility.java b/src/main/java/xreliquary/entities/EntityCondensedFertility.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityCondensedSplashAphrodite.java b/src/main/java/xreliquary/entities/EntityCondensedSplashAphrodite.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityCondensedSplashBlindness.java b/src/main/java/xreliquary/entities/EntityCondensedSplashBlindness.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityCondensedSplashConfusion.java b/src/main/java/xreliquary/entities/EntityCondensedSplashConfusion.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityCondensedSplashHarm.java b/src/main/java/xreliquary/entities/EntityCondensedSplashHarm.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityCondensedSplashPoison.java b/src/main/java/xreliquary/entities/EntityCondensedSplashPoison.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityCondensedSplashRuin.java b/src/main/java/xreliquary/entities/EntityCondensedSplashRuin.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityCondensedSplashSlowness.java b/src/main/java/xreliquary/entities/EntityCondensedSplashSlowness.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityCondensedSplashWeakness.java b/src/main/java/xreliquary/entities/EntityCondensedSplashWeakness.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityCondensedSplashWither.java b/src/main/java/xreliquary/entities/EntityCondensedSplashWither.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityEnderShot.java b/src/main/java/xreliquary/entities/EntityEnderShot.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityExorcismShot.java b/src/main/java/xreliquary/entities/EntityExorcismShot.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityGlowingWater.java b/src/main/java/xreliquary/entities/EntityGlowingWater.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityHolyHandGrenade.java b/src/main/java/xreliquary/entities/EntityHolyHandGrenade.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityKrakenSlime.java b/src/main/java/xreliquary/entities/EntityKrakenSlime.java new file mode 100644 index 00000000..5dfc85c4 --- /dev/null +++ b/src/main/java/xreliquary/entities/EntityKrakenSlime.java @@ -0,0 +1,64 @@ +package xreliquary.entities; + +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class EntityKrakenSlime extends EntityThrowable { + + public static DamageSource SOURCE = new DamageSource("slimed").setDamageIsAbsolute().setProjectile().setMagicDamage(); + + public EntityKrakenSlime(World world) { + super(world); + } + + public EntityKrakenSlime(World world, EntityPlayer player) { + super(world, player); + } + + @Override + protected void onImpact(MovingObjectPosition object) { + if(this.worldObj.isRemote) + return; + if(object.typeOfHit == MovingObjectPosition.MovingObjectType.ENTITY && object.entityHit instanceof EntityLiving) { + EntityLiving living = (EntityLiving) object.entityHit; + living.attackEntityFrom(SOURCE, 7.5f); + } + this.worldObj.playSoundAtEntity(this, "mob.slime.big", 0.5F, 0.4F / (worldObj.rand.nextFloat() * 0.4F + 0.8F)); + this.setDead(); + } + + @Override + protected float getGravityVelocity() { + return 0F; + } + + @Override + public void onUpdate() { + super.onUpdate(); + + if(this.worldObj.isRemote) + return; + + for (int count = 0; count < 4; ++count) { + float amplifier = 0.25F; + worldObj.spawnParticle("bubble", posX - motionX * amplifier, posY - motionY * amplifier, posZ - motionZ * amplifier, motionX, motionY, motionZ); + } + + if(this.motionX == 0 && this.motionY == 0 && this.motionZ == 0) { + this.setDead(); + return; + } + + if(this.posY > this.worldObj.getHeight() || this.posY <= 0) { + this.setDead(); + } + + } + +} diff --git a/src/main/java/xreliquary/entities/EntityNeutralShot.java b/src/main/java/xreliquary/entities/EntityNeutralShot.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntitySandShot.java b/src/main/java/xreliquary/entities/EntitySandShot.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntitySeekerShot.java b/src/main/java/xreliquary/entities/EntitySeekerShot.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntitySpecialSnowball.java b/src/main/java/xreliquary/entities/EntitySpecialSnowball.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/entities/EntityStormShot.java b/src/main/java/xreliquary/entities/EntityStormShot.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/event/ClientEventHandler.java b/src/main/java/xreliquary/event/ClientEventHandler.java index c6b25ccb..4e0450fa 100644 --- a/src/main/java/xreliquary/event/ClientEventHandler.java +++ b/src/main/java/xreliquary/event/ClientEventHandler.java @@ -15,7 +15,7 @@ import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import xreliquary.Reliquary; -import xreliquary.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentHandler; import xreliquary.items.ItemHandgun; import xreliquary.lib.Names; @@ -80,7 +80,7 @@ private static void renderHandgunHUD(Minecraft minecraft, EntityPlayer player, I int hudOverlayX = 0; int hudOverlayY = 0; - switch (Reliquary.PROXY.handgunHUDPosition) + switch (Reliquary.CONFIG.getInt(Names.handgun, "hudPosition")) { case 0: { diff --git a/src/main/java/xreliquary/event/CommonEventHandler.java b/src/main/java/xreliquary/event/CommonEventHandler.java old mode 100755 new mode 100644 index e7166e54..eb3ed96b --- a/src/main/java/xreliquary/event/CommonEventHandler.java +++ b/src/main/java/xreliquary/event/CommonEventHandler.java @@ -13,9 +13,11 @@ import net.minecraft.util.FoodStats; import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingDropsEvent; -import xreliquary.init.ContentHandler; +import net.minecraftforge.event.entity.player.PlayerUseItemEvent; +import lib.enderwizards.sandstone.init.ContentHandler; +import xreliquary.entities.EntityKrakenSlime; import xreliquary.lib.Names; -import xreliquary.util.ObjectUtils; +import lib.enderwizards.sandstone.util.ContentHelper; import net.minecraft.entity.item.EntityItem; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -28,6 +30,7 @@ import java.util.Random; public class CommonEventHandler { + @SubscribeEvent public void onCraftingPotion(PlayerEvent.ItemCraftedEvent event) { for (int slot = 0; slot < event.craftMatrix.getSizeInventory(); slot++) { @@ -283,13 +286,13 @@ public void onCraftingAlkahest(PlayerEvent.ItemCraftedEvent event) { for (int count = 0; count < event.craftMatrix.getSizeInventory(); count++) { ItemStack stack = event.craftMatrix.getStackInSlot(count); if (stack != null) { - if (ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getItemIdentifier(ContentHandler.getItem(Names.alkahest_tome)))) { + if (ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIdent(ContentHandler.getItem(Names.alkahestry_tome)))) { tome = count; - } else if (ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getItemIdentifier(Items.redstone)) || ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getBlockIdentifier(Blocks.redstone_block))) { + } else if (ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIdent(Items.redstone)) || ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIndent(Blocks.redstone_block))) { isCharging = true; } else { if (Alkahestry.getDictionaryKey(stack) == null) { - recipe = Alkahestry.getRegistry().get(ObjectUtils.getItemIdentifier(stack.getItem())); + recipe = Alkahestry.getRegistry().get(ContentHelper.getIdent(stack.getItem())); } else { recipe = Alkahestry.getDictionaryKey(stack); } diff --git a/src/main/java/xreliquary/init/ContentHandler.java b/src/main/java/xreliquary/init/ContentHandler.java deleted file mode 100644 index bfe27d63..00000000 --- a/src/main/java/xreliquary/init/ContentHandler.java +++ /dev/null @@ -1,79 +0,0 @@ -package xreliquary.init; - -import com.google.common.reflect.ClassPath; -import cpw.mods.fml.common.registry.GameRegistry; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import org.apache.logging.log4j.Level; -import xreliquary.Reliquary; -import xreliquary.lib.Reference; -import xreliquary.util.LogHelper; - -public class ContentHandler { - - private static final String blocksPath = "xreliquary.blocks"; - private static final String itemsPath = "xreliquary.items"; - - public static void init() { - try { - init(blocksPath); - init(itemsPath); - } catch(Exception e) { - e.printStackTrace(); - } - } - - private static void init(String packageName) throws Exception { - // Gets the classpath, and searches it for all classes in packageName. - ClassPath classPath = ClassPath.from(Reliquary.class.getClassLoader()); - for(ClassPath.ClassInfo info : classPath.getTopLevelClasses(packageName)) { - Class objClass = Class.forName(info.getName()); - checkAndRegister(objClass); - for(Class subClass : objClass.getClasses()) { - checkAndRegister(subClass); - } - } - } - - private static void checkAndRegister(Class objClass) throws Exception { - if(objClass.isAnnotationPresent(XRInit.class)) { - Object obj = objClass.newInstance(); - - // We've gotten the object, and confirmed it uses @XRInit, now let's check it for compatible types. - if(obj instanceof Item) { - Item item = (Item) obj; - GameRegistry.registerItem(item, item.getUnlocalizedName().substring(5)); - } else if(obj instanceof Block) { - Block block = (Block) obj; - if(((XRInit) objClass.getAnnotation(XRInit.class)).itemBlock() != XRInit.class) { - GameRegistry.registerBlock(block, ((XRInit) objClass.getAnnotation(XRInit.class)).itemBlock(), block.getUnlocalizedName().substring(5)); - } else - GameRegistry.registerBlock(block, block.getUnlocalizedName().substring(5)); - } else { - LogHelper.log(Level.WARN, "Class '" + objClass.getName() + "' is not a Block or an Item! You shouldn't be calling @XRInit on this! Ignoring!"); - } - } - } - - public static Block getBlock(String blockName) { - String selection = blockName; - if(!selection.contains("!")) - selection = Reference.MOD_ID + ":" + selection; - return (Block) Block.blockRegistry.getObject(selection); - } - - public static Item getItem(String itemName) { - String selection = itemName; - if(!selection.contains("!")) - selection = Reference.MOD_ID + ":" + selection; - return (Item) Item.itemRegistry.getObject(selection); - } - - public static Item getItemBlock(String blockName) { - String selection = blockName; - if(!selection.contains("!")) - selection = Reference.MOD_ID + ":" + selection; - return Item.getItemFromBlock((Block) Block.blockRegistry.getObject(selection)); - } - -} diff --git a/src/main/java/xreliquary/init/XRInit.java b/src/main/java/xreliquary/init/XRInit.java deleted file mode 100644 index 83d918ce..00000000 --- a/src/main/java/xreliquary/init/XRInit.java +++ /dev/null @@ -1,9 +0,0 @@ -package xreliquary.init; - -import java.lang.annotation.*; - -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) -public @interface XRInit { - Class itemBlock() default XRInit.class; -} diff --git a/src/main/java/xreliquary/init/XRRecipes.java b/src/main/java/xreliquary/init/XRRecipes.java index f4e3b31b..52d72d54 100644 --- a/src/main/java/xreliquary/init/XRRecipes.java +++ b/src/main/java/xreliquary/init/XRRecipes.java @@ -1,6 +1,7 @@ package xreliquary.init; import cpw.mods.fml.common.registry.GameRegistry; +import lib.enderwizards.sandstone.init.ContentHandler; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -110,8 +111,8 @@ public static void init() { GameRegistry.addRecipe(new ItemStack(ContentHandler.getItem(Names.handgun), 1, 0), new Object[] { "bim", "isi", "igi", 'i', Items.iron_ingot, 'b', gunPart(1, 1), 'm', gunPart(1, 2), 'g', gunPart(1, 0), 's', Items.slime_ball }); // tome and alkahestry recipes - ItemStack tomeStack = new ItemStack(ContentHandler.getItem(Names.alkahest_tome), 1, 0); - tomeStack.setItemDamage(Reliquary.PROXY.tomeRedstoneLimit); + ItemStack tomeStack = new ItemStack(ContentHandler.getItem(Names.alkahestry_tome), 1, 0); + tomeStack.setItemDamage((Integer) Reliquary.CONFIG.get(Names.alkahestry_tome, "redstoneLimit")); GameRegistry.addShapelessRecipe(tomeStack, new Object[] { Items.book, Items.blaze_rod, Items.magma_cream, Items.gold_ingot, Blocks.glowstone, Items.nether_wart, new ItemStack(Items.skull, 1, 1), Items.ghast_tear, Items.lava_bucket }); GameRegistry.addRecipe(new AlkahestryRedstoneRecipe()); @@ -194,6 +195,9 @@ public static void init() { // destruction catalyst GameRegistry.addRecipe(new ItemStack(ContentHandler.getItem(Names.destruction_catalyst), 1, 0), new Object[] { "rrr", "rtr", "rrf", 'f', Items.flint, 't', new ItemStack(ContentHandler.getItem(Names.midas_touchstone), 1, -1), 'r', Items.blaze_rod }); + // serpent staff + GameRegistry.addRecipe(new ItemStack(ContentHandler.getItem(Names.serpent_staff), 1), "oeo", "sks", " s ", 'o', Blocks.obsidian, 'e', Items.ender_eye, 's', Items.stick, 'k', ContentHandler.getItem(Names.kraken_shell)); + /* potions and splash potions */ // empty vial diff --git a/src/main/java/xreliquary/items/IVoidUpgradable.java b/src/main/java/xreliquary/items/IVoidUpgradable.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/items/ItemAlkahestryTome.java b/src/main/java/xreliquary/items/ItemAlkahestryTome.java old mode 100755 new mode 100644 index 76e0335a..ac991906 --- a/src/main/java/xreliquary/items/ItemAlkahestryTome.java +++ b/src/main/java/xreliquary/items/ItemAlkahestryTome.java @@ -4,6 +4,7 @@ import com.google.common.collect.ImmutableMap; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; @@ -11,19 +12,19 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemAlkahestryTome extends ItemBase { public ItemAlkahestryTome() { - super(Reference.MOD_ID, Names.alkahest_tome); + super(Names.alkahestry_tome); this.setCreativeTab(Reliquary.CREATIVE_TAB); - this.setMaxDamage(Reliquary.PROXY.tomeRedstoneLimit + 1); + this.setMaxDamage(((Integer) Reliquary.CONFIG.get(Names.alkahestry_tome, "redstoneLimit")) + 1); this.setMaxStackSize(1); this.canRepair = false; this.hasSubtypes = true; @@ -45,7 +46,7 @@ public boolean doesContainerItemLeaveCraftingGrid(ItemStack ist) { @Override public void addInformation(ItemStack stack, EntityPlayer par2EntityPlayer, List list, boolean par4) { - this.formatTooltip(ImmutableMap.of("redstoneAmount", String.valueOf((Reliquary.PROXY.tomeRedstoneLimit - stack.getItemDamage())), "redstoneLimit", String.valueOf(Reliquary.PROXY.tomeRedstoneLimit)), stack, list); + this.formatTooltip(ImmutableMap.of("redstoneAmount", String.valueOf((Reliquary.CONFIG.getInt(Names.alkahestry_tome, "redstoneLimit") - stack.getItemDamage())), "redstoneLimit", String.valueOf(Reliquary.CONFIG.getInt(Names.alkahestry_tome, "redstoneLimit"))), stack, list); } @Override @@ -65,7 +66,7 @@ public ItemStack getContainerItem(ItemStack stack) { @Override public void getSubItems(Item item, CreativeTabs tabs, List list) { ItemStack tomeStack = new ItemStack(item, 1, 0); - tomeStack.setItemDamage(Reliquary.PROXY.tomeRedstoneLimit); + tomeStack.setItemDamage(Reliquary.CONFIG.getInt(Names.alkahestry_tome, "redstoneLimit")); list.add(tomeStack); } diff --git a/src/main/java/xreliquary/items/ItemAngelheartVial.java b/src/main/java/xreliquary/items/ItemAngelheartVial.java index 4d6ad4db..99451e52 100644 --- a/src/main/java/xreliquary/items/ItemAngelheartVial.java +++ b/src/main/java/xreliquary/items/ItemAngelheartVial.java @@ -2,21 +2,19 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.player.EntityPlayer; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.item.ItemStack; -import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.entities.EntityGlowingWater; -import xreliquary.init.ContentHandler; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemAngelheartVial extends ItemBase { public ItemAngelheartVial() { - super(Reference.MOD_ID, Names.angelheart_vial); + super(Names.angelheart_vial); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(64); diff --git a/src/main/java/xreliquary/items/ItemAngelicFeather.java b/src/main/java/xreliquary/items/ItemAngelicFeather.java index ab1c9147..d545639d 100644 --- a/src/main/java/xreliquary/items/ItemAngelicFeather.java +++ b/src/main/java/xreliquary/items/ItemAngelicFeather.java @@ -2,6 +2,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; @@ -10,27 +11,26 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; -import xreliquary.lib.Reference; /** * Created by Xeno on 5/15/14. */ -@XRInit +@ContentInit public class ItemAngelicFeather extends ItemBase { public ItemAngelicFeather() { - super(Reference.MOD_ID, Names.angelic_feather); + super(Names.angelic_feather); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxStackSize(1); canRepair = false; } //so it can be extended by phoenix down - protected ItemAngelicFeather(String modid, String name) { - super(modid, name); + protected ItemAngelicFeather(String name) { + super(name); } @Override diff --git a/src/main/java/xreliquary/items/ItemBase.java b/src/main/java/xreliquary/items/ItemBase.java deleted file mode 100644 index 2a44cd2c..00000000 --- a/src/main/java/xreliquary/items/ItemBase.java +++ /dev/null @@ -1,88 +0,0 @@ -package xreliquary.items; - -import java.util.Iterator; -import java.util.List; -import java.util.Map.Entry; - -import net.minecraft.client.renderer.texture.*; -import xreliquary.util.LanguageHelper; - -import com.google.common.collect.ImmutableMap; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -/** - * ItemBase, a helper class for items. Handles language names, language - * tooltips, and icon registering. - * - * @author TheMike - */ -public class ItemBase extends Item { - - String modName, textureName; - - public ItemBase(String modName, String textureName) { - this.modName = modName; - this.textureName = textureName; - this.setUnlocalizedName(textureName); - } - - /** - * Just a call to formatTooltip(). If you are overriding this function, call - * formatTooltip() directly and DO NOT call super.addInformation(). - */ - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean whatDoesThisEvenDo) { - this.formatTooltip(null, stack, list); - } - - /** - * Used to format tooltips. Grabs tooltip from language registry with the - * entry 'item.unlocalizedName.tooltip'. Has support for Handlebars-style - * templating, and line breaking using '\n'. - * - * @param toFormat - * An ImmutableMap that has all the regex keys and values. Regex - * strings are handled on the tooltip by including '{{regexKey}}' - * with your regex key, of course. - * @param stack - * The ItemStack passed from addInformation. - * @param list - * List of description lines passed from addInformation. - */ - public void formatTooltip(ImmutableMap toFormat, ItemStack stack, List list) { - String langTooltip = LanguageHelper.getLocalization(this.getUnlocalizedName(stack) + ".tooltip"); - if (langTooltip == null) - return; - if (toFormat != null) { - Iterator> entrySet = toFormat.entrySet().iterator(); - while (entrySet.hasNext()) { - Entry toReplace = entrySet.next(); - langTooltip = langTooltip.replace("{{" + toReplace.getKey() + "}}", toReplace.getValue()); - } - } - - for (String descriptionLine : langTooltip.split(";")) { - if (descriptionLine != null && descriptionLine.length() > 0) - list.add(descriptionLine); - } - } - - @Override - @SideOnly(Side.CLIENT) - public String getItemStackDisplayName(ItemStack stack) { - return LanguageHelper.getLocalization(this.getUnlocalizedNameInefficiently(stack) + ".name"); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconRegister) { - itemIcon = iconRegister.registerIcon(this.modName + ":" + this.textureName); - } - -} \ No newline at end of file diff --git a/src/main/java/xreliquary/items/ItemBullet.java b/src/main/java/xreliquary/items/ItemBullet.java old mode 100755 new mode 100644 index d3711897..26a14c28 --- a/src/main/java/xreliquary/items/ItemBullet.java +++ b/src/main/java/xreliquary/items/ItemBullet.java @@ -2,20 +2,21 @@ import java.util.List; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Colors; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemBullet extends ItemBase { // 0 = Empty, 1 = Neutral, 2 = Exorcism, 3 = Blaze @@ -23,7 +24,7 @@ public class ItemBullet extends ItemBase { // 8 = Sand, 9 = Storm public ItemBullet() { - super(Reference.MOD_ID, Names.bullet); + super(Names.bullet); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxStackSize(64); this.setHasSubtypes(true); diff --git a/src/main/java/xreliquary/items/ItemClawsOfTheFiredrinker.java b/src/main/java/xreliquary/items/ItemClawsOfTheFiredrinker.java index 7f667d32..1112ac66 100644 --- a/src/main/java/xreliquary/items/ItemClawsOfTheFiredrinker.java +++ b/src/main/java/xreliquary/items/ItemClawsOfTheFiredrinker.java @@ -2,17 +2,18 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.item.ItemStack; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemClawsOfTheFiredrinker extends ItemBase { public ItemClawsOfTheFiredrinker() { - super(Reference.MOD_ID, Names.claws_of_the_firedrinker); + super(Names.claws_of_the_firedrinker); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(1); diff --git a/src/main/java/xreliquary/items/ItemCondensedPotion.java b/src/main/java/xreliquary/items/ItemCondensedPotion.java old mode 100755 new mode 100644 index 38f7374b..8b4b1582 --- a/src/main/java/xreliquary/items/ItemCondensedPotion.java +++ b/src/main/java/xreliquary/items/ItemCondensedPotion.java @@ -2,6 +2,7 @@ import java.util.List; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; @@ -28,19 +29,19 @@ import xreliquary.entities.EntityCondensedSplashWeakness; import xreliquary.entities.EntityCondensedSplashWither; import xreliquary.event.ClientEventHandler; -import xreliquary.init.ContentHandler; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Colors; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemCondensedPotion extends ItemBase { public ItemCondensedPotion() { - super(Reference.MOD_ID, Names.condensed_potion); + super(Names.condensed_potion); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(16); diff --git a/src/main/java/xreliquary/items/ItemCrimsonCloth.java b/src/main/java/xreliquary/items/ItemCrimsonCloth.java index a30ef237..ac83be7e 100644 --- a/src/main/java/xreliquary/items/ItemCrimsonCloth.java +++ b/src/main/java/xreliquary/items/ItemCrimsonCloth.java @@ -2,16 +2,17 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.item.ItemStack; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemCrimsonCloth extends ItemBase { public ItemCrimsonCloth() { - super(Reference.MOD_ID, Names.crimson_cloth); + super(Names.crimson_cloth); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(64); diff --git a/src/main/java/xreliquary/items/ItemDestructionCatalyst.java b/src/main/java/xreliquary/items/ItemDestructionCatalyst.java old mode 100755 new mode 100644 index 308ad51b..7127444b --- a/src/main/java/xreliquary/items/ItemDestructionCatalyst.java +++ b/src/main/java/xreliquary/items/ItemDestructionCatalyst.java @@ -3,8 +3,9 @@ import java.util.List; import com.google.common.collect.ImmutableList; -import xreliquary.init.XRInit; -import xreliquary.util.ObjectUtils; +import lib.enderwizards.sandstone.init.ContentInit; +import lib.enderwizards.sandstone.items.ItemBase; +import lib.enderwizards.sandstone.util.ContentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -15,13 +16,13 @@ import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemDestructionCatalyst extends ItemBase { public static List ids = ImmutableList.of("minecraft:dirt", "minecraft:grass", "minecraft:gravel", "minecraft:cobblestone", "minecraft:stone", "minecraft:sand", "minecraft:sandstone", "minecraft:snow", "minecraft:soul_sand", "minecraft:netherrack", "minecraft:end_stone"); public ItemDestructionCatalyst() { - super(Reference.MOD_ID, Names.destruction_catalyst); + super(Names.destruction_catalyst); this.setMaxDamage(0); this.setMaxStackSize(1); canRepair = false; @@ -45,7 +46,7 @@ public void doExplosion(World world, int x, int y, int z, int side, EntityPlayer for (int xD = -1; xD <= 1; xD++) { for (int yD = -1; yD <= 1; yD++) { for (int zD = -1; zD <= 1; zD++) { - if (isBreakable(ObjectUtils.getBlockIdentifier(world.getBlock(x + xD, y + yD, z + zD)))) { + if (isBreakable(ContentHelper.getIndent(world.getBlock(x + xD, y + yD, z + zD)))) { world.setBlock(x + xD, y + yD, z + zD, Blocks.air); if (world.rand.nextInt(2) == 0) { world.spawnParticle("largeexplode", x + xD, y + yD, z + zD, 1.0D, 0.0D, 0.0D); diff --git a/src/main/java/xreliquary/items/ItemDragonClaws.java b/src/main/java/xreliquary/items/ItemDragonClaws.java index 07c7fbf4..b36bb328 100644 --- a/src/main/java/xreliquary/items/ItemDragonClaws.java +++ b/src/main/java/xreliquary/items/ItemDragonClaws.java @@ -2,17 +2,18 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.item.ItemStack; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemDragonClaws extends ItemBase { public ItemDragonClaws() { - super(Reference.MOD_ID, Names.dragon_claws); + super(Names.dragon_claws); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(1); diff --git a/src/main/java/xreliquary/items/ItemDragonTalon.java b/src/main/java/xreliquary/items/ItemDragonTalon.java index 8e650fda..4001ff77 100644 --- a/src/main/java/xreliquary/items/ItemDragonTalon.java +++ b/src/main/java/xreliquary/items/ItemDragonTalon.java @@ -2,17 +2,18 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.item.ItemStack; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemDragonTalon extends ItemBase { public ItemDragonTalon() { - super(Reference.MOD_ID, Names.dragon_talon); + super(Names.dragon_talon); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(64); diff --git a/src/main/java/xreliquary/items/ItemElsewhereFlask.java b/src/main/java/xreliquary/items/ItemElsewhereFlask.java index 3e1f8123..29b8c748 100644 --- a/src/main/java/xreliquary/items/ItemElsewhereFlask.java +++ b/src/main/java/xreliquary/items/ItemElsewhereFlask.java @@ -3,27 +3,22 @@ import com.google.common.collect.ImmutableMap; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.creativetab.CreativeTabs; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -import xreliquary.util.LanguageHelper; -import java.util.Iterator; import java.util.List; -import java.util.Map; -@XRInit +@ContentInit public class ItemElsewhereFlask extends ItemBase { public ItemElsewhereFlask() { - super(Reference.MOD_ID, Names.elsewhere_flask); + super(Names.elsewhere_flask); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxStackSize(1); this.canRepair = false; diff --git a/src/main/java/xreliquary/items/ItemEmperorChalice.java b/src/main/java/xreliquary/items/ItemEmperorChalice.java old mode 100755 new mode 100644 index 8a3907e7..59d0f7cb --- a/src/main/java/xreliquary/items/ItemEmperorChalice.java +++ b/src/main/java/xreliquary/items/ItemEmperorChalice.java @@ -1,7 +1,8 @@ package xreliquary.items; -import xreliquary.init.XRInit; -import xreliquary.util.ObjectUtils; +import lib.enderwizards.sandstone.init.ContentInit; +import lib.enderwizards.sandstone.items.ItemBase; +import lib.enderwizards.sandstone.util.ContentHelper; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -18,11 +19,11 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemEmperorChalice extends ItemBase { public ItemEmperorChalice() { - super(Reference.MOD_ID, Names.emperor_chalice); + super(Names.emperor_chalice); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(1); @@ -74,8 +75,9 @@ public ItemStack onEaten(ItemStack ist, World world, EntityPlayer player) { if (world.isRemote) return ist; - player.getFoodStats().addStats(1, (float) (Reliquary.PROXY.chaliceMultiplier / 2)); - player.attackEntityFrom(DamageSource.drown, Reliquary.PROXY.chaliceMultiplier); + int multiplier = (Integer) Reliquary.CONFIG.get(Names.emperor_chalice, "multiplier"); + player.getFoodStats().addStats(1, (float) (multiplier / 2)); + player.attackEntityFrom(DamageSource.drown, multiplier); return new ItemStack(this, 1, 0); } @@ -106,8 +108,8 @@ public ItemStack onItemRightClick(ItemStack ist, World world, EntityPlayer playe if (!player.canPlayerEdit(var13, var14, var15, mop.sideHit, ist)) return ist; - String ident = ObjectUtils.getBlockIdentifier(world.getBlock(var13, var14, var15)); - if ((ident.equals(ObjectUtils.getBlockIdentifier(Blocks.flowing_water)) || ident.equals(ObjectUtils.getBlockIdentifier(Blocks.water))) && world.getBlockMetadata(var13, var14, var15) == 0) { + String ident = ContentHelper.getIndent(world.getBlock(var13, var14, var15)); + if ((ident.equals(ContentHelper.getIndent(Blocks.flowing_water)) || ident.equals(ContentHelper.getIndent(Blocks.water))) && world.getBlockMetadata(var13, var14, var15) == 0) { world.setBlock(var13, var14, var15, Blocks.air); return new ItemStack(ist.getItem(), 1, 1); diff --git a/src/main/java/xreliquary/items/ItemEmptyVoidTear.java b/src/main/java/xreliquary/items/ItemEmptyVoidTear.java old mode 100755 new mode 100644 index c7f2c378..e4d1efa2 --- a/src/main/java/xreliquary/items/ItemEmptyVoidTear.java +++ b/src/main/java/xreliquary/items/ItemEmptyVoidTear.java @@ -1,8 +1,9 @@ package xreliquary.items; -import xreliquary.init.ContentHandler; -import xreliquary.init.XRInit; -import xreliquary.util.ObjectUtils; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentInit; +import lib.enderwizards.sandstone.items.ItemBase; +import lib.enderwizards.sandstone.util.ContentHelper; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; @@ -12,13 +13,12 @@ import net.minecraft.world.World; import xreliquary.Reliquary; import xreliquary.lib.Names; -import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemEmptyVoidTear extends ItemBase { public ItemEmptyVoidTear() { - super(Reference.MOD_ID, Names.void_tear_empty); + super(Names.void_tear_empty); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(64); @@ -66,7 +66,7 @@ public ItemStack compressInventoryIntoTearForPlayer(IInventory inventory, Entity Item item = target.getItem(); int itemQuantity = getQuantityInInventory(target, inventory); ItemStack tear = new ItemStack(ContentHandler.getItem(Names.void_tear), 1); - tear.setTagCompound(createStackTagCompoundForTear(itemMeta, ObjectUtils.getItemIdentifier(item), itemQuantity)); + tear.setTagCompound(createStackTagCompoundForTear(itemMeta, ContentHelper.getIdent(item), itemQuantity)); findAndRemoveQuantity(inventory, new ItemStack(item, 1, itemMeta), itemQuantity); return tear; } @@ -109,7 +109,7 @@ public ItemStack getTargetItem(IInventory inventory) { if (ist == null) { continue; } - if (ObjectUtils.getItemIdentifier(ist.getItem()).equals(ObjectUtils.getItemIdentifier(this))) { + if (ContentHelper.getIdent(ist.getItem()).equals(ContentHelper.getIdent(this))) { continue; } if (ist.getMaxStackSize() == 1) { diff --git a/src/main/java/xreliquary/items/ItemEnderStaff.java b/src/main/java/xreliquary/items/ItemEnderStaff.java index aa91a75b..d8282a8a 100644 --- a/src/main/java/xreliquary/items/ItemEnderStaff.java +++ b/src/main/java/xreliquary/items/ItemEnderStaff.java @@ -3,8 +3,8 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.EnumRarity; @@ -12,16 +12,15 @@ import net.minecraft.world.World; import xreliquary.Reliquary; import xreliquary.entities.EntityEnderStaffProjectile; -import xreliquary.entities.EntitySpecialSnowball; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemEnderStaff extends ItemBase { public ItemEnderStaff() { - super(Reference.MOD_ID, Names.ender_staff); + super(Names.ender_staff); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxStackSize(1); this.setMaxDamage(257); diff --git a/src/main/java/xreliquary/items/ItemFortuneCoin.java b/src/main/java/xreliquary/items/ItemFortuneCoin.java old mode 100755 new mode 100644 index ceb30c92..d95834d0 --- a/src/main/java/xreliquary/items/ItemFortuneCoin.java +++ b/src/main/java/xreliquary/items/ItemFortuneCoin.java @@ -3,6 +3,7 @@ import java.util.Iterator; import java.util.List; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; @@ -15,18 +16,18 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; import xreliquary.util.NBTHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemFortuneCoin extends ItemBase { public ItemFortuneCoin() { - super(Reference.MOD_ID, Names.fortune_coin); + super(Names.fortune_coin); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(1); @@ -71,7 +72,7 @@ public IIcon getIcon(ItemStack itemStack, int renderPass) { @Override public void onUpdate(ItemStack ist, World world, Entity e, int i, boolean f) { - if (!Reliquary.PROXY.disableCoinAudio) + if (!Reliquary.CONFIG.getBool(Names.fortune_coin, "disableAudio")) if (NBTHelper.getShort("soundTimer", ist) > 0) { if (NBTHelper.getShort("soundTimer", ist) % 2 == 0) { world.playSoundAtEntity(e, "random.orb", 0.1F, 0.5F * ((world.rand.nextFloat() - world.rand.nextFloat()) * 0.7F + 1.8F)); @@ -128,7 +129,7 @@ private void teleportEntityToPlayer(Entity item, EntityPlayer player) { double y = player.posY - player.height / 2F; double z = player.posZ + player.getLookVec().zCoord * 0.2D; item.setPosition(x, y, z); - if (!Reliquary.PROXY.disableCoinAudio) { + if (!Reliquary.CONFIG.getBool(Names.fortune_coin, "disableAudio")) { player.worldObj.playSoundAtEntity(player, "random.orb", 0.1F, 0.5F * ((player.worldObj.rand.nextFloat() - player.worldObj.rand.nextFloat()) * 0.7F + 1.8F)); } } @@ -184,7 +185,7 @@ public ItemStack onItemRightClick(ItemStack ist, World world, EntityPlayer playe if (player.isSneaking()) { player.setItemInUse(ist, this.getMaxItemUseDuration(ist)); } else { - if (!Reliquary.PROXY.disableCoinAudio) { + if (!Reliquary.CONFIG.getBool(Names.fortune_coin, "disableAudio")) { NBTHelper.setShort("soundTimer", ist, 6); } ist.setItemDamage(ist.getItemDamage() == 0 ? 1 : 0); diff --git a/src/main/java/xreliquary/items/ItemGlowingBread.java b/src/main/java/xreliquary/items/ItemGlowingBread.java old mode 100755 new mode 100644 index 6a1db3a4..9200344e --- a/src/main/java/xreliquary/items/ItemGlowingBread.java +++ b/src/main/java/xreliquary/items/ItemGlowingBread.java @@ -10,14 +10,14 @@ import net.minecraft.item.ItemStack; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -import xreliquary.util.LanguageHelper; +import lib.enderwizards.sandstone.util.LanguageHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemGlowingBread extends ItemFood { public ItemGlowingBread() { diff --git a/src/main/java/xreliquary/items/ItemGlowingWater.java b/src/main/java/xreliquary/items/ItemGlowingWater.java old mode 100755 new mode 100644 index 4f09a1ca..e3a826eb --- a/src/main/java/xreliquary/items/ItemGlowingWater.java +++ b/src/main/java/xreliquary/items/ItemGlowingWater.java @@ -2,21 +2,22 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import xreliquary.Reliquary; import xreliquary.entities.EntityGlowingWater; -import xreliquary.init.ContentHandler; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemGlowingWater extends ItemBase { public ItemGlowingWater() { - super(Reference.MOD_ID, Names.glowing_water); + super(Names.glowing_water); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(64); diff --git a/src/main/java/xreliquary/items/ItemGunPart.java b/src/main/java/xreliquary/items/ItemGunPart.java old mode 100755 new mode 100644 index 70225abf..5313b8e1 --- a/src/main/java/xreliquary/items/ItemGunPart.java +++ b/src/main/java/xreliquary/items/ItemGunPart.java @@ -2,26 +2,27 @@ import java.util.List; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemGunPart extends ItemBase { @SideOnly(Side.CLIENT) private IIcon[] icons; public ItemGunPart() { - super(Reference.MOD_ID, Names.gun_part); + super(Names.gun_part); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(1); diff --git a/src/main/java/xreliquary/items/ItemHandgun.java b/src/main/java/xreliquary/items/ItemHandgun.java old mode 100755 new mode 100644 index 96d0fbe8..50e9dfb8 --- a/src/main/java/xreliquary/items/ItemHandgun.java +++ b/src/main/java/xreliquary/items/ItemHandgun.java @@ -1,5 +1,6 @@ package xreliquary.items; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -17,8 +18,8 @@ import xreliquary.entities.EntitySandShot; import xreliquary.entities.EntitySeekerShot; import xreliquary.entities.EntityStormShot; -import xreliquary.init.ContentHandler; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Colors; import xreliquary.lib.Names; import xreliquary.lib.Reference; @@ -26,11 +27,11 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemHandgun extends ItemBase { public ItemHandgun() { - super(Reference.MOD_ID, Names.handgun); + super(Names.handgun); this.setMaxStackSize(1); canRepair = false; this.setCreativeTab(Reliquary.CREATIVE_TAB); diff --git a/src/main/java/xreliquary/items/ItemHeroMedallion.java b/src/main/java/xreliquary/items/ItemHeroMedallion.java index 27874345..eba4e45f 100644 --- a/src/main/java/xreliquary/items/ItemHeroMedallion.java +++ b/src/main/java/xreliquary/items/ItemHeroMedallion.java @@ -6,6 +6,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -15,16 +16,16 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; import xreliquary.util.NBTHelper; -@XRInit +@ContentInit public class ItemHeroMedallion extends ItemBase { public ItemHeroMedallion() { - super(Reference.MOD_ID, Names.hero_medallion); + super(Names.hero_medallion); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(1); @@ -80,14 +81,14 @@ public void onUpdate(ItemStack ist, World world, Entity e, int i, boolean f) { if (e instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer)e; //in order to make this stop at a specific leve, we will need to do a preemptive check for a specific leve. - if (player.experienceLevel < Reliquary.PROXY.heroMedallionLevelThreshold) { + if (player.experienceLevel < Reliquary.CONFIG.getInt(Names.hero_medallion, "xpLevelCap")) { if (getExperience(ist) > 0) { increasePlayerExperience(player); decreaseMedallionExperience(ist); } } else { - if ((player.experienceLevel > Reliquary.PROXY.heroMedallionLevelThreshold || player.experience > 0F) && getExperience(ist) < Integer.MAX_VALUE){ + if ((player.experienceLevel > Reliquary.CONFIG.getInt(Names.hero_medallion, "xpLevelCap") || player.experience > 0F) && getExperience(ist) < Integer.MAX_VALUE){ decreasePlayerExperience(player); increaseMedallionExperience(ist); } @@ -98,7 +99,7 @@ public void onUpdate(ItemStack ist, World world, Entity e, int i, boolean f) { //I'm not 100% this is needed. You may be able to avoid this whole call by //using the method in the player class, might be worth testing (player.addExperience(-1)?) public void decreasePlayerExperience(EntityPlayer player) { - if (player.experience - (1.0F / (float)player.xpBarCap()) <= 0 && player.experienceLevel > Reliquary.PROXY.heroMedallionLevelThreshold){ + if (player.experience - (1.0F / (float)player.xpBarCap()) <= 0 && player.experienceLevel > Reliquary.CONFIG.getInt(Names.hero_medallion, "xpLevelCap")){ decreasePlayerLevel(player); return; } diff --git a/src/main/java/xreliquary/items/ItemHolyHandGrenade.java b/src/main/java/xreliquary/items/ItemHolyHandGrenade.java old mode 100755 new mode 100644 index e3d53e87..0ccdd032 --- a/src/main/java/xreliquary/items/ItemHolyHandGrenade.java +++ b/src/main/java/xreliquary/items/ItemHolyHandGrenade.java @@ -1,22 +1,23 @@ package xreliquary.items; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import xreliquary.Reliquary; import xreliquary.entities.EntityHolyHandGrenade; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemHolyHandGrenade extends ItemBase { public ItemHolyHandGrenade() { - super(Reference.MOD_ID, Names.holy_hand_grenade); + super(Names.holy_hand_grenade); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(64); diff --git a/src/main/java/xreliquary/items/ItemIceRod.java b/src/main/java/xreliquary/items/ItemIceRod.java old mode 100755 new mode 100644 index 26fd096d..5fee2976 --- a/src/main/java/xreliquary/items/ItemIceRod.java +++ b/src/main/java/xreliquary/items/ItemIceRod.java @@ -1,5 +1,6 @@ package xreliquary.items; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; @@ -8,17 +9,17 @@ import net.minecraft.world.World; import xreliquary.Reliquary; import xreliquary.entities.EntitySpecialSnowball; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemIceRod extends ItemBase { public ItemIceRod() { - super(Reference.MOD_ID, Names.ice_magus_rod); + super(Names.ice_magus_rod); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(257); this.setMaxStackSize(1); diff --git a/src/main/java/xreliquary/items/ItemKrakenShell.java b/src/main/java/xreliquary/items/ItemKrakenShell.java index 4c5bfb19..778d68da 100644 --- a/src/main/java/xreliquary/items/ItemKrakenShell.java +++ b/src/main/java/xreliquary/items/ItemKrakenShell.java @@ -2,6 +2,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -9,15 +10,15 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemKrakenShell extends ItemBase { public ItemKrakenShell() { - super(Reference.MOD_ID, Names.kraken_shell); + super(Names.kraken_shell); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(1); diff --git a/src/main/java/xreliquary/items/ItemKrakenShellFragment.java b/src/main/java/xreliquary/items/ItemKrakenShellFragment.java index 8d44ed42..9b3eedda 100644 --- a/src/main/java/xreliquary/items/ItemKrakenShellFragment.java +++ b/src/main/java/xreliquary/items/ItemKrakenShellFragment.java @@ -2,17 +2,18 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.item.ItemStack; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemKrakenShellFragment extends ItemBase { public ItemKrakenShellFragment() { - super(Reference.MOD_ID, Names.kraken_shell_fragment); + super(Names.kraken_shell_fragment); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(64); diff --git a/src/main/java/xreliquary/items/ItemMagazine.java b/src/main/java/xreliquary/items/ItemMagazine.java old mode 100755 new mode 100644 index 67299c53..acdb0baa --- a/src/main/java/xreliquary/items/ItemMagazine.java +++ b/src/main/java/xreliquary/items/ItemMagazine.java @@ -2,6 +2,7 @@ import java.util.List; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; @@ -9,19 +10,19 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Colors; import xreliquary.lib.Names; import xreliquary.lib.Reference; -import xreliquary.util.LanguageHelper; +import lib.enderwizards.sandstone.util.LanguageHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemMagazine extends ItemBase { public ItemMagazine() { - super(Reference.MOD_ID, Names.magazine); + super(Names.magazine); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxStackSize(64); canRepair = false; diff --git a/src/main/java/xreliquary/items/ItemMagicbane.java b/src/main/java/xreliquary/items/ItemMagicbane.java old mode 100755 new mode 100644 index d74f4e4a..295e4fdb --- a/src/main/java/xreliquary/items/ItemMagicbane.java +++ b/src/main/java/xreliquary/items/ItemMagicbane.java @@ -15,14 +15,14 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -import xreliquary.util.LanguageHelper; +import lib.enderwizards.sandstone.util.LanguageHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemMagicbane extends ItemSword { public ItemMagicbane() { diff --git a/src/main/java/xreliquary/items/ItemMercyCross.java b/src/main/java/xreliquary/items/ItemMercyCross.java old mode 100755 new mode 100644 index fc178fa4..daf3e9e7 --- a/src/main/java/xreliquary/items/ItemMercyCross.java +++ b/src/main/java/xreliquary/items/ItemMercyCross.java @@ -21,14 +21,14 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -import xreliquary.util.LanguageHelper; +import lib.enderwizards.sandstone.util.LanguageHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemMercyCross extends ItemSword { public ItemMercyCross() { diff --git a/src/main/java/xreliquary/items/ItemMidasTouchstone.java b/src/main/java/xreliquary/items/ItemMidasTouchstone.java old mode 100755 new mode 100644 index 735fedc8..b8f75a97 --- a/src/main/java/xreliquary/items/ItemMidasTouchstone.java +++ b/src/main/java/xreliquary/items/ItemMidasTouchstone.java @@ -1,5 +1,6 @@ package xreliquary.items; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; @@ -10,18 +11,18 @@ import net.minecraft.item.ItemTool; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; import xreliquary.util.NBTHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemMidasTouchstone extends ItemBase { public ItemMidasTouchstone() { - super(Reference.MOD_ID, Names.midas_touchstone); + super(Names.midas_touchstone); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(257); this.setMaxStackSize(1); diff --git a/src/main/java/xreliquary/items/ItemPhoenixDown.java b/src/main/java/xreliquary/items/ItemPhoenixDown.java index e36e6efb..d2d422ad 100644 --- a/src/main/java/xreliquary/items/ItemPhoenixDown.java +++ b/src/main/java/xreliquary/items/ItemPhoenixDown.java @@ -1,19 +1,19 @@ package xreliquary.items; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; /** * Created by Xeno on 5/15/14. */ -@XRInit +@ContentInit public class ItemPhoenixDown extends ItemAngelicFeather { public ItemPhoenixDown() { - super(Reference.MOD_ID, Names.phoenix_down); + super(Names.phoenix_down); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxStackSize(1); canRepair = false; diff --git a/src/main/java/xreliquary/items/ItemSalamanderEye.java b/src/main/java/xreliquary/items/ItemSalamanderEye.java old mode 100755 new mode 100644 index 62b9c613..56a22f87 --- a/src/main/java/xreliquary/items/ItemSalamanderEye.java +++ b/src/main/java/xreliquary/items/ItemSalamanderEye.java @@ -3,8 +3,9 @@ import java.util.Iterator; import java.util.List; -import xreliquary.init.XRInit; -import xreliquary.util.ObjectUtils; +import lib.enderwizards.sandstone.init.ContentInit; +import lib.enderwizards.sandstone.items.ItemBase; +import lib.enderwizards.sandstone.util.ContentHelper; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -18,25 +19,23 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.event.ClientEventHandler; import xreliquary.lib.Names; -import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemSalamanderEye extends ItemBase { public ItemSalamanderEye() { - super(Reference.MOD_ID, Names.salamander_eye); + super(Names.salamander_eye); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(1); canRepair = false; } - protected ItemSalamanderEye(String modid, String name) { - super(modid, name); + protected ItemSalamanderEye(String name) { + super(name); } @Override @@ -115,7 +114,7 @@ private void doExtinguishEffect(EntityPlayer player) { for (int xOff = -3; xOff <= 3; xOff++) { for (int yOff = -3; yOff <= 3; yOff++) { for (int zOff = -3; zOff <= 3; zOff++) - if (ObjectUtils.getBlockIdentifier(player.worldObj.getBlock(x + xOff, y + yOff, z + zOff)).equals(ObjectUtils.getBlockIdentifier(Blocks.fire))) { + if (ContentHelper.getIndent(player.worldObj.getBlock(x + xOff, y + yOff, z + zOff)).equals(ContentHelper.getIndent(Blocks.fire))) { player.worldObj.setBlock(x + xOff, y + yOff, z + zOff, Blocks.air); player.worldObj.playSoundEffect(x + xOff + 0.5D, y + yOff + 0.5D, z + zOff + 0.5D, "random.fizz", 0.5F, 2.6F + (player.worldObj.rand.nextFloat() - player.worldObj.rand.nextFloat()) * 0.8F); } diff --git a/src/main/java/xreliquary/items/ItemSerpentStaff.java b/src/main/java/xreliquary/items/ItemSerpentStaff.java index 6b80a067..1f95d150 100644 --- a/src/main/java/xreliquary/items/ItemSerpentStaff.java +++ b/src/main/java/xreliquary/items/ItemSerpentStaff.java @@ -1,20 +1,30 @@ package xreliquary.items; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import lib.enderwizards.sandstone.items.ItemBase; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.event.entity.player.PlayerUseItemEvent; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentInit; +import xreliquary.entities.EntityKrakenSlime; +import xreliquary.entities.EntitySpecialSnowball; import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemSerpentStaff extends ItemBase { public ItemSerpentStaff() { - super(Reference.MOD_ID, Names.serpent_staff); + super(Names.serpent_staff); this.setCreativeTab(Reliquary.CREATIVE_TAB); - this.setMaxDamage(0); + this.setMaxDamage(200); this.setMaxStackSize(1); canRepair = false; } @@ -24,5 +34,37 @@ public ItemSerpentStaff() { public boolean hasEffect(ItemStack stack) { return true; } + + @Override + @SideOnly(Side.CLIENT) + public boolean isFull3D() { + return true; + } + + @Override + public EnumAction getItemUseAction(ItemStack par1ItemStack) { + return EnumAction.block; + } + + @Override + public void onUsingTick(ItemStack item, EntityPlayer player, int count) { + if(player.worldObj.isRemote || count % 3 != 0) + return; + + player.worldObj.playSoundAtEntity(player, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + player.worldObj.spawnEntityInWorld(new EntityKrakenSlime(player.worldObj, player)); + item.damageItem(1, player); + } + + @Override + public int getMaxItemUseDuration(ItemStack stack) { + return 72000; + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + player.setItemInUse(stack, 72000); + return stack; + } } diff --git a/src/main/java/xreliquary/items/ItemSojournerStaff.java b/src/main/java/xreliquary/items/ItemSojournerStaff.java old mode 100755 new mode 100644 index cd06d3df..a7b28b38 --- a/src/main/java/xreliquary/items/ItemSojournerStaff.java +++ b/src/main/java/xreliquary/items/ItemSojournerStaff.java @@ -1,7 +1,8 @@ package xreliquary.items; -import xreliquary.init.XRInit; -import xreliquary.util.ObjectUtils; +import lib.enderwizards.sandstone.init.ContentInit; +import lib.enderwizards.sandstone.items.ItemBase; +import lib.enderwizards.sandstone.util.ContentHelper; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -15,16 +16,15 @@ import net.minecraft.world.World; import xreliquary.Reliquary; import xreliquary.lib.Names; -import xreliquary.lib.Reference; import xreliquary.util.NBTHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemSojournerStaff extends ItemBase { public ItemSojournerStaff() { - super(Reference.MOD_ID, Names.sojourner_staff); + super(Names.sojourner_staff); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(513); this.setMaxStackSize(1); @@ -84,9 +84,9 @@ public boolean onItemUse(ItemStack ist, EntityPlayer player, World world, int x, return false; Block blockTargetted = world.getBlock(x, y, z); - if (ObjectUtils.areBlocksEqual(blockTargetted, Blocks.snow)) { + if (ContentHelper.areBlocksEqual(blockTargetted, Blocks.snow)) { side = 1; - } else if (!ObjectUtils.areBlocksEqual(blockTargetted, Blocks.vine) && !ObjectUtils.areBlocksEqual(blockTargetted, Blocks.tallgrass) && !ObjectUtils.areBlocksEqual(blockTargetted, Blocks.deadbush) && (blockTargetted == null || !blockTargetted.isReplaceable(world, x, y, z))) { + } else if (!ContentHelper.areBlocksEqual(blockTargetted, Blocks.vine) && !ContentHelper.areBlocksEqual(blockTargetted, Blocks.tallgrass) && !ContentHelper.areBlocksEqual(blockTargetted, Blocks.deadbush) && (blockTargetted == null || !blockTargetted.isReplaceable(world, x, y, z))) { x += side == 4 ? -1 : side == 5 ? 1 : 0; y += side == 0 ? -1 : side == 1 ? 1 : 0; z += side == 2 ? -1 : side == 3 ? 1 : 0; @@ -188,7 +188,7 @@ public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, i if (!world.setBlock(x, y, z, Blocks.torch, metadata, 3)) return false; - if (ObjectUtils.areBlocksEqual(world.getBlock(x, y, z), Blocks.torch)) { + if (ContentHelper.areBlocksEqual(world.getBlock(x, y, z), Blocks.torch)) { Blocks.torch.onNeighborBlockChange(world, x, y, z, world.getBlock(x, y, z)); Blocks.torch.onBlockPlacedBy(world, x, y, z, player, stack); } diff --git a/src/main/java/xreliquary/items/ItemSquidBeak.java b/src/main/java/xreliquary/items/ItemSquidBeak.java index d363538d..efb14e78 100644 --- a/src/main/java/xreliquary/items/ItemSquidBeak.java +++ b/src/main/java/xreliquary/items/ItemSquidBeak.java @@ -1,18 +1,16 @@ package xreliquary.items; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.item.ItemStack; +import lib.enderwizards.sandstone.items.ItemBase; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; -@XRInit +@ContentInit public class ItemSquidBeak extends ItemBase { public ItemSquidBeak() { - super(Reference.MOD_ID, Names.squid_beak); + super(Names.squid_beak); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(64); diff --git a/src/main/java/xreliquary/items/ItemTwilightCloak.java b/src/main/java/xreliquary/items/ItemTwilightCloak.java index 33af8262..447d85ac 100644 --- a/src/main/java/xreliquary/items/ItemTwilightCloak.java +++ b/src/main/java/xreliquary/items/ItemTwilightCloak.java @@ -1,13 +1,9 @@ package xreliquary.items; -import java.util.List; - -import com.google.common.collect.ImmutableMap; - +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; @@ -16,18 +12,18 @@ import net.minecraft.world.World; import xreliquary.Reliquary; import xreliquary.event.ClientEventHandler; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Colors; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemTwilightCloak extends ItemBase { public ItemTwilightCloak() { - super(Reference.MOD_ID, Names.twilight_cloak); + super(Names.twilight_cloak); this.setCreativeTab(Reliquary.CREATIVE_TAB); //this.setMaxDamage(2401); this.setMaxStackSize(1); @@ -87,7 +83,7 @@ public void onUpdate(ItemStack ist, World world, Entity e, int i, boolean f) { EntityPlayer player = (EntityPlayer) e; //always on for now, takes effect only at night, or low light (configurable) //if (ist.getItemDamage() == 0) return; - if (world.getWorldTime() % 24000 < 12000 && player.worldObj.getBlockLightValue((int)Math.floor(player.posX), (int)Math.floor(player.posY), (int)Math.floor(player.posZ)) > Reliquary.PROXY.twilightCloakLightThreshold) return; + if (world.getWorldTime() % 24000 < 12000 && player.worldObj.getBlockLightValue((int)Math.floor(player.posX), (int)Math.floor(player.posY), (int)Math.floor(player.posZ)) > Reliquary.CONFIG.getInt(Names.twilight_cloak, "maxLightLevel")) return; //checks if the effect would do anything. PotionEffect quickInvisibility = new PotionEffect(Potion.invisibility.id, 2, 0, true); if (!player.isPotionApplicable(quickInvisibility)) return; diff --git a/src/main/java/xreliquary/items/ItemVoidTear.java b/src/main/java/xreliquary/items/ItemVoidTear.java old mode 100755 new mode 100644 index 66345e28..51f548ff --- a/src/main/java/xreliquary/items/ItemVoidTear.java +++ b/src/main/java/xreliquary/items/ItemVoidTear.java @@ -4,6 +4,7 @@ import com.google.common.collect.ImmutableMap; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; @@ -13,19 +14,18 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; -import xreliquary.Reliquary; -import xreliquary.init.ContentHandler; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemVoidTear extends ItemBase { public ItemVoidTear() { - super(Reference.MOD_ID, Names.void_tear); + super(Names.void_tear); this.setMaxDamage(0); this.setMaxStackSize(1); canRepair = false; diff --git a/src/main/java/xreliquary/items/ItemWitherlessRose.java b/src/main/java/xreliquary/items/ItemWitherlessRose.java old mode 100755 new mode 100644 index 0f40fd70..ffb48e3f --- a/src/main/java/xreliquary/items/ItemWitherlessRose.java +++ b/src/main/java/xreliquary/items/ItemWitherlessRose.java @@ -2,6 +2,7 @@ import java.util.Random; +import lib.enderwizards.sandstone.items.ItemBase; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; @@ -9,17 +10,17 @@ import net.minecraft.potion.Potion; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.init.XRInit; +import lib.enderwizards.sandstone.init.ContentInit; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemWitherlessRose extends ItemBase { public ItemWitherlessRose() { - super(Reference.MOD_ID, Names.witherless_rose); + super(Names.witherless_rose); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(1); diff --git a/src/main/java/xreliquary/items/ItemWraithEye.java b/src/main/java/xreliquary/items/ItemWraithEye.java old mode 100755 new mode 100644 index 7110bba7..fb9fefc3 --- a/src/main/java/xreliquary/items/ItemWraithEye.java +++ b/src/main/java/xreliquary/items/ItemWraithEye.java @@ -4,9 +4,9 @@ import com.google.common.collect.ImmutableMap; -import xreliquary.init.ContentHandler; -import xreliquary.init.XRInit; -import xreliquary.util.ObjectUtils; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentInit; +import lib.enderwizards.sandstone.util.ContentHelper; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -17,18 +17,17 @@ import net.minecraft.util.IIcon; import net.minecraft.world.World; import xreliquary.Reliquary; -import xreliquary.event.ClientEventHandler; import xreliquary.lib.Names; import xreliquary.lib.Reference; import xreliquary.util.NBTHelper; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@XRInit +@ContentInit public class ItemWraithEye extends ItemSalamanderEye { public ItemWraithEye() { - super(Reference.MOD_ID, Names.wraith_eye); + super(Names.wraith_eye); this.setCreativeTab(Reliquary.CREATIVE_TAB); this.setMaxDamage(0); this.setMaxStackSize(1); @@ -72,7 +71,7 @@ public ItemStack onItemRightClick(ItemStack eye, World world, EntityPlayer par2E if (!world.isRemote) { par2EntityPlayer.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.DARK_RED + "Out of range!")); } - } else if (eye.getTagCompound() != null && ObjectUtils.areBlocksEqual(world.getBlock(eye.getTagCompound().getInteger("nodeX" + getWorld(par2EntityPlayer)), eye.getTagCompound().getInteger("nodeY" + getWorld(par2EntityPlayer)), eye.getTagCompound().getInteger("nodeZ" + getWorld(par2EntityPlayer))), ContentHandler.getBlock(Names.wraith_node))) { + } else if (eye.getTagCompound() != null && ContentHelper.areBlocksEqual(world.getBlock(eye.getTagCompound().getInteger("nodeX" + getWorld(par2EntityPlayer)), eye.getTagCompound().getInteger("nodeY" + getWorld(par2EntityPlayer)), eye.getTagCompound().getInteger("nodeZ" + getWorld(par2EntityPlayer))), ContentHandler.getBlock(Names.wraith_node))) { if (canTeleport(world, eye.getTagCompound().getInteger("nodeX" + getWorld(par2EntityPlayer)), eye.getTagCompound().getInteger("nodeY" + getWorld(par2EntityPlayer)), eye.getTagCompound().getInteger("nodeZ" + getWorld(par2EntityPlayer)))) { @@ -147,7 +146,7 @@ public void addInformation(ItemStack eye, EntityPlayer par2EntityPlayer, List li @Override public boolean onItemUse(ItemStack ist, EntityPlayer player, World world, int x, int y, int z, int side, float xOff, float yOff, float zOff) { // if right clicking on a wraith node, bind the eye to that wraith node. - if ((ist.getTagCompound() == null || !(ist.getTagCompound().hasKey("dimensionID"))) && ObjectUtils.areBlocksEqual(world.getBlock(x, y, z), ContentHandler.getBlock(Names.wraith_node))) { + if ((ist.getTagCompound() == null || !(ist.getTagCompound().hasKey("dimensionID"))) && ContentHelper.areBlocksEqual(world.getBlock(x, y, z), ContentHandler.getBlock(Names.wraith_node))) { setWraithNode(ist, x, y, z, Integer.valueOf(getWorld(player)), player); player.playSound("mob.endermen.portal", 1.0f, 1.0f); diff --git a/src/main/java/xreliquary/items/alkahestry/AlkahestryCraftingRecipe.java b/src/main/java/xreliquary/items/alkahestry/AlkahestryCraftingRecipe.java index f4e51244..7550212e 100644 --- a/src/main/java/xreliquary/items/alkahestry/AlkahestryCraftingRecipe.java +++ b/src/main/java/xreliquary/items/alkahestry/AlkahestryCraftingRecipe.java @@ -1,10 +1,10 @@ package xreliquary.items.alkahestry; -import xreliquary.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.util.ContentHelper; import xreliquary.lib.Names; import xreliquary.util.alkahestry.AlkahestRecipe; import xreliquary.util.alkahestry.Alkahestry; -import xreliquary.util.ObjectUtils; import xreliquary.Reliquary; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; @@ -21,9 +21,9 @@ public boolean matches(InventoryCrafting inv, World world) { for (int count = 0; count < inv.getSizeInventory(); count++) { ItemStack stack = inv.getStackInSlot(count); if (stack != null) { - if (ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getItemIdentifier(ContentHandler.getItem(Names.alkahest_tome)))) { + if (ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIdent(ContentHandler.getItem(Names.alkahestry_tome)))) { tome = stack.copy(); - } else if (!ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getItemIdentifier(ContentHandler.getItem(Names.alkahest_tome)))) { + } else if (!ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIdent(ContentHandler.getItem(Names.alkahestry_tome)))) { if (valid == 0) { valid = 1; itemStack = stack; @@ -36,10 +36,10 @@ public boolean matches(InventoryCrafting inv, World world) { if (tome != null && valid == 1 && itemStack != null) { AlkahestRecipe recipe = null; if (Alkahestry.getDictionaryKey(itemStack) == null) - recipe = Alkahestry.getRegistry().get(ObjectUtils.getItemIdentifier(itemStack.getItem())); + recipe = Alkahestry.getRegistry().get(ContentHelper.getIdent(itemStack.getItem())); else recipe = Alkahestry.getDictionaryKey(itemStack); - return recipe != null && (tome.getItemDamage() + recipe.cost <= Reliquary.PROXY.tomeRedstoneLimit); + return recipe != null && (tome.getItemDamage() + recipe.cost <= Reliquary.CONFIG.getInt(Names.alkahestry_tome, "redstoneLimit")); } else { return false; } @@ -52,9 +52,9 @@ public ItemStack getCraftingResult(InventoryCrafting inv) { for (int count = 0; count < inv.getSizeInventory(); count++) { ItemStack stack = inv.getStackInSlot(count); if (stack != null) { - if (!(ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getItemIdentifier(ContentHandler.getItem(Names.alkahest_tome))))) { + if (!(ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIdent(ContentHandler.getItem(Names.alkahestry_tome))))) { if (Alkahestry.getDictionaryKey(stack) == null) - returned = Alkahestry.getRegistry().get(ObjectUtils.getItemIdentifier(stack.getItem())); + returned = Alkahestry.getRegistry().get(ContentHelper.getIdent(stack.getItem())); else { returned = Alkahestry.getDictionaryKey(stack); dictStack = stack; @@ -76,7 +76,7 @@ public int getRecipeSize() { @Override public ItemStack getRecipeOutput() { - return new ItemStack(ContentHandler.getItem(Names.alkahest_tome), 1); + return new ItemStack(ContentHandler.getItem(Names.alkahestry_tome), 1); } } diff --git a/src/main/java/xreliquary/items/alkahestry/AlkahestryRedstoneRecipe.java b/src/main/java/xreliquary/items/alkahestry/AlkahestryRedstoneRecipe.java index 6dbba6f3..2a9b0269 100644 --- a/src/main/java/xreliquary/items/alkahestry/AlkahestryRedstoneRecipe.java +++ b/src/main/java/xreliquary/items/alkahestry/AlkahestryRedstoneRecipe.java @@ -1,8 +1,8 @@ package xreliquary.items.alkahestry; -import xreliquary.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentHandler; +import lib.enderwizards.sandstone.util.ContentHelper; import xreliquary.lib.Names; -import xreliquary.util.ObjectUtils; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.inventory.InventoryCrafting; @@ -20,12 +20,12 @@ public boolean matches(InventoryCrafting inv, World world) { for (int count = 0; count < inv.getSizeInventory(); count++) { ItemStack stack = inv.getStackInSlot(count); if (stack != null) { - if (ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getItemIdentifier(ContentHandler.getItem(Names.alkahest_tome)))) { + if (ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIdent(ContentHandler.getItem(Names.alkahestry_tome)))) { tome = stack.copy(); - } else if (ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getItemIdentifier(Items.redstone))) { + } else if (ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIdent(Items.redstone))) { if (valid == 0) valid = 1; amount++; - } else if (ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getBlockIdentifier(Blocks.redstone_block))) { + } else if (ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIndent(Blocks.redstone_block))) { if (valid == 0) valid = 1; amount += 9; } else { @@ -51,11 +51,11 @@ public ItemStack getCraftingResult(InventoryCrafting inv) { for (int count = 0; count < inv.getSizeInventory(); count++) { ItemStack stack = inv.getStackInSlot(count); if (stack != null) { - if (ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getItemIdentifier(ContentHandler.getItem(Names.alkahest_tome)))) { + if (ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIdent(ContentHandler.getItem(Names.alkahestry_tome)))) { tome = stack.copy(); - } else if (ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getBlockIdentifier(Blocks.redstone_block))) { + } else if (ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIndent(Blocks.redstone_block))) { amount += 9; - } else if (ObjectUtils.getItemIdentifier(stack.getItem()).equals(ObjectUtils.getItemIdentifier(Items.redstone))) { + } else if (ContentHelper.getIdent(stack.getItem()).equals(ContentHelper.getIdent(Items.redstone))) { amount++; } } @@ -72,7 +72,7 @@ public int getRecipeSize() { @Override public ItemStack getRecipeOutput() { - return new ItemStack(ContentHandler.getItem(Names.alkahest_tome), 1); + return new ItemStack(ContentHandler.getItem(Names.alkahestry_tome), 1); } } diff --git a/src/main/java/xreliquary/items/block/ItemBlockBase.java b/src/main/java/xreliquary/items/block/ItemBlockBase.java deleted file mode 100644 index 63f31c0b..00000000 --- a/src/main/java/xreliquary/items/block/ItemBlockBase.java +++ /dev/null @@ -1,77 +0,0 @@ -package xreliquary.items.block; - -import com.google.common.collect.ImmutableMap; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import xreliquary.util.LanguageHelper; - -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -/** - * ItemBlockBase, a helper class for item blocks. Handles language names and language - * parsing (see LanguageHelper). - * - * In most ways, completely similar to xreliquary.items.ItemBase. - * - * @author TheMike - */ -public class ItemBlockBase extends ItemBlock { - - public ItemBlockBase(Block block) { - super(block); - } - - /** - * Just a call to formatTooltip(). If you are overriding this function, call - * formatTooltip() directly and DO NOT call super.addInformation(). - */ - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean whatDoesThisEvenDo) { - this.formatTooltip(null, stack, list); - } - - /** - * Used to format tooltips. Grabs tooltip from language registry with the - * entry 'item.unlocalizedName.tooltip'. Has support for Handlebars-style - * templating, and line breaking using '\n'. - * - * @param toFormat - * An ImmutableMap that has all the regex keys and values. Regex - * strings are handled on the tooltip by including '{{regexKey}}' - * with your regex key, of course. - * @param stack - * The ItemStack passed from addInformation. - * @param list - * List of description lines passed from addInformation. - */ - public void formatTooltip(ImmutableMap toFormat, ItemStack stack, List list) { - String langTooltip = LanguageHelper.getLocalization(this.getUnlocalizedNameInefficiently(stack) + ".tooltip"); - if (langTooltip == null) - return; - if (toFormat != null) { - Iterator> entrySet = toFormat.entrySet().iterator(); - while (entrySet.hasNext()) { - Map.Entry toReplace = entrySet.next(); - langTooltip = langTooltip.replace("{{" + toReplace.getKey() + "}}", toReplace.getValue()); - } - } - - for (String descriptionLine : langTooltip.split(";")) { - if (descriptionLine != null && descriptionLine.length() > 0) - list.add(descriptionLine); - } - } - - @Override - @SideOnly(Side.CLIENT) - public String getItemStackDisplayName(ItemStack stack) { - return LanguageHelper.getLocalization(this.getUnlocalizedNameInefficiently(stack) + ".name"); - } - -} \ No newline at end of file diff --git a/src/main/java/xreliquary/items/block/ItemFertileLilypad.java b/src/main/java/xreliquary/items/block/ItemFertileLilypad.java old mode 100755 new mode 100644 index b2ef5021..9bec4b51 --- a/src/main/java/xreliquary/items/block/ItemFertileLilypad.java +++ b/src/main/java/xreliquary/items/block/ItemFertileLilypad.java @@ -10,7 +10,7 @@ import net.minecraft.util.IIcon; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; -import xreliquary.init.ContentHandler; +import lib.enderwizards.sandstone.init.ContentHandler; import xreliquary.lib.Names; import xreliquary.lib.Reference; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/xreliquary/lib/Colors.java b/src/main/java/xreliquary/lib/Colors.java old mode 100755 new mode 100644 index 4b80fd65..828bd816 --- a/src/main/java/xreliquary/lib/Colors.java +++ b/src/main/java/xreliquary/lib/Colors.java @@ -48,23 +48,4 @@ public class Colors { public static final String RUINATION_COLOR = "676720"; public static final String FERTILIZER_COLOR = "DDDDDD"; - /* Unicode colors that you can use in the tooltips/names lang files. - * Use by calling {{!name}}, with name being the name of the color without the UNICODE_ prefix. - * Case dosen't matter, can be lowercase (I prefer it). */ - public static final String UNICODE_BLACK = "\u00A70"; - public static final String UNICODE_NAVY = "\u00A71"; - public static final String UNICODE_GREEN = "\u00A72"; - public static final String UNICODE_BLUE = "\u00A73"; - public static final String UNICODE_RED = "\u00A74"; - public static final String UNICODE_PURPLE = "\u00A75"; - public static final String UNICODE_GOLD = "\u00A76"; - public static final String UNICODE_LIGHT_GRAY = "\u00A77"; - public static final String UNICODE_GRAY = "\u00A78"; - public static final String UNICODE_DARK_PURPLE = "\u00A79"; - public static final String UNICODE_LIGHT_GREEN = "\u00A7a"; - public static final String UNICODE_LIGHT_BLUE = "\u00A7b"; - public static final String UNICODE_ROSE = "\u00A7c"; - public static final String UNICODE_LIGHT_PURPLE = "\u00A7d"; - public static final String UNICODE_YELLOW = "\u00A7e"; - public static final String UNICODE_WHITE = "\u00A7f"; } diff --git a/src/main/java/xreliquary/lib/Names.java b/src/main/java/xreliquary/lib/Names.java old mode 100755 new mode 100644 index 91c683c5..7eed85ea --- a/src/main/java/xreliquary/lib/Names.java +++ b/src/main/java/xreliquary/lib/Names.java @@ -11,7 +11,7 @@ public class Names { public static final String magazine = "magazine"; public static final String magazine_overlay = "magazine_overlay"; public static final String sojourner_staff = "sojourner_staff"; - public static final String alkahest_tome = "alkahest_tome"; + public static final String alkahestry_tome = "alkahest_tome"; public static final String holy_hand_grenade = "holy_hand_grenade"; public static final String fortune_coin = "fortune_coin"; public static final String fortune_coin_overlay = "fortune_coin_overlay"; diff --git a/src/main/java/xreliquary/lib/Reference.java b/src/main/java/xreliquary/lib/Reference.java old mode 100755 new mode 100644 diff --git a/src/main/java/xreliquary/util/LanguageHelper.java b/src/main/java/xreliquary/util/LanguageHelper.java deleted file mode 100644 index 466ba225..00000000 --- a/src/main/java/xreliquary/util/LanguageHelper.java +++ /dev/null @@ -1,45 +0,0 @@ -package xreliquary.util; - -import net.minecraft.util.StatCollector; -import xreliquary.lib.Colors; - -import java.util.HashMap; -import java.util.Map; - -public class LanguageHelper { - - public static Map preprocesssed = new HashMap(); - - public static String getLocalization(String key) { - String localization = getLocalization(key, true); - - if(localization.contains("{{!")) { - while(localization.contains("{{!")) { - int startingIndex = localization.indexOf("{{!"); - int endingIndex = localization.substring(startingIndex).indexOf("}}") + startingIndex; - String fragment = localization.substring(startingIndex + 3, endingIndex); - - try { - String replacement = (String) Colors.class.getField("UNICODE_" + fragment.toUpperCase()).get(null); - localization = localization.substring(0, startingIndex) + replacement + localization.substring(endingIndex + 2); - } catch(Exception e) { - localization = localization.substring(0, startingIndex) + localization.substring(endingIndex + 2); - } - } - - preprocesssed.put(key, localization); - } else if(preprocesssed.containsKey(key)) { - return preprocesssed.get(key); - } - return localization; - } - - private static String getLocalization(String key, boolean fallback) { - String localization = StatCollector.translateToLocal(key); - if(localization.equals(key) && fallback) { - localization = StatCollector.translateToFallback(key); - } - return localization; - } - -} diff --git a/src/main/java/xreliquary/util/LogHelper.java b/src/main/java/xreliquary/util/LogHelper.java deleted file mode 100755 index 2c9b3d87..00000000 --- a/src/main/java/xreliquary/util/LogHelper.java +++ /dev/null @@ -1,17 +0,0 @@ -package xreliquary.util; - -import org.apache.logging.log4j.Level; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import xreliquary.lib.Reference; - -public class LogHelper { - - private static Logger logger = LogManager.getLogger(Reference.MOD_ID); - - public static void log(Level logLevel, String message) { - logger.log(logLevel, message); - } - -} \ No newline at end of file diff --git a/src/main/java/xreliquary/util/ObjectUtils.java b/src/main/java/xreliquary/util/ObjectUtils.java deleted file mode 100644 index b60abe6a..00000000 --- a/src/main/java/xreliquary/util/ObjectUtils.java +++ /dev/null @@ -1,50 +0,0 @@ -package xreliquary.util; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; - -/** - * ItemBase, a helper class for blocks and items, but not manipulating objects themselves. Right now, - * all it does it provide a clean way to get a block identifier (as in, minecraft:water). - * - * @author TheMike - */ -public class ObjectUtils { - - /** - * Returns a block identifier. Examples of these are 'minecraft:water', 'xreliquary:lilypad', etc. Will return null - * if the block itself is null. - * - * @param block - * The block to get the identifier from. - */ - public static String getBlockIdentifier(Block block) { - return block == null ? null : Block.blockRegistry.getNameForObject(block); - } - - /** - * Returns a item identifier. Examples of these are 'minecraft:water', 'xreliquary:lilypad', etc. Will return null - * if the item itself is null. - * - * @param item - * The item to get the identifier from. - */ - public static String getItemIdentifier(Item item) { - return item == null ? null : Item.itemRegistry.getNameForObject(item); - } - - /** - * Returns true if the item identifier of item1 matches that of item2. Returns false otherwise. - */ - public static boolean areItemsEqual(Item item1, Item item2) { - return getItemIdentifier(item1).equals(getItemIdentifier(item2)); - } - - /** - * Returns true if the block identifier of block1 matches that of block2. Returns false otherwise. - */ - public static boolean areBlocksEqual(Block block1, Block block2) { - return getBlockIdentifier(block1).equals(getBlockIdentifier(block2)); - } - -} diff --git a/src/main/java/xreliquary/util/alkahestry/Alkahestry.java b/src/main/java/xreliquary/util/alkahestry/Alkahestry.java index 99b2fbcc..1b8c5392 100644 --- a/src/main/java/xreliquary/util/alkahestry/Alkahestry.java +++ b/src/main/java/xreliquary/util/alkahestry/Alkahestry.java @@ -3,7 +3,7 @@ import java.util.HashMap; import java.util.Map; -import xreliquary.util.ObjectUtils; +import lib.enderwizards.sandstone.util.ContentHelper; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -20,7 +20,7 @@ public class Alkahestry { public static void addKey(AlkahestRecipe recipe) { if (recipe.dictionaryName == null) - REGISTRY.put(ObjectUtils.getItemIdentifier(recipe.item.getItem()), recipe); + REGISTRY.put(ContentHelper.getIdent(recipe.item.getItem()), recipe); else REGISTRY.put("OreDictionary:" + String.valueOf(OreDictionary.getOreID(recipe.dictionaryName)), recipe); } diff --git a/src/main/java/xreliquary/util/misc/Duo.java b/src/main/java/xreliquary/util/misc/Duo.java deleted file mode 100644 index 703254be..00000000 --- a/src/main/java/xreliquary/util/misc/Duo.java +++ /dev/null @@ -1,13 +0,0 @@ -package xreliquary.util.misc; - -public class Duo { - - public final K one; - public final V two; - - public Duo(K par1, V par2) { - one = par1; - two = par2; - } - -} diff --git a/src/main/java/xreliquary/util/potions/PotionEssence.java b/src/main/java/xreliquary/util/potions/PotionEssence.java index c9d011a6..f0e81750 100644 --- a/src/main/java/xreliquary/util/potions/PotionEssence.java +++ b/src/main/java/xreliquary/util/potions/PotionEssence.java @@ -10,8 +10,6 @@ /** * PotionEssence, the helper class for well, potion essences. * Abstracts away juggling all that NBT data, combining effects, and applying effects. - * - * @author TheMike */ public class PotionEssence { diff --git a/src/main/java/xreliquary/util/potions/PotionIngredient.java b/src/main/java/xreliquary/util/potions/PotionIngredient.java index 3de92208..669170ac 100644 --- a/src/main/java/xreliquary/util/potions/PotionIngredient.java +++ b/src/main/java/xreliquary/util/potions/PotionIngredient.java @@ -2,7 +2,7 @@ import net.minecraft.item.Item; import net.minecraft.potion.PotionEffect; -import xreliquary.util.misc.Duo; +import lib.enderwizards.sandstone.util.misc.Duo; public class PotionIngredient { diff --git a/src/main/resources/assets/xreliquary/lang/en_US.lang b/src/main/resources/assets/xreliquary/lang/en_US.lang index 7fe63efd..b7fe9487 100644 --- a/src/main/resources/assets/xreliquary/lang/en_US.lang +++ b/src/main/resources/assets/xreliquary/lang/en_US.lang @@ -6,7 +6,7 @@ tile.altar_idle.name=Altar of Light tile.altar.name=Altar of Light tile.lilypad.name=Lilypad of Fertility tile.wraith_node.name=Wraith Node -tile.interdiction_torch.name={{!yellow}}Interdiction Torch +tile.interdiction_torch.name={{!colors.yellow}}Interdiction Torch tile.interdiction_torch.tooltip=Seems to repel monsters. Neat. tile.apothecary_cauldron.name=Apothecary Cauldron tile.apothecary_cauldron.tooltip=Used to brew potions, stylishly. @@ -63,7 +63,7 @@ item.mercy_cross.tooltip="Damn, that thing's heavy!";That, my friend, is because item.sojourner_staff.name=Sojourner's Staff item.sojourner_staff.tooltip=Consumes torches, can place them;long distance, but costs extra. item.alkahest_tome.name=Tome of Alkahestry -item.alkahest_tome.tooltip={{!rose}}Redstone: {{redstoneAmount}}/{{redstoneLimit}};It says: perform basic, intermediate or;advanced Alkahestry, whatever that is. +item.alkahest_tome.tooltip={{!colors.rose}}Redstone: {{redstoneAmount}}/{{redstoneLimit}};It says: perform basic, intermediate or;advanced Alkahestry, whatever that is. item.holy_hand_grenade.name=Holy Hand Grenade item.holy_hand_grenade.tooltip=Kills mobs, not blocks;or whoever threw it. item.fortune_coin.name=Coin of Fortune @@ -79,7 +79,7 @@ item.emperor_chalice.tooltip=An infinite water bucket;unless you drink from it.; item.salamander_eye.name=Salamander's Eye item.salamander_eye.tooltip=Dispels blaze fireballs and reflects;ghast fireballs while held.;Puts out fires on and around you. item.destruction_catalyst.name=Destruction Catalyst -item.destruction_catalyst.tooltip=Consumes 3 Gunpowder on right click, no less.;Blows up a 3x3x3 Cube behind target cube.;{{!white}}Destroys mundane blocks only. +item.destruction_catalyst.tooltip=Consumes 3 Gunpowder on right click, no less.;Blows up a 3x3x3 Cube behind target cube.;{{!colors.white}}Destroys mundane blocks only. item.ice_magus_rod.name=Ice Magus Rod item.ice_magus_rod.tooltip=Consumes snowballs in inventory.;Makes snowballs a bit colder... item.magicbane.name=Magicbane @@ -89,13 +89,13 @@ item.witherless_rose.tooltip=With the Nether Stars enchanting this rose;the hold item.twilight_cloak.name=Twilight Cloak item.twilight_cloak.tooltip=Makes you invisible at night. item.wraith_eye.name=Wraith's Eye -item.wraith_eye.tooltip=Right clicking a Wraith Node binds to it;allowing you to return to it at will,;for the cost of an Ender Pearl.;{{!purple}}{{phrase}} {{position}}. +item.wraith_eye.tooltip=Right clicking a Wraith Node binds to it;allowing you to return to it at will,;for the cost of an Ender Pearl.;{{!colors.purple}}{{phrase}} {{position}}. item.void_tear_empty.name=Empty Void Tear item.void_tear_empty.tooltip=An empty void tear, right clicking;absorbs the dominant inventory item. item.void_tear.name=Void Tear item.void_tear.tooltip=This Void Tear currently;holds {{holds}}. item.hero_medallion.name=Hero's Medallion -item.hero_medallion.tooltip={{!green}}Experience: {{experience}};For when you just need;somewhere to put;all that experience. +item.hero_medallion.tooltip={{!colors.green}}Experience: {{experience}};For when you just need;somewhere to put;all that experience. item.ender_staff.name=Ender Staff item.ender_staff.tooltip=Consumes Ender Pearls from inventory.;Throws them a bit farther. item.angelic_feather.name=Angelic Feather @@ -108,7 +108,7 @@ item.dragon_talon.name=Dragon Talon item.dragon_talon.tooltip=An artificed dragon;talon, not much use alone. item.dragon_claws.name=Dragon Claws item.dragon_claws.tooltip=Absorbs fire damage at;the expense of hunger. -item.claws_of_the_firedrinker.name={{!red}}Claws of the Firedrinker +item.claws_of_the_firedrinker.name={{!colors.red}}Claws of the Firedrinker item.claws_of_the_firedrinker.tooltip=Consumes fire damage (yum!);absorbs lava damage at;the expense of hunger. item.squid_beak.name=Squid Beak item.squid_beak.tooltip=Somewhere out there;is a very sad, very;mouthless squid. @@ -120,7 +120,7 @@ item.angelheart_vial.name=Angelheart Vial item.angelheart_vial.tooltip=Resurrects you once;and breaks. item.elsewhere_flask.name=Elsewhere Flask item.elsewhere_flask.tooltip=Imbibe potions within it simultaneously.{{contents}} -item.serpent_staff.name={{!green}}Serpent Staff +item.serpent_staff.name={{!colors.green}}Serpent Staff item.serpent_staff.tooltip=All that nasty stuff;from a Kraken's spit,;thrown at your enemies. item.potion_0.name=Condensed Splash Serum diff --git a/src/main/resources/assets/xreliquary/textures/blocks/._interdiction_torch.png b/src/main/resources/assets/xreliquary/textures/blocks/._interdiction_torch.png new file mode 100644 index 0000000000000000000000000000000000000000..db28e3963422476245a9287e0b6566d9e7fd2506 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vvYvJF zKST$^44`r`G%bukK2%&ZIX_n~v7jI)Rj;r#u_!UGBr`9S!N9=4$lBD{Jk{L7+`u}Z zD77pzwcHxblu_~`koCFbN*D&(Z5l_(_TB<5uU`@&FNLz+VM NKin%a408Yf0{}3GEinK9 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/xreliquary/textures/blocks/altar.png b/src/main/resources/assets/xreliquary/textures/blocks/altar.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/blocks/altar_idle.png b/src/main/resources/assets/xreliquary/textures/blocks/altar_idle.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/blocks/apothecary_cauldron_inside.png b/src/main/resources/assets/xreliquary/textures/blocks/apothecary_cauldron_inside.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/blocks/interdiction_torch.png b/src/main/resources/assets/xreliquary/textures/blocks/interdiction_torch.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/blocks/lilypad.png b/src/main/resources/assets/xreliquary/textures/blocks/lilypad.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/blocks/wraith_node.png b/src/main/resources/assets/xreliquary/textures/blocks/wraith_node.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/blocks/wraith_node_top.png b/src/main/resources/assets/xreliquary/textures/blocks/wraith_node_top.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/entities/blazeShot.png b/src/main/resources/assets/xreliquary/textures/entities/blazeShot.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/entities/busterShot.png b/src/main/resources/assets/xreliquary/textures/entities/busterShot.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/entities/concussiveShot.png b/src/main/resources/assets/xreliquary/textures/entities/concussiveShot.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/entities/enderShot.png b/src/main/resources/assets/xreliquary/textures/entities/enderShot.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/entities/exorcismShot.png b/src/main/resources/assets/xreliquary/textures/entities/exorcismShot.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/entities/neutralShot.png b/src/main/resources/assets/xreliquary/textures/entities/neutralShot.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/entities/sandShot.png b/src/main/resources/assets/xreliquary/textures/entities/sandShot.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/entities/seekerShot.png b/src/main/resources/assets/xreliquary/textures/entities/seekerShot.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/entities/stormShot.png b/src/main/resources/assets/xreliquary/textures/entities/stormShot.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/entities/thrownItemsSheet.png b/src/main/resources/assets/xreliquary/textures/entities/thrownItemsSheet.png old mode 100755 new mode 100644 index 56de0556049a8a52e888c102237679a682309a94..9931d5f0e01714dfe2f3c0ea41bfb37ba7794184 GIT binary patch literal 2004 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 L?tfKkmhb)tgGE69 diff --git a/src/main/resources/assets/xreliquary/textures/gui/book.png b/src/main/resources/assets/xreliquary/textures/gui/book.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/._serpent_staff.png b/src/main/resources/assets/xreliquary/textures/items/._serpent_staff.png new file mode 100644 index 0000000000000000000000000000000000000000..d12adf6a5c7f2e979eea9ad744817f375bd87274 GIT binary patch literal 4096 zcmeH~%}T>S5XUEqs0hW2iXde#^_Fy-ek3-h+N9D$@vESMAltZYLX&JvHeg?+N1wpQ z(AV%q>V~$8UOd&)4($GCcXoGXf46~+{Y_W{=n)s4U!z;JuzU};#n1r?uR_JT@ByF{ zh5v`O`u!_w`aYZAfH!e``s+&mdcJ=Nu;;Q+BXJy1?I|M(iMSt85mFAt)CDMg$3x1= zBjKbu?%7>V!yAt#w3Dzf1&ndUs#lGnJH)1S#@HyJ_s=?Rdm=pdNJNrJp2;#g6W9ko@nPgTdP+8FDmtsBN54*Zm3{GzNq>>hZW$IWs%&N40a%H|z&T3Q^9 zF1B_`qDokI26>TSrNDxd=K!+R+0uqfyFTCp7{^R|h|NqK(1jX6x6P18ji2wiq literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/xreliquary/textures/items/alkahest_tome.png b/src/main/resources/assets/xreliquary/textures/items/alkahest_tome.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/bullet.png b/src/main/resources/assets/xreliquary/textures/items/bullet.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/bullet_overlay.png b/src/main/resources/assets/xreliquary/textures/items/bullet_overlay.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/condensed_potion.png b/src/main/resources/assets/xreliquary/textures/items/condensed_potion.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/condensed_potion_overlay.png b/src/main/resources/assets/xreliquary/textures/items/condensed_potion_overlay.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/condensed_potion_splash.png b/src/main/resources/assets/xreliquary/textures/items/condensed_potion_splash.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/condensed_potion_splash_overlay.png b/src/main/resources/assets/xreliquary/textures/items/condensed_potion_splash_overlay.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/destruction_catalyst.png b/src/main/resources/assets/xreliquary/textures/items/destruction_catalyst.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/emperor_chalice.png b/src/main/resources/assets/xreliquary/textures/items/emperor_chalice.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/emperor_chalice_overlay.png b/src/main/resources/assets/xreliquary/textures/items/emperor_chalice_overlay.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/fortune_coin.png b/src/main/resources/assets/xreliquary/textures/items/fortune_coin.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/fortune_coin_overlay.png b/src/main/resources/assets/xreliquary/textures/items/fortune_coin_overlay.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/glowing_bread.png b/src/main/resources/assets/xreliquary/textures/items/glowing_bread.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/glowing_water.png b/src/main/resources/assets/xreliquary/textures/items/glowing_water.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/gun_part_0.png b/src/main/resources/assets/xreliquary/textures/items/gun_part_0.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/gun_part_1.png b/src/main/resources/assets/xreliquary/textures/items/gun_part_1.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/gun_part_2.png b/src/main/resources/assets/xreliquary/textures/items/gun_part_2.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/handgun.png b/src/main/resources/assets/xreliquary/textures/items/handgun.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/handgun_overlay.png b/src/main/resources/assets/xreliquary/textures/items/handgun_overlay.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/holy_hand_grenade.png b/src/main/resources/assets/xreliquary/textures/items/holy_hand_grenade.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/lilypad.png b/src/main/resources/assets/xreliquary/textures/items/lilypad.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/magazine.png b/src/main/resources/assets/xreliquary/textures/items/magazine.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/magazine_overlay.png b/src/main/resources/assets/xreliquary/textures/items/magazine_overlay.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/magicbane.png b/src/main/resources/assets/xreliquary/textures/items/magicbane.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/mercy_cross.png b/src/main/resources/assets/xreliquary/textures/items/mercy_cross.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/midas_touchstone.png b/src/main/resources/assets/xreliquary/textures/items/midas_touchstone.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/salamander_eye.png b/src/main/resources/assets/xreliquary/textures/items/salamander_eye.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/sojourner_staff.png b/src/main/resources/assets/xreliquary/textures/items/sojourner_staff.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/void_tear.png b/src/main/resources/assets/xreliquary/textures/items/void_tear.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/void_tear_empty.png b/src/main/resources/assets/xreliquary/textures/items/void_tear_empty.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/witherless_rose.png b/src/main/resources/assets/xreliquary/textures/items/witherless_rose.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/items/wraith_eye.png b/src/main/resources/assets/xreliquary/textures/items/wraith_eye.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/logo/xrlogo.png b/src/main/resources/assets/xreliquary/textures/logo/xrlogo.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/models/handgun.png b/src/main/resources/assets/xreliquary/textures/models/handgun.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/xreliquary/textures/templates/Blank.png b/src/main/resources/assets/xreliquary/textures/templates/Blank.png old mode 100755 new mode 100644 diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info old mode 100755 new mode 100644