├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── src └── main │ ├── resources │ ├── assets │ │ └── witchinggadgets │ │ │ ├── textures │ │ │ ├── gui │ │ │ │ ├── steam_overlay.png.mcmeta │ │ │ │ ├── bag.png │ │ │ │ ├── loom.png │ │ │ │ ├── voidBag.png │ │ │ │ ├── bagCloak.png │ │ │ │ ├── bracelet.png │ │ │ │ ├── tileLock.png │ │ │ │ ├── armorStand.png │ │ │ │ ├── cloakRaven.png │ │ │ │ ├── cuttingTable.png │ │ │ │ ├── labelLibrary.png │ │ │ │ ├── primorRing.png │ │ │ │ ├── arcanecrafter.png │ │ │ │ ├── potioneffects.png │ │ │ │ ├── spinningwheel.png │ │ │ │ ├── steam_overlay.png │ │ │ │ ├── gauntletRadial0.png │ │ │ │ ├── gauntletRadial1.png │ │ │ │ ├── nei │ │ │ │ │ ├── blastfurnace.png │ │ │ │ │ └── spinningwheel.png │ │ │ │ ├── primordialGlove.png │ │ │ │ ├── research │ │ │ │ │ ├── WGIcon.png │ │ │ │ │ ├── gemcuts.png │ │ │ │ │ ├── icon_mp_trans.png │ │ │ │ │ ├── WGResearchBack.png │ │ │ │ │ ├── icon_mp_cluster.png │ │ │ │ │ ├── weavingRecipes1.png │ │ │ │ │ ├── weavingRecipes2.png │ │ │ │ │ ├── weavingRecipes4.png │ │ │ │ │ ├── aspects_coloured.png │ │ │ │ │ ├── icon_blastfurnace.png │ │ │ │ │ ├── icon_ench_backstab.png │ │ │ │ │ ├── icon_ench_stealth.png │ │ │ │ │ ├── icon_potioneffects.png │ │ │ │ │ ├── spinningRecipes1.png │ │ │ │ │ ├── spinningRecipes2.png │ │ │ │ │ ├── spinningRecipes3.png │ │ │ │ │ ├── WGResearchBackAwoken.png │ │ │ │ │ ├── gemcuts_transparent.png │ │ │ │ │ ├── icon_ench_invisGear.png │ │ │ │ │ ├── icon_ench_soulbound.png │ │ │ │ │ ├── icon_ench_unveiling.png │ │ │ │ │ ├── icon_primordialArmor.png │ │ │ │ │ ├── icon_primordialGear.png │ │ │ │ │ ├── icon_ench_rideProtect.png │ │ │ │ │ └── icon_primordialWeaponry.png │ │ │ │ └── saunaStove_coal.png │ │ │ ├── blocks │ │ │ │ ├── loom.png │ │ │ │ ├── nil.png │ │ │ │ ├── white.png │ │ │ │ ├── roseVine.png │ │ │ │ ├── timeStone.png │ │ │ │ ├── voidBars.png │ │ │ │ ├── loomStrings.png │ │ │ │ ├── sarcophagus.png │ │ │ │ ├── voidWalkway.png │ │ │ │ ├── blastFurnace.png │ │ │ │ ├── darkIronFluid.png │ │ │ │ ├── etherealWall.png │ │ │ │ ├── magicTileLock.png │ │ │ │ ├── obsidianPlate.png │ │ │ │ ├── roseVineBlock.png │ │ │ │ ├── saunaStove_top.png │ │ │ │ ├── voidmetalBlock.png │ │ │ │ ├── saunaStove_coal.png │ │ │ │ ├── saunaStove_side.png │ │ │ │ ├── blastFurnace_bottom.png │ │ │ │ ├── blastFurnace_lava.png │ │ │ │ ├── obsidianDecoration0.png │ │ │ │ ├── obsidianDecoration1.png │ │ │ │ ├── obsidianDecoration2.png │ │ │ │ ├── voidmetalBlock_old.png │ │ │ │ ├── blastFurnace_bottomB.png │ │ │ │ ├── blastFurnace_bottomL.png │ │ │ │ ├── blastFurnace_bottomR.png │ │ │ │ ├── blastFurnace_bottomT.png │ │ │ │ ├── blastFurnace_internal.png │ │ │ │ ├── blastFurnace_sideTop_off.png │ │ │ │ ├── blastFurnace_sideTop_on.png │ │ │ │ ├── blastFurnace_cornerTopL_on.png │ │ │ │ ├── blastFurnace_cornerTopR_on.png │ │ │ │ ├── blastFurnace_sideBottom_on.png │ │ │ │ ├── blastFurnace_cornerBottomL_on.png │ │ │ │ ├── blastFurnace_cornerBottomR_on.png │ │ │ │ ├── blastFurnace_cornerTopL_off.png │ │ │ │ ├── blastFurnace_cornerTopR_off.png │ │ │ │ ├── blastFurnace_sideBottom_off.png │ │ │ │ ├── blastFurnace_sideTop_special.png │ │ │ │ ├── blastFurnace_cornerBottomL_off.png │ │ │ │ ├── blastFurnace_cornerBottomR_off.png │ │ │ │ ├── blastFurnace_cornerTopL_special.png │ │ │ │ ├── blastFurnace_cornerTopR_special.png │ │ │ │ ├── blastFurnace_sideBottom_special.png │ │ │ │ ├── blastFurnace_cornerBottomL_special.png │ │ │ │ ├── blastFurnace_cornerBottomR_special.png │ │ │ │ ├── timeStone.png.mcmeta │ │ │ │ ├── darkIronFluid.png.mcmeta │ │ │ │ └── blastFurnace_lava.png.mcmeta │ │ │ ├── items │ │ │ │ ├── bag.png │ │ │ │ ├── cloak.png │ │ │ │ ├── kama.png │ │ │ │ ├── nil.png │ │ │ │ ├── angelwings.png │ │ │ │ ├── cloak_wolf.png │ │ │ │ ├── kama_raven.png │ │ │ │ ├── kama_wolf.png │ │ │ │ ├── mat_cloth.png │ │ │ │ ├── runicBase.png │ │ │ │ ├── smallCloak.png │ │ │ │ ├── cloak_raven.png │ │ │ │ ├── crystalseed.png │ │ │ │ ├── crystalseed0.png │ │ │ │ ├── crystalseed1.png │ │ │ │ ├── crystalseed2.png │ │ │ │ ├── crystalseed3.png │ │ │ │ ├── crystalseed4.png │ │ │ │ ├── crystalseed5.png │ │ │ │ ├── kama_overlay.png │ │ │ │ ├── mat_wolfPelt.png │ │ │ │ ├── researchIcon.png │ │ │ │ ├── scarf_sniper.png │ │ │ │ ├── bagOverlay_void.png │ │ │ │ ├── bauble_ringLuck.png │ │ │ │ ├── cluster_metal.png │ │ │ │ ├── cluster_overlay.png │ │ │ │ ├── crystalCapsule.png │ │ │ │ ├── food_brainjerky.png │ │ │ │ ├── food_nethercake.png │ │ │ │ ├── food_sweetwart.png │ │ │ │ ├── infusedGem_oval.png │ │ │ │ ├── mat_calculator.png │ │ │ │ ├── mat_photoPlate.png │ │ │ │ ├── mat_threadGold.png │ │ │ │ ├── primordialAxe.png │ │ │ │ ├── primordialGem.png │ │ │ │ ├── primordialSword.png │ │ │ │ ├── scribingTools.png │ │ │ │ ├── thaumiumShears.png │ │ │ │ ├── angeliceliteboots.png │ │ │ │ ├── angelicelitechest.png │ │ │ │ ├── angelicelitehelm.png │ │ │ │ ├── angelicelitelegs.png │ │ │ │ ├── bagOverlay_ender.png │ │ │ │ ├── bagOverlay_hungry.png │ │ │ │ ├── bauble_ringSniper.png │ │ │ │ ├── demoniceliteboots.png │ │ │ │ ├── demonicelitechest.png │ │ │ │ ├── demonicelitehelm.png │ │ │ │ ├── demonicelitelegs.png │ │ │ │ ├── infusedGem_point.png │ │ │ │ ├── mat_clusterArdite.png │ │ │ │ ├── mat_clusterCobalt.png │ │ │ │ ├── mat_clusterNickel.png │ │ │ │ ├── mat_cuttingTools.png │ │ │ │ ├── mat_gemstoneDust.png │ │ │ │ ├── mat_guidingString.png │ │ │ │ ├── mat_threadSimple.png │ │ │ │ ├── primordialArmor0.png │ │ │ │ ├── primordialArmor1.png │ │ │ │ ├── primordialArmor2.png │ │ │ │ ├── primordialArmor3.png │ │ │ │ ├── primordialHammer.png │ │ │ │ ├── bauble_vambraceHaste.png │ │ │ │ ├── cluster_overlayEnd.png │ │ │ │ ├── crystalCapsule_mask.png │ │ │ │ ├── elitearmoranimation.png │ │ │ │ ├── leggingsRobeAdvanced.png │ │ │ │ ├── mat_clusterAluminum.png │ │ │ │ ├── mat_descriptionTag.png │ │ │ │ ├── mat_developedPhoto.png │ │ │ │ ├── mat_powerlessPearl.png │ │ │ │ ├── mat_primordialShard.png │ │ │ │ ├── mat_threadThaumium.png │ │ │ │ ├── primordialArmorRune.png │ │ │ │ ├── primordialGem_frame.png │ │ │ │ ├── bauble_primordialRing.png │ │ │ │ ├── chestplateRobeAdvanced.png │ │ │ │ ├── cluster_overlayNether.png │ │ │ │ ├── crystalCapsule_overlay.png │ │ │ │ ├── mat_clusterFZDarkIron.png │ │ │ │ ├── mat_inscribedThaumium.png │ │ │ │ ├── mat_photoPlate_overlay.png │ │ │ │ ├── primordialAxe_overlay.png │ │ │ │ ├── bauble_shouldersKnockback.png │ │ │ │ ├── bauble_titleCrimsonCult.png │ │ │ │ ├── bauble_vambraceStrength.png │ │ │ │ ├── primordialHammer_overlay.png │ │ │ │ ├── primordialSword_overlay.png │ │ │ │ ├── bauble_primordialRing_gem0.png │ │ │ │ ├── bauble_primordialRing_gem1.png │ │ │ │ ├── bauble_primordialRing_gem2.png │ │ │ │ ├── bauble_shouldersDoublejump.png │ │ │ │ ├── mat_developedPhoto_overlay.png │ │ │ │ ├── chestplateRobeAdvanced_overlay.png │ │ │ │ ├── leggingsRobeAdvanced_overlay.png │ │ │ │ ├── bagOverlay_ender.png.mcmeta │ │ │ │ ├── bagOverlay_hungry.png.mcmeta │ │ │ │ ├── bagOverlay_void.png.mcmeta │ │ │ │ ├── bauble_primordialRing_gem0.png.mcmeta │ │ │ │ ├── bauble_primordialRing_gem1.png.mcmeta │ │ │ │ ├── bauble_primordialRing_gem2.png.mcmeta │ │ │ │ ├── mat_photoPlate.png.mcmeta │ │ │ │ ├── mat_developedPhoto.png.mcmeta │ │ │ │ ├── mat_photoPlate_overlay.png.mcmeta │ │ │ │ ├── mat_developedPhoto_overlay.png.mcmeta │ │ │ │ ├── primordialAxe_overlay.png.mcmeta │ │ │ │ ├── primordialHammer_overlay.png.mcmeta │ │ │ │ ├── primordialSword_overlay.png.mcmeta │ │ │ │ └── elitearmoranimation.png.mcmeta │ │ │ └── models │ │ │ │ ├── cloak.png │ │ │ │ ├── glass.png │ │ │ │ ├── portal.png │ │ │ │ ├── white.png │ │ │ │ ├── birdTail.png │ │ │ │ ├── cloakWolf.png │ │ │ │ ├── labelLib.png │ │ │ │ ├── cloakRaven.png │ │ │ │ ├── terraformer.png │ │ │ │ ├── angelic_helm.png │ │ │ │ ├── angelicelite_1.png │ │ │ │ ├── angelicelite_2.png │ │ │ │ ├── armor_angelic.png │ │ │ │ ├── armor_demonic.png │ │ │ │ ├── cameraLeather.png │ │ │ │ ├── cuttingTable.png │ │ │ │ ├── demonicelite_1.png │ │ │ │ ├── demonicelite_2.png │ │ │ │ ├── magicalBaubles.png │ │ │ │ ├── spinningwheel.png │ │ │ │ ├── advancedRobes_1.png │ │ │ │ ├── advancedRobes_2.png │ │ │ │ ├── primordialArmor.png │ │ │ │ ├── cloakInvisibility.png │ │ │ │ ├── primordialBaubles.png │ │ │ │ ├── primordialBracelet.png │ │ │ │ ├── advancedRobes_1_overlay.png │ │ │ │ └── advancedRobes_2_overlay.png │ │ │ ├── logo.png │ │ │ └── lang │ │ │ ├── de_DE.lang │ │ │ ├── en_US.lang │ │ │ └── credits.md │ └── mcmod.info │ └── java │ └── witchinggadgets │ ├── common │ ├── items │ │ ├── tools │ │ │ └── IPrimordialGear.java │ │ ├── ItemMagicalInstrument.java │ │ ├── ItemThaumiumShears.java │ │ └── EntityItemReforming.java │ ├── util │ │ ├── Lib.java │ │ ├── WGCreativeTab.java │ │ ├── network │ │ │ ├── AbstractPacket.java │ │ │ ├── PacketClientNotifier.java │ │ │ ├── message │ │ │ │ ├── MessageClientNotifier.java │ │ │ │ ├── MessagePlaySound.java │ │ │ │ ├── MessagePrimordialGlove.java │ │ │ │ └── MessageTileUpdate.java │ │ │ ├── PacketTileUpdate.java │ │ │ ├── PacketPrimordialGlove.java │ │ │ └── PacketPlaySound.java │ │ ├── handler │ │ │ ├── Log.java │ │ │ ├── GalacticraftUtil.java │ │ │ └── BaublesUtil.java │ │ ├── research │ │ │ ├── WGResearchItem.java │ │ │ └── WGFakeResearchItem.java │ │ └── registry │ │ │ └── MetalFluidData.java │ ├── gui │ │ ├── SlotGhostSingleItem.java │ │ ├── SlotOutput.java │ │ ├── SlotBag.java │ │ ├── SlotInfusedGem.java │ │ ├── ContainerLabelLibrary.java │ │ ├── ContainerSpinningWheel.java │ │ ├── InventoryBag.java │ │ ├── InventoryPrimordialRing.java │ │ ├── InventoryPrimordialGlove.java │ │ └── InventoryCloak.java │ ├── blocks │ │ ├── BlockFluidDarkIron.java │ │ ├── tiles │ │ │ ├── TileEntityTempLight.java │ │ │ ├── TileEntityVoidWalkway.java │ │ │ ├── TileEntityWGBase.java │ │ │ └── TileEntityAgeingStone.java │ │ ├── ItemBlockMetalDevice.java │ │ ├── ItemBlockWoodenDevice.java │ │ ├── ItemBlockStoneDevice.java │ │ ├── BlockTimeStone.java │ │ └── BlockVoidWalkway.java │ ├── magic │ │ ├── WGEnchantInvisibleGear.java │ │ ├── WGEnchantGemBrittle.java │ │ ├── WGEnchantGemPotency.java │ │ ├── WGEnchantStealth.java │ │ ├── WGEnchantRideProtect.java │ │ ├── WGEnchantBackstab.java │ │ ├── WGEnchantUnveiling.java │ │ └── WGPotion.java │ ├── minetweaker │ │ └── WGMinetweaker.java │ ├── FakeResearchItem.java │ └── CommonProxy.java │ ├── api │ ├── IPrimordialCrafting.java │ ├── ITerraformFocus.java │ └── IInfusedGem.java │ ├── client │ ├── render │ │ ├── NotRenderer.java │ │ ├── EntityRenderReforming.java │ │ ├── ModelSpinningWheel.java │ │ ├── ModelPrimordialBaubles.java │ │ ├── TileRenderSaunaStove.java │ │ ├── ModelMagicalBaubles.java │ │ └── ItemRenderMagicalBaubles.java │ ├── fx │ │ └── EntityFXSweat.java │ ├── gui │ │ ├── GuiBag.java │ │ ├── GuiVoidBag.java │ │ ├── GuiCloakBag.java │ │ ├── GuiSpinningWheel.java │ │ └── GuiLabelLibrary.java │ ├── nei │ │ └── NEIWGConfig.java │ └── ClientTickHandler.java │ └── asm │ ├── WitchingGadgetsCoreLoader.java │ ├── pouch │ ├── GuiPatchedFocusPouch.java │ └── ContainerPatchedFocusPouch.java │ └── WitchingGadgetsCore.java ├── README.md ├── .gitignore ├── config.cfg └── gradlew.bat /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/steam_overlay.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "texture": { 3 | "blur": true 4 | } 5 | } 6 | 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/logo.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/lang/de_DE.lang: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/lang/de_DE.lang -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/lang/en_US.lang: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/lang/en_US.lang -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/bag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/bag.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/loom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/loom.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/loom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/loom.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/nil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/nil.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/voidBag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/voidBag.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bag.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/cloak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/cloak.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/kama.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/kama.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/nil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/nil.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/white.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/bagCloak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/bagCloak.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/bracelet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/bracelet.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/tileLock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/tileLock.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/cloak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/cloak.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/glass.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/portal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/portal.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/white.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/roseVine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/roseVine.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/timeStone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/timeStone.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/voidBars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/voidBars.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/armorStand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/armorStand.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/cloakRaven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/cloakRaven.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/cuttingTable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/cuttingTable.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/labelLibrary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/labelLibrary.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/primorRing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/primorRing.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/angelwings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/angelwings.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/cloak_wolf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/cloak_wolf.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/kama_raven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/kama_raven.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/kama_wolf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/kama_wolf.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_cloth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_cloth.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/runicBase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/runicBase.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/smallCloak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/smallCloak.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/birdTail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/birdTail.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/cloakWolf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/cloakWolf.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/labelLib.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/labelLib.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/loomStrings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/loomStrings.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/sarcophagus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/sarcophagus.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/voidWalkway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/voidWalkway.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/arcanecrafter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/arcanecrafter.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/potioneffects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/potioneffects.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/spinningwheel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/spinningwheel.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/steam_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/steam_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/cloak_raven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/cloak_raven.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/crystalseed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/crystalseed.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/crystalseed0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/crystalseed0.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/crystalseed1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/crystalseed1.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/crystalseed2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/crystalseed2.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/crystalseed3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/crystalseed3.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/crystalseed4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/crystalseed4.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/crystalseed5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/crystalseed5.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/kama_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/kama_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_wolfPelt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_wolfPelt.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/researchIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/researchIcon.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/scarf_sniper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/scarf_sniper.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/cloakRaven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/cloakRaven.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/terraformer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/terraformer.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/darkIronFluid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/darkIronFluid.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/etherealWall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/etherealWall.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/magicTileLock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/magicTileLock.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/obsidianPlate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/obsidianPlate.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/roseVineBlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/roseVineBlock.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/saunaStove_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/saunaStove_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/voidmetalBlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/voidmetalBlock.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/gauntletRadial0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/gauntletRadial0.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/gauntletRadial1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/gauntletRadial1.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/nei/blastfurnace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/nei/blastfurnace.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/nei/spinningwheel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/nei/spinningwheel.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/primordialGlove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/primordialGlove.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/WGIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/WGIcon.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/gemcuts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/gemcuts.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/saunaStove_coal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/saunaStove_coal.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bagOverlay_void.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bagOverlay_void.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_ringLuck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bauble_ringLuck.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/cluster_metal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/cluster_metal.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/cluster_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/cluster_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/crystalCapsule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/crystalCapsule.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/food_brainjerky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/food_brainjerky.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/food_nethercake.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/food_nethercake.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/food_sweetwart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/food_sweetwart.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/infusedGem_oval.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/infusedGem_oval.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_calculator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_calculator.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_photoPlate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_photoPlate.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_threadGold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_threadGold.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialAxe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialAxe.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialGem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialGem.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialSword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialSword.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/scribingTools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/scribingTools.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/thaumiumShears.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/thaumiumShears.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/angelic_helm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/angelic_helm.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/angelicelite_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/angelicelite_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/angelicelite_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/angelicelite_2.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/armor_angelic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/armor_angelic.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/armor_demonic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/armor_demonic.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/cameraLeather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/cameraLeather.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/cuttingTable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/cuttingTable.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/demonicelite_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/demonicelite_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/demonicelite_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/demonicelite_2.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/magicalBaubles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/magicalBaubles.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/spinningwheel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/spinningwheel.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/saunaStove_coal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/saunaStove_coal.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/saunaStove_side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/saunaStove_side.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/angeliceliteboots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/angeliceliteboots.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/angelicelitechest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/angelicelitechest.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/angelicelitehelm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/angelicelitehelm.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/angelicelitelegs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/angelicelitelegs.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bagOverlay_ender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bagOverlay_ender.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bagOverlay_hungry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bagOverlay_hungry.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_ringSniper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bauble_ringSniper.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/demoniceliteboots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/demoniceliteboots.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/demonicelitechest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/demonicelitechest.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/demonicelitehelm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/demonicelitehelm.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/demonicelitelegs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/demonicelitelegs.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/infusedGem_point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/infusedGem_point.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_clusterArdite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_clusterArdite.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_clusterCobalt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_clusterCobalt.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_clusterNickel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_clusterNickel.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_cuttingTools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_cuttingTools.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_gemstoneDust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_gemstoneDust.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_guidingString.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_guidingString.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_threadSimple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_threadSimple.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialArmor0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialArmor0.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialArmor1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialArmor1.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialArmor2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialArmor2.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialArmor3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialArmor3.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialHammer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialHammer.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/advancedRobes_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/advancedRobes_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/advancedRobes_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/advancedRobes_2.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/primordialArmor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/primordialArmor.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_bottom.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_lava.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_lava.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/obsidianDecoration0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/obsidianDecoration0.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/obsidianDecoration1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/obsidianDecoration1.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/obsidianDecoration2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/obsidianDecoration2.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/voidmetalBlock_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/voidmetalBlock_old.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_mp_trans.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_mp_trans.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_vambraceHaste.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bauble_vambraceHaste.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/cluster_overlayEnd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/cluster_overlayEnd.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/crystalCapsule_mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/crystalCapsule_mask.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/elitearmoranimation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/elitearmoranimation.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/leggingsRobeAdvanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/leggingsRobeAdvanced.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_clusterAluminum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_clusterAluminum.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_descriptionTag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_descriptionTag.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_developedPhoto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_developedPhoto.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_powerlessPearl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_powerlessPearl.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_primordialShard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_primordialShard.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_threadThaumium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_threadThaumium.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialArmorRune.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialArmorRune.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialGem_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialGem_frame.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/cloakInvisibility.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/cloakInvisibility.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/primordialBaubles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/primordialBaubles.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/primordialBracelet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/primordialBracelet.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_bottomB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_bottomB.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_bottomL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_bottomL.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_bottomR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_bottomR.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_bottomT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_bottomT.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_internal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_internal.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/WGResearchBack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/WGResearchBack.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_mp_cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_mp_cluster.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/weavingRecipes1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/weavingRecipes1.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/weavingRecipes2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/weavingRecipes2.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/weavingRecipes4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/weavingRecipes4.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_primordialRing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bauble_primordialRing.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/chestplateRobeAdvanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/chestplateRobeAdvanced.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/cluster_overlayNether.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/cluster_overlayNether.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/crystalCapsule_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/crystalCapsule_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_clusterFZDarkIron.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_clusterFZDarkIron.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_inscribedThaumium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_inscribedThaumium.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_photoPlate_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_photoPlate_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialAxe_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialAxe_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideTop_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideTop_off.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideTop_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideTop_on.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/aspects_coloured.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/aspects_coloured.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_blastfurnace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_blastfurnace.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_backstab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_backstab.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_stealth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_stealth.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_potioneffects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_potioneffects.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/spinningRecipes1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/spinningRecipes1.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/spinningRecipes2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/spinningRecipes2.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/spinningRecipes3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/spinningRecipes3.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_shouldersKnockback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bauble_shouldersKnockback.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_titleCrimsonCult.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bauble_titleCrimsonCult.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_vambraceStrength.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bauble_vambraceStrength.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialHammer_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialHammer_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialSword_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/primordialSword_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/advancedRobes_1_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/advancedRobes_1_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/models/advancedRobes_2_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/models/advancedRobes_2_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopL_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopL_on.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopR_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopR_on.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideBottom_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideBottom_on.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/WGResearchBackAwoken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/WGResearchBackAwoken.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/gemcuts_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/gemcuts_transparent.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_invisGear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_invisGear.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_soulbound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_soulbound.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_unveiling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_unveiling.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_primordialArmor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_primordialArmor.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_primordialGear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_primordialGear.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_primordialRing_gem0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bauble_primordialRing_gem0.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_primordialRing_gem1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bauble_primordialRing_gem1.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_primordialRing_gem2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bauble_primordialRing_gem2.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_shouldersDoublejump.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/bauble_shouldersDoublejump.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_developedPhoto_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/mat_developedPhoto_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomL_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomL_on.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomR_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomR_on.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopL_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopL_off.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopR_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopR_off.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideBottom_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideBottom_off.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideTop_special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideTop_special.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_rideProtect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_ench_rideProtect.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/gui/research/icon_primordialWeaponry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/gui/research/icon_primordialWeaponry.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/chestplateRobeAdvanced_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/chestplateRobeAdvanced_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/leggingsRobeAdvanced_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/items/leggingsRobeAdvanced_overlay.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomL_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomL_off.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomR_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomR_off.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopL_special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopL_special.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopR_special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerTopR_special.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideBottom_special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_sideBottom_special.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomL_special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomL_special.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomR_special.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KryptonCaptain/WitchingGadgets/HEAD/src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_cornerBottomR_special.png -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/timeStone.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 20, 4 | "frames": [ 5 | 0, 6 | 1, 7 | 2, 8 | 3, 9 | 4, 10 | 5, 11 | 6, 12 | 7 13 | ] 14 | } 15 | } -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Jul 02 15:54:47 CDT 2014 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-bin.zip 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bagOverlay_ender.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frames": [ 4 | {index:0, time:120}, 5 | 1, 6 | 2, 7 | 3, 8 | 4, 9 | 5 10 | ] 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bagOverlay_hungry.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frames": [ 4 | {index:0, time:60}, 5 | 1, 6 | 2, 7 | 3, 8 | 4, 9 | 5 10 | ] 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bagOverlay_void.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 4, 4 | "frames": [ 5 | 0, 6 | 1, 7 | 2, 8 | 3, 9 | 4, 10 | 5 11 | ] 12 | } 13 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/items/tools/IPrimordialGear.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.items.tools; 2 | 3 | import net.minecraft.item.ItemStack; 4 | 5 | public interface IPrimordialGear 6 | { 7 | public void cycleAbilities(ItemStack stack); 8 | public int getAbility(ItemStack stack); 9 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_primordialRing_gem0.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frames": [ 4 | {index:0, time:60}, 5 | 1, 6 | 2, 7 | 3, 8 | 4, 9 | 5 10 | ] 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_primordialRing_gem1.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frames": [ 4 | {index:0, time:60}, 5 | 1, 6 | 2, 7 | 3, 8 | 4, 9 | 5 10 | ] 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/bauble_primordialRing_gem2.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frames": [ 4 | {index:0, time:60}, 5 | 1, 6 | 2, 7 | 3, 8 | 4, 9 | 5 10 | ] 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/api/IPrimordialCrafting.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.api; 2 | 3 | import net.minecraft.item.ItemStack; 4 | 5 | public interface IPrimordialCrafting 6 | { 7 | /** 8 | * @return the amount of Primordial Pearls refunded upon crafting 9 | */ 10 | public int getReturnedPearls(ItemStack stack); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_photoPlate.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frames": [ 4 | {index:0, time:60}, 5 | 1, 6 | 2, 7 | 3, 8 | 4, 9 | 5, 10 | 6, 11 | 7, 12 | 8 13 | ] 14 | } 15 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_developedPhoto.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frames": [ 4 | {index:0, time:60}, 5 | 1, 6 | 2, 7 | 3, 8 | 4, 9 | 5, 10 | 6, 11 | 7, 12 | 8 13 | ] 14 | } 15 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_photoPlate_overlay.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frames": [ 4 | {index:0, time:60}, 5 | 1, 6 | 2, 7 | 3, 8 | 4, 9 | 5, 10 | 6, 11 | 7, 12 | 8 13 | ] 14 | } 15 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/mat_developedPhoto_overlay.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frames": [ 4 | {index:0, time:60}, 5 | 1, 6 | 2, 7 | 3, 8 | 4, 9 | 5, 10 | 6, 11 | 7, 12 | 8 13 | ] 14 | } 15 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/Lib.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util; 2 | 3 | public class Lib 4 | { 5 | public static final String CHAT = "wg.chat."; 6 | public static final String GUI = "wg.gui."; 7 | public static final String DESCRIPTION = "wg.desc."; 8 | public static final String TITLE = "wg.title."; 9 | 10 | public static final long ATTRIBUTE_MOD_UUID = 109406L; 11 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/items/ItemMagicalInstrument.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.items; 2 | 3 | import net.minecraft.item.Item; 4 | import witchinggadgets.WitchingGadgets; 5 | 6 | public class ItemMagicalInstrument extends Item 7 | { 8 | public ItemMagicalInstrument() 9 | { 10 | maxStackSize = 1; 11 | setCreativeTab(WitchingGadgets.tabWG); 12 | setHasSubtypes(true); 13 | } 14 | 15 | 16 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialAxe_overlay.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 3, 4 | "frames": [ 5 | 0, 6 | 1, 7 | 2, 8 | 3, 9 | 4, 10 | 5, 11 | 6, 12 | 7, 13 | 8, 14 | 9, 15 | 10, 16 | 11, 17 | 12, 18 | 13, 19 | 14, 20 | 15 21 | ] 22 | } 23 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialHammer_overlay.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 3, 4 | "frames": [ 5 | 0, 6 | 1, 7 | 2, 8 | 3, 9 | 4, 10 | 5, 11 | 6, 12 | 7, 13 | 8, 14 | 9, 15 | 10, 16 | 11, 17 | 12, 18 | 13, 19 | 14, 20 | 15 21 | ] 22 | } 23 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/primordialSword_overlay.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 3, 4 | "frames": [ 5 | 0, 6 | 1, 7 | 2, 8 | 3, 9 | 4, 10 | 5, 11 | 6, 12 | 7, 13 | 8, 14 | 9, 15 | 10, 16 | 11, 17 | 12, 18 | 13, 19 | 14, 20 | 15 21 | ] 22 | } 23 | } -------------------------------------------------------------------------------- /src/main/resources/mcmod.info: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "modid": "WitchingGadgets", 4 | "name": "Witching Gadgets", 5 | "description": "It's a kind of magic", 6 | "version": "${version}", 7 | "mcversion": "${mcversion}", 8 | "url": "", 9 | "updateUrl": "", 10 | "authorList": ["BluSunrize", "KryptonCaptain"], 11 | "credits": "", 12 | "logoFile": "assets/witchinggadgets/logo.png", 13 | "screenshots": [], 14 | "dependencies": ["Thaumcraft","TravellersGear"] 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/gui/SlotGhostSingleItem.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.gui; 2 | 3 | import net.minecraft.inventory.IInventory; 4 | import thaumcraft.common.container.SlotGhost; 5 | 6 | public class SlotGhostSingleItem extends SlotGhost { 7 | 8 | public SlotGhostSingleItem(IInventory par1iInventory, int par2, int par3, int par4) 9 | { 10 | super(par1iInventory, par2, par3, par4); 11 | } 12 | 13 | public int getSlotStackLimit() 14 | { 15 | return 1; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Logo](https://raw.githubusercontent.com/BluSunrize/WitchingGadgets/master/src/main/resources/assets/witchinggadgets/logo.png) 2 | ============== 3 | 4 | Thaumcraft Addon for those that still crave more content 5 | 6 | Basically just more stuff to add to Thaumcraft. I've been working on this since 1.6.4, finally feel comfortable with doing a beta release ^^ 7 | Warning: This is built with a TC beta version not available to the public yet. So even if you download and compile, you probably wont be able to run it. 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/items/elitearmoranimation.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frames": [ 4 | {index:0, time:20}, 5 | 1, 6 | 2, 7 | 3, 8 | 4, 9 | 5, 10 | 6, 11 | 7, 12 | 8, 13 | 9, 14 | 10, 15 | {index:11, time:20}, 16 | 12, 17 | 13, 18 | 14, 19 | 15, 20 | 16, 21 | 17, 22 | 18, 23 | 19, 24 | 20, 25 | 21 26 | ] 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/gui/SlotOutput.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.gui; 2 | 3 | import net.minecraft.inventory.IInventory; 4 | import net.minecraft.inventory.Slot; 5 | import net.minecraft.item.ItemStack; 6 | 7 | public class SlotOutput extends Slot { 8 | 9 | public SlotOutput(IInventory par1iInventory, int par2, int par3, int par4) 10 | { 11 | super(par1iInventory, par2, par3, par4); 12 | } 13 | 14 | @Override 15 | public boolean isItemValid(ItemStack itemStack) 16 | { 17 | return false; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/WGCreativeTab.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util; 2 | 3 | import net.minecraft.creativetab.CreativeTabs; 4 | import net.minecraft.item.Item; 5 | import net.minecraft.item.ItemStack; 6 | import witchinggadgets.common.WGContent; 7 | 8 | public class WGCreativeTab extends CreativeTabs 9 | { 10 | public WGCreativeTab(int par1, String par2Str) 11 | { 12 | super(par1, par2Str); 13 | } 14 | 15 | @Override 16 | public Item getTabIconItem() 17 | { 18 | return new ItemStack(WGContent.BlockWallMirror).getItem(); 19 | } 20 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/render/NotRenderer.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.render; 2 | 3 | import cpw.mods.fml.relauncher.Side; 4 | import cpw.mods.fml.relauncher.SideOnly; 5 | import net.minecraft.client.Minecraft; 6 | import net.minecraft.client.multiplayer.WorldClient; 7 | import net.minecraftforge.client.IRenderHandler; 8 | 9 | public class NotRenderer extends IRenderHandler { 10 | 11 | @Override 12 | @SideOnly(Side.CLIENT) 13 | public void render(float partialTicks, WorldClient world, Minecraft mc) { 14 | // TODO Auto-generated method stub 15 | 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/gui/SlotBag.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.gui; 2 | 3 | import net.minecraft.inventory.IInventory; 4 | import net.minecraft.inventory.Slot; 5 | 6 | public class SlotBag extends Slot 7 | { 8 | private final ContainerBag pouchContainer; 9 | 10 | public SlotBag(final IInventory inv, final ContainerBag bagContainer, final int id, final int x, final int z) { 11 | super(inv, id, x, z); 12 | this.pouchContainer = bagContainer; 13 | } 14 | 15 | public void onSlotChanged() { 16 | super.onSlotChanged(); 17 | this.pouchContainer.saveCharmPouch(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/network/AbstractPacket.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.network; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import net.minecraft.entity.player.EntityPlayer; 6 | 7 | public abstract class AbstractPacket 8 | { 9 | public abstract void encodeInto(ChannelHandlerContext context, ByteBuf buffer); 10 | 11 | public abstract void decodeInto(ChannelHandlerContext context, ByteBuf buffer); 12 | 13 | public abstract void handleClientSide(EntityPlayer clientPlayer); 14 | 15 | public abstract void handleServerSide(EntityPlayer p2); 16 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/api/ITerraformFocus.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.api; 2 | 3 | import net.minecraft.item.ItemStack; 4 | import net.minecraft.world.World; 5 | import net.minecraft.world.biome.BiomeGenBase; 6 | import thaumcraft.api.aspects.Aspect; 7 | 8 | /** 9 | * This is to be implemented by Blocks! 10 | * @author BluSunrize 11 | */ 12 | public interface ITerraformFocus 13 | { 14 | public Aspect requiredAspect(int metadata); 15 | public Aspect requiredAspect(World world, int x, int y, int z); 16 | public BiomeGenBase getCreatedBiome(World world, int x, int y, int z); 17 | public ItemStack getDisplayedBlock(World world, int x, int y, int z); 18 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/render/EntityRenderReforming.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.render; 2 | 3 | import net.minecraft.client.renderer.entity.RenderItem; 4 | import net.minecraft.entity.Entity; 5 | import witchinggadgets.common.items.EntityItemReforming; 6 | 7 | public class EntityRenderReforming extends RenderItem 8 | { 9 | public void doRender(Entity entity, double x, double y, double z, float par8, float par9) 10 | { 11 | if( ((EntityItemReforming)entity).renderDelay>0 ) 12 | { 13 | this.shadowOpaque = 0.4f; 14 | return; 15 | } 16 | this.shadowOpaque = 1; 17 | super.doRender(entity, x, y, z, par8, par9); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/lang/credits.md: -------------------------------------------------------------------------------- 1 | Localization credit 2 | ---- 3 | * Yulife - de_DE.lang 4 | 5 | 6 | Code credit 7 | ---- 8 | * SlimeKnights/Tinkers Construct - Packet system 9 | * OndraSter - Concept and execution of a core mod, and debugging my broken ASM code 10 | * SpitefulFox - FakeResearchItem system 11 | 12 | Other credit 13 | ---- 14 | * Damien Hazard - Idea and Textures of the Infernal Blast Furnace 15 | * Lorc at game-icons.net - Icons, licensed under CC BY 3.0 http://creativecommons.org/licenses/by/3.0/ 16 | * iChun - Tabula, the ingame modeling system used to create things like the Primordial Armor 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/blocks/BlockFluidDarkIron.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.blocks; 2 | 3 | import net.minecraft.block.material.Material; 4 | import net.minecraft.client.renderer.texture.IIconRegister; 5 | import net.minecraftforge.fluids.BlockFluidFinite; 6 | import net.minecraftforge.fluids.Fluid; 7 | 8 | public class BlockFluidDarkIron extends BlockFluidFinite 9 | { 10 | public BlockFluidDarkIron(Fluid fluid) 11 | { 12 | super(fluid, Material.lava); 13 | } 14 | 15 | @Override 16 | public void registerBlockIcons(IIconRegister par1IconRegister) 17 | { 18 | this.blockIcon = par1IconRegister.registerIcon("witchinggadgets:darkIronFluid"); 19 | } 20 | } -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/darkIronFluid.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 2, 4 | "frames": [ 5 | 0, 6 | 1, 7 | 2, 8 | 3, 9 | 4, 10 | 5, 11 | 6, 12 | 7, 13 | 8, 14 | 9, 15 | 10, 16 | 11, 17 | 12, 18 | 13, 19 | 14, 20 | 15, 21 | 16, 22 | 17, 23 | 18, 24 | 19, 25 | 18, 26 | 17, 27 | 16, 28 | 15, 29 | 14, 30 | 13, 31 | 12, 32 | 11, 33 | 10, 34 | 9, 35 | 8, 36 | 7, 37 | 6, 38 | 5, 39 | 4, 40 | 3, 41 | 2, 42 | 1 43 | ] 44 | } 45 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.git 2 | /.gradle 3 | /.settings 4 | /asm 5 | /bin 6 | /build 7 | /config 8 | /crash-reports 9 | /dumps 10 | /eclipse 11 | /journeymap 12 | /libs 13 | /logs 14 | /mods 15 | /mod-config 16 | /quantumAnomalies 17 | /resourcepacks 18 | /saves 19 | /scripts 20 | /screenshots 21 | /.classpath 22 | /.project 23 | /copy 24 | /git 25 | /world 26 | /armourersWorkshop 27 | /equipmen-database 28 | 29 | /src/api 30 | wg*.* 31 | 32 | options.txt 33 | eula.txt 34 | server.properties 35 | usercache.json 36 | usernamecache.json 37 | whitelist.json 38 | ops.json 39 | banned-ips.json 40 | banned-players.json 41 | ReCubed.dat 42 | servers.dat 43 | config.cfg 44 | minetweaker.log 45 | -------------------------------------------------------------------------------- /src/main/resources/assets/witchinggadgets/textures/blocks/blastFurnace_lava.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 2, 4 | "frames": [ 5 | 0, 6 | 1, 7 | 2, 8 | 3, 9 | 4, 10 | 5, 11 | 6, 12 | 7, 13 | 8, 14 | 9, 15 | 10, 16 | 11, 17 | 12, 18 | 13, 19 | 14, 20 | 15, 21 | 16, 22 | 17, 23 | 18, 24 | 19, 25 | 18, 26 | 17, 27 | 16, 28 | 15, 29 | 14, 30 | 13, 31 | 12, 32 | 11, 33 | 10, 34 | 9, 35 | 8, 36 | 7, 37 | 6, 38 | 5, 39 | 4, 40 | 3, 41 | 2, 42 | 1 43 | ] 44 | } 45 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/handler/Log.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.handler; 2 | 3 | import org.apache.logging.log4j.LogManager; 4 | import org.apache.logging.log4j.Logger; 5 | 6 | import witchinggadgets.WitchingGadgets; 7 | 8 | 9 | 10 | public final class Log { 11 | 12 | public static final Logger LOGGER = LogManager.getLogger(WitchingGadgets.MODID); 13 | 14 | public static void warn(String msg) { 15 | LOGGER.warn(msg); 16 | } 17 | 18 | public static void error(String msg) { 19 | LOGGER.error(msg); 20 | } 21 | 22 | public static void info(String msg) { 23 | LOGGER.info(msg); 24 | } 25 | 26 | public static void debug(String msg) { 27 | LOGGER.debug(msg); 28 | } 29 | 30 | private Log() { 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/blocks/tiles/TileEntityTempLight.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.blocks.tiles; 2 | 3 | import net.minecraft.nbt.NBTTagCompound; 4 | import thaumcraft.common.tiles.TileArcaneLampLight; 5 | 6 | public class TileEntityTempLight extends TileArcaneLampLight 7 | { 8 | int tick = 0; 9 | public int tickMax = 20*20; 10 | 11 | public void updateEntity() 12 | { 13 | if (!this.worldObj.isRemote) 14 | if (this.tick < tickMax) 15 | tick++; 16 | else 17 | this.worldObj.setBlockToAir(this.xCoord, this.yCoord, this.zCoord); 18 | } 19 | 20 | public void readCustomNBT(NBTTagCompound tag) 21 | { 22 | this.tick = tag.getInteger("tickCount"); 23 | } 24 | 25 | public void writeCustomNBT(NBTTagCompound tag) 26 | { 27 | tag.setInteger("tickCount", this.tick); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/fx/EntityFXSweat.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.fx; 2 | 3 | import net.minecraft.client.particle.EntityFX; 4 | import net.minecraft.entity.player.EntityPlayer; 5 | import net.minecraft.util.MathHelper; 6 | 7 | public class EntityFXSweat extends EntityFX 8 | { 9 | public EntityFXSweat(EntityPlayer player) 10 | { 11 | super(player.worldObj, player.posX - 0.2F + (player.getRNG().nextFloat() / 2F), player.boundingBox.minY + 0.5F + player.getRNG().nextFloat(), player.posZ - 0.2F + (player.getRNG().nextFloat() / 2F)); 12 | this.particleBlue = MathHelper.randomFloatClamp(player.getRNG(), 0.3F, 0.8F); 13 | this.particleRed = this.particleGreen = 0.2F; 14 | this.setSize(0.01F, 0.01F); 15 | this.particleGravity = 0.06F; 16 | this.particleMaxAge = 20; 17 | this.motionX = this.motionY = this.motionZ = 0.0D; 18 | } 19 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/items/ItemThaumiumShears.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.items; 2 | 3 | import net.minecraft.client.renderer.texture.IIconRegister; 4 | import net.minecraft.item.EnumRarity; 5 | import net.minecraft.item.ItemShears; 6 | import net.minecraft.item.ItemStack; 7 | import thaumcraft.api.IRepairable; 8 | import thaumcraft.api.ThaumcraftApi; 9 | 10 | public class ItemThaumiumShears extends ItemShears implements IRepairable 11 | { 12 | public ItemThaumiumShears() 13 | { 14 | super(); 15 | this.setMaxDamage(ThaumcraftApi.toolMatThaumium.getMaxUses()); 16 | } 17 | 18 | @Override 19 | public void registerIcons(IIconRegister iconRegister) 20 | { 21 | this.itemIcon = iconRegister.registerIcon("witchinggadgets:thaumiumShears"); 22 | } 23 | 24 | @Override 25 | public EnumRarity getRarity(ItemStack stack) 26 | { 27 | return EnumRarity.uncommon; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/magic/WGEnchantInvisibleGear.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.magic; 2 | 3 | import net.minecraft.enchantment.Enchantment; 4 | import net.minecraft.enchantment.EnumEnchantmentType; 5 | import net.minecraft.item.ItemStack; 6 | 7 | public class WGEnchantInvisibleGear extends Enchantment 8 | { 9 | public WGEnchantInvisibleGear(int id) 10 | { 11 | super(id, 0, EnumEnchantmentType.all); 12 | this.setName("wg.invisibleGear"); 13 | } 14 | 15 | @Override 16 | public int getMinEnchantability(int lvl) 17 | { 18 | return 6; 19 | } 20 | 21 | @Override 22 | public int getMaxEnchantability(int lvl) 23 | { 24 | return getMinEnchantability(lvl) + 20; 25 | } 26 | 27 | @Override 28 | public int getMaxLevel() 29 | { 30 | return 2; 31 | } 32 | 33 | @Override 34 | public boolean canApplyAtEnchantingTable(ItemStack stack) 35 | { 36 | return false; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/asm/WitchingGadgetsCoreLoader.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.asm; 2 | 3 | import java.util.Map; 4 | 5 | import cpw.mods.fml.relauncher.IFMLLoadingPlugin; 6 | 7 | @IFMLLoadingPlugin.MCVersion("1.7.10") 8 | @IFMLLoadingPlugin.Name(WitchingGadgetsCoreLoader.NAME) 9 | public class WitchingGadgetsCoreLoader implements IFMLLoadingPlugin 10 | { 11 | public static final String NAME = "WitchingGadgets Core"; 12 | @Override 13 | public String[] getASMTransformerClass() { 14 | return new String[]{WGCoreTransformer.class.getName()}; 15 | } 16 | @Override 17 | public String getModContainerClass() { 18 | return WitchingGadgetsCore.class.getName(); 19 | } 20 | @Override 21 | public String getSetupClass() { 22 | return null; 23 | } 24 | @Override 25 | public void injectData(Map data) { 26 | } 27 | @Override 28 | public String getAccessTransformerClass() { 29 | return null; 30 | } 31 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/blocks/ItemBlockMetalDevice.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.blocks; 2 | 3 | import java.util.List; 4 | 5 | import net.minecraft.block.Block; 6 | import net.minecraft.creativetab.CreativeTabs; 7 | import net.minecraft.item.Item; 8 | import net.minecraft.item.ItemBlock; 9 | import net.minecraft.item.ItemStack; 10 | 11 | public class ItemBlockMetalDevice extends ItemBlock 12 | { 13 | public ItemBlockMetalDevice(Block b) 14 | { 15 | super(b); 16 | setHasSubtypes(true); 17 | } 18 | 19 | @Override 20 | public int getMetadata (int damageValue) 21 | { 22 | return damageValue; 23 | } 24 | 25 | @Override 26 | public void getSubItems(Item item, CreativeTabs tab, List itemList) 27 | { 28 | this.field_150939_a.getSubBlocks(item, tab, itemList); 29 | } 30 | 31 | @Override 32 | public String getUnlocalizedName(ItemStack itemstack) 33 | { 34 | return getUnlocalizedName()+"."+BlockWGMetalDevice.subNames[itemstack.getItemDamage()]; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/blocks/ItemBlockWoodenDevice.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.blocks; 2 | 3 | import java.util.List; 4 | 5 | import net.minecraft.block.Block; 6 | import net.minecraft.creativetab.CreativeTabs; 7 | import net.minecraft.item.Item; 8 | import net.minecraft.item.ItemBlock; 9 | import net.minecraft.item.ItemStack; 10 | 11 | public class ItemBlockWoodenDevice extends ItemBlock 12 | { 13 | public ItemBlockWoodenDevice(Block b) 14 | { 15 | super(b); 16 | setHasSubtypes(true); 17 | } 18 | 19 | @Override 20 | public int getMetadata (int damageValue) 21 | { 22 | return damageValue; 23 | } 24 | 25 | @Override 26 | public void getSubItems(Item item, CreativeTabs tab, List itemList) 27 | { 28 | this.field_150939_a.getSubBlocks(item, tab, itemList); 29 | } 30 | 31 | @Override 32 | public String getUnlocalizedName(ItemStack itemstack) 33 | { 34 | return getUnlocalizedName()+"."+BlockWGWoodenDevice.subNames[itemstack.getItemDamage()]; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/api/IInfusedGem.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.api; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.item.ItemStack; 5 | import thaumcraft.api.aspects.Aspect; 6 | 7 | public interface IInfusedGem 8 | { 9 | /** 10 | * Handles the performing of the effect. Note that no stack is given here because the effects are also performed by the Primordial Glove 11 | * @param cut 12 | * @param aspect 13 | * @param potency 14 | * @param brittle 15 | * @param player 16 | * @return 17 | */ 18 | public boolean performEffect(String cut, Aspect aspect, int potency, int brittle, EntityPlayer player); 19 | 20 | /** 21 | * Returns the amount of charges consumed upon using a gems effect. This information is important for the Primordial Gauntlet. 22 | * @param cut 23 | * @param aspect 24 | * @param player 25 | * @return 26 | */ 27 | public int getConsumedCharge(String cut, Aspect aspect, EntityPlayer player); 28 | 29 | public boolean isGemEnchantable(ItemStack stack); 30 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/blocks/ItemBlockStoneDevice.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.blocks; 2 | 3 | import java.util.List; 4 | 5 | import net.minecraft.block.Block; 6 | import net.minecraft.creativetab.CreativeTabs; 7 | import net.minecraft.item.Item; 8 | import net.minecraft.item.ItemBlock; 9 | import net.minecraft.item.ItemStack; 10 | 11 | public class ItemBlockStoneDevice extends ItemBlock 12 | { 13 | public ItemBlockStoneDevice(Block b) 14 | { 15 | super(b); 16 | setHasSubtypes(true); 17 | } 18 | 19 | @Override 20 | public int getMetadata (int damageValue) 21 | { 22 | return damageValue; 23 | } 24 | 25 | @Override 26 | public void getSubItems(Item item, CreativeTabs tab, List itemList) 27 | { 28 | itemList.add(new ItemStack(item,1,0)); 29 | itemList.add(new ItemStack(item,1,1)); 30 | 31 | 32 | } 33 | 34 | @Override 35 | public String getUnlocalizedName(ItemStack itemstack) 36 | { 37 | return getUnlocalizedName()+"."+BlockWGStoneDevice.subNames[itemstack.getItemDamage()]; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/magic/WGEnchantGemBrittle.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.magic; 2 | 3 | import net.minecraft.enchantment.Enchantment; 4 | import net.minecraft.enchantment.EnumEnchantmentType; 5 | import net.minecraft.item.ItemStack; 6 | 7 | public class WGEnchantGemBrittle extends Enchantment 8 | { 9 | public WGEnchantGemBrittle(int id, int weight) 10 | { 11 | super(id, weight, EnumEnchantmentType.all); 12 | this.setName("wg.gemstoneBrittle"); 13 | } 14 | 15 | @Override 16 | public int getMinEnchantability(int par1) 17 | { 18 | return 10 + 11 * (par1 - 1); 19 | } 20 | 21 | @Override 22 | public int getMaxEnchantability(int par1) 23 | { 24 | return super.getMinEnchantability(par1) + 50; 25 | } 26 | 27 | @Override 28 | public int getMaxLevel() 29 | { 30 | return 3; 31 | } 32 | 33 | @Override 34 | public boolean canApply(ItemStack stack) 35 | { 36 | return false; 37 | } 38 | 39 | @Override 40 | public boolean canApplyAtEnchantingTable(ItemStack stack) 41 | { 42 | return false; 43 | } 44 | 45 | @Override 46 | public boolean isAllowedOnBooks() 47 | { 48 | return false; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/magic/WGEnchantGemPotency.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.magic; 2 | 3 | import net.minecraft.enchantment.Enchantment; 4 | import net.minecraft.enchantment.EnumEnchantmentType; 5 | import net.minecraft.item.ItemStack; 6 | 7 | public class WGEnchantGemPotency extends Enchantment 8 | { 9 | public WGEnchantGemPotency(int id, int weight) 10 | { 11 | super(id, weight, EnumEnchantmentType.all); 12 | this.setName("wg.gemstonePotency"); 13 | } 14 | 15 | @Override 16 | public int getMinEnchantability(int par1) 17 | { 18 | return 10 + 11 * (par1 - 1); 19 | } 20 | 21 | @Override 22 | public int getMaxEnchantability(int par1) 23 | { 24 | return super.getMinEnchantability(par1) + 50; 25 | } 26 | 27 | @Override 28 | public int getMaxLevel() 29 | { 30 | return 3; 31 | } 32 | 33 | @Override 34 | public boolean canApply(ItemStack stack) 35 | { 36 | return false; 37 | } 38 | 39 | @Override 40 | public boolean canApplyAtEnchantingTable(ItemStack stack) 41 | { 42 | return false; 43 | } 44 | 45 | @Override 46 | public boolean isAllowedOnBooks() 47 | { 48 | return false; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/blocks/BlockTimeStone.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.blocks; 2 | 3 | import net.minecraft.block.BlockContainer; 4 | import net.minecraft.block.material.Material; 5 | import net.minecraft.client.renderer.texture.IIconRegister; 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import net.minecraft.tileentity.TileEntity; 8 | import net.minecraft.world.World; 9 | import witchinggadgets.common.blocks.tiles.TileEntityAgeingStone; 10 | 11 | public class BlockTimeStone extends BlockContainer 12 | { 13 | public BlockTimeStone() { 14 | super(Material.rock); 15 | this.setHardness(0.8F); 16 | this.setResistance(10); 17 | } 18 | 19 | @Override 20 | public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) 21 | { 22 | return false; 23 | } 24 | 25 | @Override 26 | public void registerBlockIcons(IIconRegister iconRegister) 27 | { 28 | this.blockIcon = iconRegister.registerIcon("witchinggadgets:timeStone"); 29 | } 30 | 31 | @Override 32 | public TileEntity createNewTileEntity(World world, int meta) { 33 | return new TileEntityAgeingStone(); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/magic/WGEnchantStealth.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.magic; 2 | 3 | import net.minecraft.enchantment.Enchantment; 4 | import net.minecraft.enchantment.EnumEnchantmentType; 5 | import net.minecraft.item.ItemArmor; 6 | import net.minecraft.item.ItemStack; 7 | 8 | public class WGEnchantStealth extends Enchantment 9 | { 10 | public WGEnchantStealth(int id) 11 | { 12 | super(id, 0, EnumEnchantmentType.armor); 13 | this.setName("wg.stealth"); 14 | } 15 | 16 | @Override 17 | public int getMinEnchantability(int lvl) 18 | { 19 | return 5+(lvl-1)*11; 20 | } 21 | @Override 22 | public int getMaxEnchantability(int lvl) 23 | { 24 | return getMinEnchantability(lvl) + 20; 25 | } 26 | 27 | @Override 28 | public int getMaxLevel() 29 | { 30 | return 5; 31 | } 32 | 33 | @Override 34 | public boolean canApply(ItemStack stack) 35 | { 36 | boolean b = stack!=null && stack.getItem() instanceof ItemArmor && ( ((ItemArmor)stack.getItem()).armorType==2||((ItemArmor)stack.getItem()).armorType==3 ); 37 | return b; 38 | } 39 | 40 | @Override 41 | public boolean canApplyAtEnchantingTable(ItemStack stack) 42 | { 43 | return false; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/blocks/tiles/TileEntityVoidWalkway.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.blocks.tiles; 2 | 3 | import java.util.Iterator; 4 | import java.util.List; 5 | 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import net.minecraft.tileentity.TileEntity; 8 | import net.minecraft.util.AxisAlignedBB; 9 | 10 | public class TileEntityVoidWalkway extends TileEntity 11 | { 12 | 13 | 14 | @Override 15 | public void updateEntity() 16 | { 17 | double minX = this.xCoord-2.5; 18 | double maxX = this.xCoord+2.5; 19 | double minZ = this.zCoord-2.5; 20 | double maxZ = this.zCoord+2.5; 21 | double minY = this.yCoord; 22 | double maxY = this.yCoord+1.5D; 23 | 24 | AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(minX,minY,minZ,maxX,maxY,maxZ); 25 | 26 | List list = worldObj.getEntitiesWithinAABB(EntityPlayer.class, aabb); 27 | boolean flag = false; 28 | Iterator i = list.iterator(); 29 | while(i.hasNext()) 30 | { 31 | EntityPlayer p = (EntityPlayer)i.next(); 32 | if(p.isSneaking())flag = true; 33 | } 34 | if(list.isEmpty() || flag) 35 | { 36 | worldObj.setBlockToAir(xCoord, yCoord, zCoord); 37 | } 38 | else 39 | { 40 | 41 | } 42 | 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/asm/pouch/GuiPatchedFocusPouch.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.asm.pouch; 2 | 3 | import net.minecraft.client.gui.inventory.GuiContainer; 4 | import net.minecraft.entity.player.InventoryPlayer; 5 | import net.minecraft.world.World; 6 | 7 | import org.lwjgl.opengl.GL11; 8 | 9 | import thaumcraft.client.lib.UtilsFX; 10 | 11 | public class GuiPatchedFocusPouch extends GuiContainer 12 | { 13 | public GuiPatchedFocusPouch(InventoryPlayer inventoryPlayer, World world, int x, int y, int z) 14 | { 15 | super(new ContainerPatchedFocusPouch(inventoryPlayer, world, x, y, z)); 16 | // this.blockSlot = par1InventoryPlayer.currentItem; 17 | this.xSize = 175; 18 | this.ySize = 232; 19 | } 20 | 21 | @Override 22 | protected boolean checkHotbarKeys(int par1) 23 | { 24 | return false; 25 | } 26 | @Override 27 | protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) 28 | { 29 | UtilsFX.bindTexture("textures/gui/gui_focuspouch.png"); 30 | GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); 31 | int var5 = (this.width - this.xSize) / 2; 32 | int var6 = (this.height - this.ySize) / 2; 33 | GL11.glEnable(3042); 34 | drawTexturedModalRect(var5, var6, 0, 0, this.xSize, this.ySize); 35 | GL11.glDisable(3042); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/magic/WGEnchantRideProtect.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.magic; 2 | 3 | import net.minecraft.enchantment.Enchantment; 4 | import net.minecraft.enchantment.EnumEnchantmentType; 5 | import net.minecraft.item.ItemArmor; 6 | import net.minecraft.item.ItemStack; 7 | import travellersgear.api.TravellersGearAPI; 8 | import baubles.api.IBauble; 9 | 10 | public class WGEnchantRideProtect extends Enchantment 11 | { 12 | public WGEnchantRideProtect(int id) 13 | { 14 | super(id, 0, EnumEnchantmentType.armor_head); 15 | this.setName("wg.rideProtect"); 16 | } 17 | 18 | @Override 19 | public int getMinEnchantability(int lvl) 20 | { 21 | return 9; 22 | } 23 | 24 | @Override 25 | public int getMaxEnchantability(int lvl) 26 | { 27 | return getMinEnchantability(lvl) + 20; 28 | } 29 | 30 | @Override 31 | public int getMaxLevel() 32 | { 33 | return 1; 34 | } 35 | 36 | @Override 37 | public boolean canApply(ItemStack stack) 38 | { 39 | return stack!=null && (stack.getItem() instanceof ItemArmor || stack.getItem() instanceof IBauble || TravellersGearAPI.isTravellersGear(stack)); 40 | } 41 | 42 | @Override 43 | public boolean canApplyAtEnchantingTable(ItemStack stack) 44 | { 45 | return false; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/magic/WGEnchantBackstab.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.magic; 2 | 3 | import net.minecraft.enchantment.Enchantment; 4 | import net.minecraft.enchantment.EnumEnchantmentType; 5 | import net.minecraft.item.ItemAxe; 6 | import net.minecraft.item.ItemStack; 7 | 8 | public class WGEnchantBackstab extends Enchantment 9 | { 10 | public WGEnchantBackstab(int id) 11 | { 12 | super(id, 0, EnumEnchantmentType.weapon); 13 | this.setName("wg.backstab"); 14 | } 15 | 16 | @Override 17 | public int getMinEnchantability(int lvl) 18 | { 19 | return 5+(lvl-1)*11; 20 | } 21 | @Override 22 | public int getMaxEnchantability(int lvl) 23 | { 24 | return getMinEnchantability(lvl) + 20; 25 | } 26 | 27 | @Override 28 | public int getMaxLevel() 29 | { 30 | return 3; 31 | } 32 | 33 | @Override 34 | public boolean canApplyTogether(Enchantment ench) 35 | { 36 | return ench!=Enchantment.smite && ench!=Enchantment.baneOfArthropods; 37 | } 38 | @Override 39 | public boolean canApply(ItemStack stack) 40 | { 41 | return (stack!=null&&stack.getItem() instanceof ItemAxe)||super.canApply(stack); 42 | } 43 | @Override 44 | public boolean canApplyAtEnchantingTable(ItemStack stack) 45 | { 46 | return false; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/magic/WGEnchantUnveiling.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.magic; 2 | 3 | import net.minecraft.enchantment.Enchantment; 4 | import net.minecraft.enchantment.EnumEnchantmentType; 5 | import net.minecraft.item.ItemArmor; 6 | import net.minecraft.item.ItemStack; 7 | import thaumcraft.api.IGoggles; 8 | import thaumcraft.api.nodes.IRevealer; 9 | 10 | public class WGEnchantUnveiling extends Enchantment 11 | { 12 | public WGEnchantUnveiling(int id) 13 | { 14 | super(id, 0, EnumEnchantmentType.all); 15 | this.setName("wg.unveiling"); 16 | } 17 | 18 | @Override 19 | public int getMinEnchantability(int lvl) 20 | { 21 | return 6; 22 | } 23 | 24 | @Override 25 | public int getMaxEnchantability(int lvl) 26 | { 27 | return getMinEnchantability(lvl) + 20; 28 | } 29 | 30 | @Override 31 | public int getMaxLevel() 32 | { 33 | return 1; 34 | } 35 | 36 | @Override 37 | public boolean canApply(ItemStack stack) 38 | { 39 | return stack!=null && stack.getItem() instanceof ItemArmor && ((ItemArmor)stack.getItem()).armorType==0 && (stack.getItem() instanceof IRevealer || stack.getItem() instanceof IGoggles); 40 | } 41 | 42 | @Override 43 | public boolean canApplyAtEnchantingTable(ItemStack stack) 44 | { 45 | return false; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/blocks/tiles/TileEntityWGBase.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.blocks.tiles; 2 | 3 | import net.minecraft.nbt.NBTTagCompound; 4 | import net.minecraft.network.NetworkManager; 5 | import net.minecraft.network.Packet; 6 | import net.minecraft.network.play.server.S35PacketUpdateTileEntity; 7 | import net.minecraft.tileentity.TileEntity; 8 | 9 | public abstract class TileEntityWGBase extends TileEntity 10 | { 11 | @Override 12 | public void readFromNBT(NBTTagCompound tags) 13 | { 14 | super.readFromNBT(tags); 15 | readCustomNBT(tags); 16 | } 17 | 18 | public abstract void readCustomNBT(NBTTagCompound tags); 19 | 20 | @Override 21 | public void writeToNBT(NBTTagCompound tags) 22 | { 23 | super.writeToNBT(tags); 24 | writeCustomNBT(tags); 25 | } 26 | 27 | public abstract void writeCustomNBT(NBTTagCompound tags); 28 | 29 | @Override 30 | public Packet getDescriptionPacket() 31 | { 32 | NBTTagCompound nbttagcompound = new NBTTagCompound(); 33 | this.writeToNBT(nbttagcompound); 34 | return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 3, nbttagcompound); 35 | } 36 | @Override 37 | public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) 38 | { 39 | this.readFromNBT(pkt.func_148857_g()); 40 | } 41 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/blocks/tiles/TileEntityAgeingStone.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.blocks.tiles; 2 | 3 | import java.util.List; 4 | 5 | import net.minecraft.entity.Entity; 6 | import net.minecraft.entity.EntityAgeable; 7 | import net.minecraft.nbt.NBTTagCompound; 8 | import net.minecraft.util.AxisAlignedBB; 9 | 10 | public class TileEntityAgeingStone extends TileEntityWGBase 11 | { 12 | @Override 13 | public void updateEntity() 14 | { 15 | AxisAlignedBB box = AxisAlignedBB.getBoundingBox(xCoord-3,yCoord-2,zCoord-3,xCoord+4,yCoord+3,zCoord+4); 16 | List hitEntities = worldObj.getEntitiesWithinAABB(Entity.class, box); 17 | for(int i=0;i 0) 30 | { 31 | --age; 32 | ((EntityAgeable)ent).setGrowingAge(age); 33 | } 34 | } 35 | } 36 | } 37 | 38 | @Override 39 | public void readCustomNBT(NBTTagCompound tags) 40 | { 41 | 42 | } 43 | 44 | @Override 45 | public void writeCustomNBT(NBTTagCompound tags) 46 | { 47 | 48 | } 49 | 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/gui/GuiBag.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.gui; 2 | 3 | import net.minecraft.client.gui.inventory.GuiContainer; 4 | import net.minecraft.client.resources.I18n; 5 | import net.minecraft.entity.player.InventoryPlayer; 6 | import net.minecraft.world.World; 7 | 8 | import org.lwjgl.opengl.GL11; 9 | 10 | import witchinggadgets.client.ClientUtilities; 11 | import witchinggadgets.common.gui.ContainerBag; 12 | 13 | public class GuiBag extends GuiContainer{ 14 | 15 | InventoryPlayer test; 16 | 17 | public GuiBag(InventoryPlayer inventoryPlayer, World world) 18 | { 19 | super(new ContainerBag(inventoryPlayer, world)); 20 | test = inventoryPlayer; 21 | this.xSize = 176; 22 | this.ySize = 166; 23 | } 24 | 25 | @Override 26 | protected void drawGuiContainerForegroundLayer(int par1, int par2) 27 | { 28 | this.fontRendererObj.drawString(I18n.format("container.inventory"), 4, this.ySize - 92, 4210752); 29 | } 30 | 31 | @Override 32 | protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) 33 | { 34 | GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); 35 | ClientUtilities.bindTexture("witchinggadgets:textures/gui/bag.png"); 36 | int k = (this.width - this.xSize) / 2; 37 | int l = (this.height - this.ySize) / 2; 38 | this.drawTexturedModalRect(k, l, 0, 0, xSize, ySize); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/nei/NEIWGConfig.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.nei; 2 | 3 | import net.minecraft.item.ItemStack; 4 | import net.minecraftforge.oredict.OreDictionary; 5 | import witchinggadgets.WitchingGadgets; 6 | import witchinggadgets.common.WGConfig; 7 | import witchinggadgets.common.WGContent; 8 | import witchinggadgets.common.items.ItemClusters; 9 | import codechicken.nei.api.API; 10 | import codechicken.nei.api.IConfigureNEI; 11 | 12 | public class NEIWGConfig implements IConfigureNEI 13 | { 14 | @Override 15 | public void loadConfig() 16 | { 17 | API.registerRecipeHandler(new NEISpinningWheelHandler()); 18 | API.registerUsageHandler(new NEISpinningWheelHandler()); 19 | 20 | API.registerRecipeHandler(new NEIInfernalBlastfurnaceHandler()); 21 | API.registerUsageHandler(new NEIInfernalBlastfurnaceHandler()); 22 | 23 | if(WGConfig.allowClusters && ItemClusters.materialMap.isEmpty()) 24 | API.hideItem(new ItemStack(WGContent.ItemCluster,1,OreDictionary.WILDCARD_VALUE)); 25 | API.hideItem(new ItemStack(WGContent.BlockWallMirror)); 26 | API.hideItem(new ItemStack(WGContent.BlockVoidWalkway)); 27 | } 28 | 29 | 30 | @Override 31 | public String getName() 32 | { 33 | return "Witching Gadgets NEI"; 34 | } 35 | @Override 36 | public String getVersion() 37 | { 38 | return WitchingGadgets.VERSION; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/gui/GuiVoidBag.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.gui; 2 | 3 | import net.minecraft.client.gui.inventory.GuiContainer; 4 | import net.minecraft.client.resources.I18n; 5 | import net.minecraft.entity.player.InventoryPlayer; 6 | import net.minecraft.world.World; 7 | 8 | import org.lwjgl.opengl.GL11; 9 | 10 | import witchinggadgets.client.ClientUtilities; 11 | import witchinggadgets.common.gui.ContainerVoidBag; 12 | 13 | public class GuiVoidBag extends GuiContainer{ 14 | 15 | InventoryPlayer test; 16 | 17 | public GuiVoidBag(InventoryPlayer inventoryPlayer, World world) 18 | { 19 | super(new ContainerVoidBag(inventoryPlayer, world)); 20 | test = inventoryPlayer; 21 | this.xSize = 176; 22 | this.ySize = 166; 23 | } 24 | 25 | @Override 26 | protected void drawGuiContainerForegroundLayer(int par1, int par2) 27 | { 28 | this.fontRendererObj.drawString(I18n.format("container.inventory"), 4, this.ySize - 92, 4210752); 29 | } 30 | 31 | @Override 32 | protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) 33 | { 34 | GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); 35 | ClientUtilities.bindTexture("witchinggadgets:textures/gui/voidBag.png"); 36 | int k = (this.width - this.xSize) / 2; 37 | int l = (this.height - this.ySize) / 2; 38 | this.drawTexturedModalRect(k, l, 0, 0, xSize, ySize); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/render/ModelSpinningWheel.java: -------------------------------------------------------------------------------- 1 | //package witchinggadgets.client.render; 2 | // 3 | //import net.minecraft.client.model.ModelBase; 4 | //import net.minecraftforge.client.model.IModelCustom; 5 | // 6 | //import org.lwjgl.opengl.GL11; 7 | // 8 | //import witchinggadgets.client.ClientUtilities; 9 | // 10 | //public class ModelSpinningWheel extends ModelBase 11 | //{ 12 | // private IModelCustom model; 13 | // 14 | // public ModelSpinningWheel() 15 | // { 16 | // model = ClientUtilities.bindModel("witchinggadgets","models/SpinningWheel.obj"); 17 | // } 18 | // 19 | // public void render(int tick) 20 | // { 21 | // model.renderPart("Frame_Cube"); 22 | // 23 | // double angle = tick * (360.0/64.0); 24 | // GL11.glRotated(angle, 1, 0, 0); 25 | // model.renderPart("Wheel_Circle"); 26 | // GL11.glRotated(angle, -1, 0, 0); 27 | // 28 | // GL11.glTranslatef(0, 0.18F, 0.38F); 29 | // GL11.glRotated(18, 1, 0, 0); 30 | // GL11.glRotated(angle, 0, 0, 1); 31 | // model.renderPart("String_Cylinder"); 32 | // GL11.glRotated(angle, 0, 0, -1); 33 | // GL11.glRotated(18, -1, 0, 0); 34 | // GL11.glTranslatef(0, -0.18F, -0.38F); 35 | // 36 | // GL11.glTranslatef(0, -0.105F, 0.725F); 37 | // GL11.glRotated(angle, 0, 1, 0); 38 | // model.renderPart("Spindle_Cone"); 39 | // GL11.glRotated(angle, 0, -1, 0); 40 | // GL11.glTranslatef(0, 0.105F, -0.725F); 41 | // } 42 | //} 43 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/asm/WitchingGadgetsCore.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.asm; 2 | 3 | import witchinggadgets.WitchingGadgets; 4 | 5 | import com.google.common.eventbus.EventBus; 6 | import com.google.common.eventbus.Subscribe; 7 | 8 | import cpw.mods.fml.common.DummyModContainer; 9 | import cpw.mods.fml.common.LoadController; 10 | import cpw.mods.fml.common.Mod.EventHandler; 11 | import cpw.mods.fml.common.ModMetadata; 12 | import cpw.mods.fml.common.event.FMLConstructionEvent; 13 | import cpw.mods.fml.common.event.FMLPostInitializationEvent; 14 | import cpw.mods.fml.common.event.FMLPreInitializationEvent; 15 | 16 | public class WitchingGadgetsCore extends DummyModContainer 17 | { 18 | public WitchingGadgetsCore() { 19 | super(new ModMetadata()); 20 | ModMetadata metadata = getMetadata(); 21 | metadata.modId = WitchingGadgets.MODID + "Core"; 22 | metadata.name = WitchingGadgets.MODNAME + " Core"; 23 | metadata.version = WitchingGadgets.VERSION; 24 | metadata.authorList.add("BluSunrize"); 25 | } 26 | 27 | @Override 28 | public boolean registerBus(EventBus bus, LoadController controller) 29 | { 30 | bus.register(this); 31 | return true; 32 | } 33 | 34 | @Subscribe 35 | public void modConstruction(FMLConstructionEvent event) { 36 | } 37 | @EventHandler 38 | public void preinit(FMLPreInitializationEvent event) { 39 | } 40 | @EventHandler 41 | public void postInit(FMLPostInitializationEvent event) { 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/gui/GuiCloakBag.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.gui; 2 | 3 | import net.minecraft.client.gui.inventory.GuiContainer; 4 | import net.minecraft.client.resources.I18n; 5 | import net.minecraft.entity.player.InventoryPlayer; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.world.World; 8 | 9 | import org.lwjgl.opengl.GL11; 10 | 11 | import witchinggadgets.client.ClientUtilities; 12 | import witchinggadgets.common.gui.ContainerCloak; 13 | 14 | public class GuiCloakBag extends GuiContainer{ 15 | 16 | InventoryPlayer test; 17 | 18 | public GuiCloakBag(InventoryPlayer inventoryPlayer, World world, ItemStack cloak) 19 | { 20 | super(new ContainerCloak(inventoryPlayer, world, cloak)); 21 | test = inventoryPlayer; 22 | this.xSize = 176; 23 | this.ySize = 166; 24 | } 25 | 26 | @Override 27 | protected void drawGuiContainerForegroundLayer(int par1, int par2) 28 | { 29 | this.fontRendererObj.drawString(I18n.format("container.inventory"), 4, this.ySize - 92, 4210752); 30 | } 31 | 32 | @Override 33 | protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) 34 | { 35 | GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); 36 | ClientUtilities.bindTexture("witchinggadgets:textures/gui/bagCloak.png"); 37 | int k = (this.width - this.xSize) / 2; 38 | int l = (this.height - this.ySize) / 2; 39 | this.drawTexturedModalRect(k, l, 0, 0, xSize, ySize); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/magic/WGPotion.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.magic; 2 | 3 | import net.minecraft.client.Minecraft; 4 | import net.minecraft.entity.EntityLivingBase; 5 | import net.minecraft.potion.Potion; 6 | import net.minecraft.util.ResourceLocation; 7 | import thaumcraft.api.damagesource.DamageSourceThaumcraft; 8 | import witchinggadgets.common.WGContent; 9 | 10 | public class WGPotion extends Potion 11 | { 12 | static ResourceLocation tex = new ResourceLocation("witchinggadgets","textures/gui/potioneffects.png"); 13 | final int tickrate; 14 | final boolean halfTickRateWIthAmplifier; 15 | public WGPotion(int id, boolean isBad, int colour, int tick, boolean halveTick, int icon) 16 | { 17 | super(id, isBad, colour); 18 | this.tickrate = tick; 19 | this.halfTickRateWIthAmplifier = halveTick; 20 | this.setIconIndex(icon%8, icon/8); 21 | } 22 | 23 | @Override 24 | public int getStatusIconIndex() 25 | { 26 | Minecraft.getMinecraft().getTextureManager().bindTexture(tex); 27 | return super.getStatusIconIndex(); 28 | } 29 | @Override 30 | public boolean isReady(int duration, int amplifier) 31 | { 32 | if(tickrate<0) 33 | return false; 34 | int k = tickrate >> amplifier; 35 | return k>0 ? duration%k == 0 : true; 36 | } 37 | @Override 38 | public void performEffect(EntityLivingBase living, int amplifier) 39 | { 40 | if(this.equals(WGContent.pot_dissolve)) 41 | living.attackEntityFrom(DamageSourceThaumcraft.dissolve, 1); 42 | } 43 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/gui/SlotInfusedGem.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.gui; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.inventory.IInventory; 5 | import net.minecraft.item.ItemStack; 6 | import net.minecraft.nbt.NBTTagCompound; 7 | import thaumcraft.common.container.SlotLimitedByClass; 8 | import witchinggadgets.api.IInfusedGem; 9 | 10 | public class SlotInfusedGem extends SlotLimitedByClass 11 | { 12 | public SlotInfusedGem(IInventory par2iInventory, int id, int x, int y) 13 | { 14 | super(IInfusedGem.class, 1, par2iInventory, id, x, y); 15 | } 16 | 17 | @Override 18 | public boolean isItemValid(ItemStack stack) 19 | { 20 | return super.isItemValid(stack); 21 | } 22 | 23 | @Override 24 | public void onPickupFromSlot(EntityPlayer player, ItemStack stack) 25 | { 26 | super.onPickupFromSlot(player, stack); 27 | if(stack!=null) 28 | { 29 | if(!stack.hasTagCompound()) 30 | stack.setTagCompound(new NBTTagCompound()); 31 | stack.getTagCompound().setInteger("BraceletSlot", -1); 32 | } 33 | } 34 | 35 | @Override 36 | public void putStack(ItemStack stack) 37 | { 38 | super.putStack(stack); 39 | if(stack!=null) 40 | { 41 | if(!stack.hasTagCompound()) 42 | stack.setTagCompound(new NBTTagCompound()); 43 | stack.getTagCompound().setInteger("BraceletSlot", this.inventory instanceof InventoryPrimordialRing && this.slotNumber!=0 ? this.slotNumber+2 : this.slotNumber); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/network/PacketClientNotifier.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.network; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import net.minecraft.entity.player.EntityPlayer; 6 | import thaumcraft.api.ThaumcraftApiHelper; 7 | import thaumcraft.api.research.ResearchCategories; 8 | import witchinggadgets.common.WGResearch; 9 | 10 | public class PacketClientNotifier extends AbstractPacket 11 | { 12 | int packetid; 13 | public PacketClientNotifier(){} 14 | 15 | public PacketClientNotifier(int id) 16 | { 17 | this.packetid = id; 18 | } 19 | 20 | @Override 21 | public void decodeInto(ChannelHandlerContext ctx, ByteBuf buffer) 22 | { 23 | this.packetid = buffer.readInt(); 24 | } 25 | 26 | @Override 27 | public void encodeInto(ChannelHandlerContext ctx, ByteBuf buffer) 28 | { 29 | buffer.writeInt(this.packetid); 30 | } 31 | 32 | @Override 33 | public void handleClientSide(EntityPlayer player) 34 | { 35 | switch(packetid) 36 | { 37 | case 0: 38 | if(ThaumcraftApiHelper.isResearchComplete(player.getCommandSenderName(), "WGFAKEELDRITCHMINOR")) 39 | ResearchCategories.researchCategories.get("WITCHGADG").background = WGResearch.wgbackgrounds[1]; 40 | else 41 | ResearchCategories.researchCategories.get("WITCHGADG").background = WGResearch.wgbackgrounds[0]; 42 | break; 43 | } 44 | } 45 | 46 | @Override 47 | public void handleServerSide(EntityPlayer player2) 48 | { 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/items/EntityItemReforming.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.items; 2 | 3 | import thaumcraft.common.Thaumcraft; 4 | import net.minecraft.entity.item.EntityItem; 5 | import net.minecraft.item.ItemStack; 6 | import net.minecraft.nbt.NBTTagCompound; 7 | import net.minecraft.world.World; 8 | 9 | public class EntityItemReforming extends EntityItem 10 | { 11 | public int renderDelay = 120; 12 | 13 | public EntityItemReforming(World world, double x, double y, double z, ItemStack stack) 14 | { 15 | super(world, x, y, z, stack); 16 | this.delayBeforeCanPickup = 125; 17 | } 18 | 19 | public EntityItemReforming(World world) 20 | { 21 | super(world); 22 | } 23 | 24 | @Override 25 | public void onUpdate() 26 | { 27 | super.onUpdate(); 28 | if(renderDelay>0) 29 | { 30 | renderDelay--; 31 | if(renderDelay<=20) 32 | for(int i=0;i<6;i++) 33 | Thaumcraft.proxy.drawInfusionParticles1(worldObj, posX+rand.nextInt(3)-1.5, posY+rand.nextFloat(), posZ+rand.nextInt(3)-1.5, (int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ), getEntityItem().getItem(), getEntityItem().getItemDamage()); 34 | } 35 | 36 | } 37 | 38 | 39 | @Override 40 | public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) 41 | { 42 | super.writeEntityToNBT(par1NBTTagCompound); 43 | par1NBTTagCompound.setInteger("renderDelay", this.renderDelay); 44 | } 45 | 46 | @Override 47 | public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) 48 | { 49 | super.readEntityFromNBT(par1NBTTagCompound); 50 | this.renderDelay = par1NBTTagCompound.getInteger("renderDelay"); 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/handler/GalacticraftUtil.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.handler; 2 | 3 | import net.minecraft.entity.player.EntityPlayerMP; 4 | import net.minecraft.inventory.IInventory; 5 | 6 | import java.lang.reflect.Field; 7 | import java.lang.reflect.Method; 8 | 9 | 10 | 11 | /** 12 | * This is a near-verbatim copy of Galacticraft's API class 'AccessInventoryGC'. 13 | * 14 | * We don't need the extended functionality and already have more APIs included 15 | * than is good for our sanity. 16 | * 17 | */ 18 | public class GalacticraftUtil { 19 | 20 | private static Class playerStatsClass; 21 | private static Method getMethod; 22 | private static Field extendedInventoryField; 23 | 24 | private static boolean accessFailed = false; 25 | 26 | public static IInventory getGCInventoryForPlayer(EntityPlayerMP player) { 27 | if (!accessFailed) { 28 | try { 29 | if (playerStatsClass == null || getMethod == null || extendedInventoryField == null) { 30 | playerStatsClass = Class.forName("micdoodle8.mods.galacticraft.core.entities.player.GCPlayerStats"); 31 | getMethod = playerStatsClass.getMethod("get", EntityPlayerMP.class); 32 | extendedInventoryField = playerStatsClass.getField("extendedInventory"); 33 | } 34 | Object stats = getMethod.invoke(null, player); 35 | return stats == null ? null : (IInventory) extendedInventoryField.get(stats); 36 | } catch (Exception e) { 37 | Log.info("Galacticraft inventory inaccessable. Most likely because it is not installed."); 38 | accessFailed = true; 39 | } 40 | } 41 | 42 | return null; 43 | } 44 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/gui/GuiSpinningWheel.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.gui; 2 | 3 | import net.minecraft.client.gui.inventory.GuiContainer; 4 | import net.minecraft.entity.player.InventoryPlayer; 5 | 6 | import org.lwjgl.opengl.GL11; 7 | 8 | import witchinggadgets.client.ClientUtilities; 9 | import witchinggadgets.common.blocks.tiles.TileEntitySpinningWheel; 10 | import witchinggadgets.common.gui.ContainerSpinningWheel; 11 | 12 | public class GuiSpinningWheel extends GuiContainer 13 | { 14 | private TileEntitySpinningWheel tile; 15 | 16 | public GuiSpinningWheel (InventoryPlayer inventoryPlayer, 17 | TileEntitySpinningWheel tileEntity) { 18 | super(new ContainerSpinningWheel(inventoryPlayer, tileEntity)); 19 | this.tile = tileEntity; 20 | this.xSize=184; 21 | this.ySize=233; 22 | } 23 | 24 | @Override 25 | protected void drawGuiContainerForegroundLayer(int param1, int param2) 26 | { 27 | } 28 | 29 | @Override 30 | protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) 31 | { 32 | //draw your Gui here, only thing you need to change is the path 33 | GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); 34 | ClientUtilities.bindTexture("witchinggadgets:textures/gui/spinningwheel.png"); 35 | int x = (width - xSize) / 2; 36 | int y = (height - ySize) / 2; 37 | //Inventory 38 | this.drawTexturedModalRect(x, y+144, 0, 144, 184, 90); 39 | 40 | //Input 41 | this.drawTexturedModalRect(x, y, 0, 0, 38, 144); 42 | 43 | //Output 44 | this.drawTexturedModalRect(x+126, y, 126, 0, 48, 144); 45 | 46 | //Thread 47 | int var7 = tile.getProgressScaled(88); 48 | this.drawTexturedModalRect(x+38, y, 38, 0, var7, 144); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/minetweaker/WGMinetweaker.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.minetweaker; 2 | 3 | import static minetweaker.api.minecraft.MineTweakerMC.getItemStack; 4 | import cpw.mods.fml.relauncher.ReflectionHelper; 5 | import minetweaker.MineTweakerAPI; 6 | import minetweaker.api.item.IIngredient; 7 | import minetweaker.api.item.IItemStack; 8 | import minetweaker.api.item.IngredientStack; 9 | import minetweaker.api.oredict.IOreDictEntry; 10 | import net.minecraft.item.ItemStack; 11 | 12 | public class WGMinetweaker 13 | { 14 | public static void init() 15 | { 16 | MineTweakerAPI.registerClass(SpinningWheel.class); 17 | MineTweakerAPI.registerClass(InfernalBlastfurnace.class); 18 | MineTweakerAPI.registerClass(GemCutting.class); 19 | } 20 | 21 | /** Helper Methods */ 22 | public static ItemStack toStack(IItemStack iStack) 23 | { 24 | return getItemStack(iStack); 25 | } 26 | public static Object toObject(IIngredient iStack) 27 | { 28 | if (iStack == null) 29 | return null; 30 | else 31 | { 32 | if(iStack instanceof IOreDictEntry) 33 | return ((IOreDictEntry)iStack).getName(); 34 | else if(iStack instanceof IItemStack) 35 | return getItemStack((IItemStack) iStack); 36 | else if(iStack instanceof IngredientStack) 37 | { 38 | IIngredient ingr = ReflectionHelper.getPrivateValue(IngredientStack.class, (IngredientStack)iStack, "ingredient"); 39 | return toObject(ingr); 40 | } 41 | else 42 | return null; 43 | } 44 | } 45 | public static Object[] toObjects(IIngredient[] iStacks) 46 | { 47 | Object[] oA = new Object[iStacks.length]; 48 | for(int i=0; i 35 | { 36 | @Override 37 | public IMessage onMessage(MessageClientNotifier message, MessageContext ctx) 38 | { 39 | switch(message.packetid) 40 | { 41 | case 0: 42 | if(Minecraft.getMinecraft().thePlayer!=null) 43 | if(ThaumcraftApiHelper.isResearchComplete(Minecraft.getMinecraft().thePlayer.getCommandSenderName(), "WGFAKEELDRITCHMINOR")) 44 | ResearchCategories.researchCategories.get("WITCHGADG").background = WGResearch.wgbackgrounds[0]; 45 | else 46 | ResearchCategories.researchCategories.get("WITCHGADG").background = WGResearch.wgbackgrounds[0]; 47 | break; 48 | } 49 | return null; 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/gui/ContainerLabelLibrary.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.gui; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.entity.player.InventoryPlayer; 5 | import net.minecraft.inventory.Container; 6 | import net.minecraft.inventory.Slot; 7 | import net.minecraft.item.ItemStack; 8 | import thaumcraft.common.config.ConfigItems; 9 | import witchinggadgets.common.blocks.tiles.TileEntityLabelLibrary; 10 | 11 | public class ContainerLabelLibrary extends Container 12 | { 13 | protected final TileEntityLabelLibrary tileEntity; 14 | //private int slotCount; 15 | 16 | public ContainerLabelLibrary (InventoryPlayer inventoryPlayer, TileEntityLabelLibrary te) 17 | { 18 | this.tileEntity = te; 19 | 20 | //the Slot constructor takes the IInventory and the slot number in that it binds to 21 | //and the x-y coordinates it resides on-screen 22 | 23 | this.addSlotToContainer(new Slot(tileEntity, 0, 8, 8) 24 | { 25 | @Override 26 | public boolean isItemValid(ItemStack stack) 27 | { 28 | if(stack==null) 29 | return true; 30 | return stack.getItem().equals(ConfigItems.itemResource) && stack.getItemDamage()==13; 31 | } 32 | }); 33 | this.addSlotToContainer(new SlotOutput(tileEntity, 1, 8, 51) 34 | { 35 | @Override 36 | public void onPickupFromSlot(EntityPlayer player, ItemStack stack) 37 | { 38 | this.inventory.decrStackSize(0, 1); 39 | } 40 | }); 41 | 42 | //this.slotCount = 2; 43 | this.bindPlayerInventory(inventoryPlayer); 44 | } 45 | 46 | @Override 47 | public boolean canInteractWith(EntityPlayer player) 48 | { 49 | return tileEntity.isUseableByPlayer(player); 50 | } 51 | 52 | 53 | protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) 54 | { 55 | for (int i = 0; i < 3; i++) 56 | for (int j = 0; j < 9; j++) 57 | addSlotToContainer(new Slot(inventoryPlayer, j+i*9+9, 8+j*18, 84+i*18)); 58 | 59 | for (int i = 0; i < 9; i++) 60 | addSlotToContainer(new Slot(inventoryPlayer, i, 8+i*18, 142)); 61 | } 62 | 63 | @Override 64 | public ItemStack transferStackInSlot(EntityPlayer player, int slot) 65 | { 66 | return null; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/research/WGResearchItem.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.research; 2 | 3 | 4 | import net.minecraft.item.ItemStack; 5 | import net.minecraft.util.ResourceLocation; 6 | import net.minecraft.util.StatCollector; 7 | 8 | import org.apache.logging.log4j.Level; 9 | 10 | import thaumcraft.api.ThaumcraftApi; 11 | import thaumcraft.api.aspects.AspectList; 12 | import thaumcraft.api.research.ResearchCategories; 13 | import thaumcraft.api.research.ResearchItem; 14 | import witchinggadgets.WitchingGadgets; 15 | 16 | public class WGResearchItem extends ResearchItem 17 | { 18 | public WGResearchItem(String key, String category, AspectList tags, int displayX, int displayY, int complexity, ResourceLocation icon) 19 | { 20 | super(key,category,tags,displayX,displayY,complexity,icon); 21 | } 22 | 23 | public WGResearchItem(String key, String category, AspectList tags, int displayX, int displayY, int complexity, ItemStack icon) 24 | { 25 | super(key,category,tags,displayX,displayY,complexity,icon); 26 | } 27 | 28 | @Override 29 | public String getName() 30 | { 31 | return StatCollector.translateToLocal("witchinggadgets_research_name."+key); 32 | } 33 | 34 | @Override 35 | public String getText() 36 | { 37 | return StatCollector.translateToLocal("witchinggadgets_research_text."+key); 38 | } 39 | 40 | @Override 41 | public ResearchItem setParents(String... par) 42 | { 43 | for(String p:par) 44 | if(ResearchCategories.getResearch(p) == null) 45 | { 46 | WitchingGadgets.logger.log(Level.ERROR, "Invalid Parent for Item "+this.key+". Parent "+p+"doesn't exist!"); 47 | return null; 48 | } 49 | 50 | this.parents = par; 51 | return this; 52 | } 53 | 54 | @Override 55 | public ResearchItem setParentsHidden(String... par) 56 | { 57 | for(String p:par) 58 | if(ResearchCategories.getResearch(p) == null) 59 | { 60 | WitchingGadgets.logger.log(Level.ERROR, "Invalid HiddenParent for Item "+this.key+". Parent "+p+"doesn't exist!"); 61 | return null; 62 | } 63 | this.parentsHidden = par; 64 | return this; 65 | } 66 | 67 | public ResearchItem addWarp(int warp) 68 | { 69 | ThaumcraftApi.addWarpToResearch(this.key, warp); 70 | return this; 71 | } 72 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/network/PacketTileUpdate.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.network; 2 | 3 | import cpw.mods.fml.common.network.ByteBufUtils; 4 | import io.netty.buffer.ByteBuf; 5 | import io.netty.channel.ChannelHandlerContext; 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import net.minecraft.nbt.NBTTagCompound; 8 | import net.minecraft.world.World; 9 | import net.minecraftforge.common.DimensionManager; 10 | import witchinggadgets.common.blocks.tiles.TileEntityWGBase; 11 | 12 | public class PacketTileUpdate extends AbstractPacket 13 | { 14 | int worldId; 15 | int x; 16 | int y; 17 | int z; 18 | NBTTagCompound tag; 19 | 20 | public PacketTileUpdate(){} 21 | public PacketTileUpdate(TileEntityWGBase te) 22 | { 23 | this.worldId = te.getWorldObj().provider.dimensionId; 24 | this.x = te.xCoord; 25 | this.y = te.yCoord; 26 | this.z = te.zCoord; 27 | this.tag = new NBTTagCompound(); 28 | te.writeCustomNBT(this.tag); 29 | } 30 | 31 | 32 | @Override 33 | public void encodeInto(ChannelHandlerContext context, ByteBuf buffer) 34 | { 35 | buffer.writeInt(worldId); 36 | buffer.writeInt(x); 37 | buffer.writeInt(y); 38 | buffer.writeInt(z); 39 | ByteBufUtils.writeTag(buffer, tag); 40 | } 41 | 42 | @Override 43 | public void decodeInto(ChannelHandlerContext context, ByteBuf buffer) 44 | { 45 | this.worldId = buffer.readInt(); 46 | this.x = buffer.readInt(); 47 | this.y = buffer.readInt(); 48 | this.z = buffer.readInt(); 49 | this.tag = ByteBufUtils.readTag(buffer); 50 | } 51 | 52 | @Override 53 | public void handleClientSide(EntityPlayer clientPlayer) 54 | { 55 | World world = DimensionManager.getWorld(this.worldId); 56 | if (world == null) 57 | return; 58 | if(world.getTileEntity(x, y, z)!=null && world.getTileEntity(x, y, z) instanceof TileEntityWGBase) 59 | ((TileEntityWGBase)world.getTileEntity(x, y, z)).readCustomNBT(tag); 60 | } 61 | 62 | @Override 63 | public void handleServerSide(EntityPlayer p2) 64 | { 65 | World world = DimensionManager.getWorld(this.worldId); 66 | if (world == null) 67 | return; 68 | if(world.getTileEntity(x, y, z)!=null && world.getTileEntity(x, y, z) instanceof TileEntityWGBase) 69 | ((TileEntityWGBase)world.getTileEntity(x, y, z)).readCustomNBT(tag); 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/network/PacketPrimordialGlove.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.network; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import net.minecraft.entity.Entity; 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import net.minecraft.nbt.NBTTagCompound; 8 | import net.minecraft.world.World; 9 | import net.minecraftforge.common.DimensionManager; 10 | import witchinggadgets.WitchingGadgets; 11 | 12 | public class PacketPrimordialGlove extends AbstractPacket 13 | { 14 | int dim; 15 | int playerid; 16 | byte type; 17 | int selected; 18 | 19 | public PacketPrimordialGlove(){} 20 | 21 | public PacketPrimordialGlove(EntityPlayer player, byte type, int i) 22 | { 23 | this.dim = player.worldObj.provider.dimensionId; 24 | this.playerid = player.getEntityId(); 25 | this.type=type; 26 | this.selected = i; 27 | } 28 | 29 | @Override 30 | public void decodeInto(ChannelHandlerContext ctx, ByteBuf buffer) 31 | { 32 | this.dim = buffer.readInt(); 33 | this.playerid = buffer.readInt(); 34 | this.type = buffer.readByte(); 35 | this.selected = buffer.readInt(); 36 | } 37 | 38 | @Override 39 | public void encodeInto(ChannelHandlerContext ctx, ByteBuf buffer) 40 | { 41 | buffer.writeInt(this.dim); 42 | buffer.writeInt(this.playerid); 43 | buffer.writeByte(this.type); 44 | buffer.writeInt(this.selected); 45 | } 46 | 47 | @Override 48 | public void handleClientSide(EntityPlayer player) 49 | { 50 | } 51 | 52 | @Override 53 | public void handleServerSide(EntityPlayer player2) 54 | { 55 | World world = DimensionManager.getWorld(this.dim); 56 | if (world == null) 57 | return; 58 | Entity ent = world.getEntityByID(this.playerid); 59 | if(!(ent instanceof EntityPlayer)) 60 | return; 61 | EntityPlayer player = (EntityPlayer) ent; 62 | if(type==0 && player.getCurrentEquippedItem()!=null) 63 | { 64 | if(!player.getCurrentEquippedItem().hasTagCompound()) 65 | player.getCurrentEquippedItem().setTagCompound(new NBTTagCompound()); 66 | player.getCurrentEquippedItem().getTagCompound().setInteger("selected", selected); 67 | } 68 | else if(type==1) 69 | player.openGui(WitchingGadgets.instance, 7, world, (int)player.posX,(int)player.posY,(int)player.posZ); 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/render/ModelPrimordialBaubles.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.render; 2 | 3 | import java.util.ArrayList; 4 | import java.util.HashMap; 5 | import java.util.List; 6 | 7 | import net.minecraft.client.model.ModelBiped; 8 | import net.minecraft.client.model.ModelRenderer; 9 | import net.minecraft.entity.EntityLivingBase; 10 | import net.minecraft.item.ItemStack; 11 | import travellersgear.api.ITravellersGear; 12 | 13 | public class ModelPrimordialBaubles extends ModelBiped 14 | { 15 | List parts = new ArrayList(); 16 | 17 | public ModelPrimordialBaubles(EntityLivingBase entity, ItemStack stack) 18 | { 19 | super(.01F, 0, 64, 32); 20 | this.bipedBody.isHidden=true; 21 | this.bipedHead.isHidden=true; 22 | this.bipedHeadwear.isHidden=true; 23 | this.bipedLeftLeg.isHidden=true; 24 | this.bipedRightLeg.isHidden=true; 25 | 26 | int slot = ((ITravellersGear)stack.getItem()).getSlot(stack); 27 | int meta = stack.getItemDamage(); 28 | float sizeMod = slot==1?1.125f:.125f; 29 | 30 | int u = meta==1||meta==2?40: 24; 31 | int v = meta==2||meta==3?24: 16; 32 | int yOff = slot==2?7:0; 33 | 34 | this.boxList.clear(); 35 | this.bipedRightArm = new ModelRenderer(this, u, v); 36 | this.bipedRightArm.addBox(-3.0F, -2.0F+yOff, -2.0F, 4, 4, 4, sizeMod); 37 | this.bipedRightArm.setRotationPoint(-5.0F, 2.0F, 0.0F); 38 | ModelRenderer mr = new ModelRenderer(this, 40,28); 39 | mr.addBox(-3.0F, -2.0F+yOff, 4.0F, 2,1,1, sizeMod); 40 | 41 | this.bipedLeftArm = new ModelRenderer(this, u, v); 42 | this.bipedLeftArm.mirror = true; 43 | this.bipedLeftArm.addBox(-1.0F, -2.0F+yOff, -2.0F, 4, 4, 4, sizeMod); 44 | this.bipedLeftArm.setRotationPoint(5.0F, 2.0F, 0.0F); 45 | } 46 | 47 | static HashMap modelMap = new HashMap(); 48 | public static ModelBiped getModel(EntityLivingBase entity, ItemStack stack) 49 | { 50 | return new ModelPrimordialBaubles(entity,stack); 51 | // if(stack==null || !(stack.getItem() instanceof ITravellersGear)) 52 | // return null; 53 | // int slot = ((ITravellersGear)stack.getItem()).getSlot(stack); 54 | // if(slot<0 || slot>2) 55 | // return null; 56 | // if(!modelMap.containsKey(stack.getItemDamage())) 57 | // modelMap.put(stack.getItemDamage(), new ModelPrimordialBaubles(entity,stack)); 58 | // return modelMap.get(stack.getItemDamage()); 59 | } 60 | } -------------------------------------------------------------------------------- /config.cfg: -------------------------------------------------------------------------------- 1 | # Configuration file 2 | 3 | general { 4 | # Try to animate the possibly imported models to fix their rotations? 5 | # 6 | # Min: 0 7 | # Max: 1 8 | I:animateImports=1 9 | 10 | # Favorite Colour Theme for Tabula's Interface 11 | S:favTheme=default 12 | 13 | # Should the grid in the workspace be rendered 14 | # 15 | # Min: 0 16 | # Max: 1 17 | I:renderGrid=1 18 | 19 | # Should the controls on the model be rendered 20 | # 21 | # Min: 0 22 | # Max: 1 23 | I:renderModelControls=1 24 | 25 | # Should the rotation point of selected model parts be rendered 26 | # 27 | # Min: 0 28 | # Max: 1 29 | I:renderRotationPoint=1 30 | 31 | # Should the block in the workspace be rendered 32 | # 33 | # Min: 0 34 | # Max: 1 35 | I:renderWorkspaceBlock=1 36 | } 37 | 38 | 39 | ########################################################################################################## 40 | # multiplayer 41 | #--------------------------------------------------------------------------------------------------------# 42 | # Multiplayer settings for Tabula sessions 43 | ########################################################################################################## 44 | 45 | multiplayer { 46 | # Allow anyone who connects to your Tabula session to edit the model 47 | # 48 | # Min: 0 49 | # Max: 1 50 | I:allowEveryoneToEdit=1 51 | 52 | # Enable chat sounds? 53 | # 54 | # Min: 0 55 | # Max: 1 56 | I:chatSound=1 57 | 58 | # People allowed to edit models in your multiplayer Tabula session. 59 | # Separate usernames by with a comma and a space (", " - no quotes) 60 | S:editors= 61 | } 62 | 63 | 64 | ########################################################################################################## 65 | # others 66 | #--------------------------------------------------------------------------------------------------------# 67 | # Other configs that don't really fit. You probably don't want to touch these. 68 | ########################################################################################################## 69 | 70 | others { 71 | # Temp setting, so ignore this comment 72 | # 73 | # Min: 0 74 | # Max: 1 75 | I:animationWarning=0 76 | 77 | # Don't touch this. Seriously. 78 | S:chatWindow= 79 | } 80 | 81 | 82 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/network/message/MessagePlaySound.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.network.message; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import net.minecraft.world.World; 5 | import net.minecraftforge.common.DimensionManager; 6 | import cpw.mods.fml.common.network.simpleimpl.IMessage; 7 | import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; 8 | import cpw.mods.fml.common.network.simpleimpl.MessageContext; 9 | 10 | public class MessagePlaySound implements IMessage 11 | { 12 | int dim; 13 | double x; 14 | double y; 15 | double z; 16 | float volume; 17 | float pitch; 18 | String sound; 19 | public MessagePlaySound(){} 20 | 21 | public MessagePlaySound(World world, double xx, double yy ,double zz, String s, float f, float g) 22 | { 23 | this.dim = world.provider.dimensionId; 24 | this.x = xx; 25 | this.y = yy; 26 | this.z = zz; 27 | this.sound = s; 28 | this.volume = f; 29 | this.pitch = g; 30 | } 31 | 32 | @Override 33 | public void fromBytes(ByteBuf buffer) 34 | { 35 | this.dim = buffer.readInt(); 36 | this.x = buffer.readDouble(); 37 | this.y = buffer.readDouble(); 38 | this.z = buffer.readDouble(); 39 | this.volume = buffer.readFloat(); 40 | this.pitch = buffer.readFloat(); 41 | 42 | String tempString = ""; 43 | int charLength = buffer.readInt(); 44 | for(int i=0;i 67 | { 68 | @Override 69 | public IMessage onMessage(MessagePlaySound message, MessageContext ctx) 70 | { 71 | World world = DimensionManager.getWorld(message.dim); 72 | if(world != null) 73 | world.playSound(message.x, message.y, message.z, message.sound, message.volume, message.pitch, true); 74 | 75 | return null; 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/FakeResearchItem.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common; 2 | 3 | import thaumcraft.api.research.ResearchPage; 4 | import java.util.Arrays; 5 | import net.minecraft.item.ItemStack; 6 | import thaumcraft.api.research.ResearchCategories; 7 | import thaumcraft.api.aspects.AspectList; 8 | import net.minecraft.util.ResourceLocation; 9 | import thaumcraft.api.research.ResearchItem; 10 | 11 | public class FakeResearchItem extends ResearchItem 12 | { 13 | public ResearchItem origResearch; 14 | 15 | public FakeResearchItem(final String name, final String cat, final String origin, final String originCategory, final int x, final int y, final ResourceLocation icon) { 16 | super(name, cat, new AspectList(), x, y, 1, icon); 17 | this.origResearch = ResearchCategories.getResearch(origin); 18 | this.addSiblingToOriginal(); 19 | this.setStub(); 20 | this.setHidden(); 21 | } 22 | 23 | public FakeResearchItem(final String name, final String cat, final String origin, final String originCategory, final int x, final int y, final ItemStack icon) { 24 | super(name, cat, new AspectList(), x, y, 1, icon); 25 | this.origResearch = ResearchCategories.getResearch(origin); 26 | this.addSiblingToOriginal(); 27 | this.setStub(); 28 | this.setHidden(); 29 | } 30 | 31 | protected void addSiblingToOriginal() { 32 | if (this.origResearch.siblings == null) { 33 | this.origResearch.setSiblings(new String[] { this.key }); 34 | } 35 | else { 36 | final String[] newSiblings = Arrays.copyOf(this.origResearch.siblings, this.origResearch.siblings.length + 1); 37 | newSiblings[this.origResearch.siblings.length] = this.key; 38 | this.origResearch.setSiblings(newSiblings); 39 | } 40 | if (this.origResearch.isSecondary()) { 41 | this.setSecondary(); 42 | } 43 | } 44 | 45 | public ResearchPage[] getPages() { 46 | return this.origResearch.getPages(); 47 | } 48 | 49 | public String getName() { 50 | return this.origResearch.getName(); 51 | } 52 | 53 | public String getText() { 54 | return this.origResearch.getText(); 55 | } 56 | 57 | public boolean isStub() { 58 | return true; 59 | } 60 | 61 | public boolean isHidden() { 62 | return true; 63 | } 64 | 65 | public int getComplexity() { 66 | return 1; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/research/WGFakeResearchItem.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.research; 2 | 3 | 4 | import net.minecraft.item.ItemStack; 5 | import net.minecraft.util.ResourceLocation; 6 | import thaumcraft.api.aspects.AspectList; 7 | import thaumcraft.api.research.ResearchCategories; 8 | import thaumcraft.api.research.ResearchCategoryList; 9 | import thaumcraft.api.research.ResearchItem; 10 | import thaumcraft.api.research.ResearchPage; 11 | 12 | public class WGFakeResearchItem extends ResearchItem 13 | { 14 | public ResearchItem original; 15 | 16 | public WGFakeResearchItem(String key, String category, String original, String originalCategory, int displayX, int displayY, ResourceLocation icon) 17 | { 18 | super(key,category,new AspectList(),displayX,displayY,1,icon); 19 | this.original = ((ResearchCategoryList)ResearchCategories.researchCategories.get(originalCategory)).research.get(original); 20 | this.setupOriginal(); 21 | } 22 | 23 | public WGFakeResearchItem(String key, String category, String original, String originalCategory, int displayX, int displayY, ItemStack icon) 24 | { 25 | super(key,category,new AspectList(),displayX,displayY,1,icon); 26 | this.original = ((ResearchCategoryList)ResearchCategories.researchCategories.get(originalCategory)).research.get(original); 27 | this.setupOriginal(); 28 | } 29 | 30 | private void setupOriginal() 31 | { 32 | if(this.original.siblings == null) 33 | this.original.setSiblings(new String[] { this.key }); 34 | else 35 | { 36 | String[] newSiblings = new String[this.original.siblings.length+1]; 37 | System.arraycopy(this.original.siblings,0, newSiblings,0, this.original.siblings.length); 38 | newSiblings[this.original.siblings.length] = this.key; 39 | this.original.setSiblings(newSiblings); 40 | } 41 | //if(this.original.isSecondary()) 42 | // setSecondary(); 43 | } 44 | 45 | @Override 46 | public String getName() 47 | { 48 | return this.original.getName(); 49 | } 50 | 51 | @Override 52 | public String getText() 53 | { 54 | return this.original.getText(); 55 | } 56 | 57 | @Override 58 | public boolean isStub() 59 | { 60 | return true; 61 | } 62 | 63 | @Override 64 | public boolean isHidden() 65 | { 66 | return true; 67 | } 68 | 69 | @Override 70 | public int getComplexity() 71 | { 72 | return 1; 73 | } 74 | 75 | @Override 76 | public ResearchPage[] getPages() 77 | { 78 | return this.original.getPages(); 79 | } 80 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/render/TileRenderSaunaStove.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.render; 2 | 3 | import net.minecraft.client.renderer.Tessellator; 4 | import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; 5 | import net.minecraft.tileentity.TileEntity; 6 | import net.minecraft.util.AxisAlignedBB; 7 | 8 | import org.lwjgl.opengl.GL11; 9 | 10 | import witchinggadgets.client.ClientUtilities; 11 | import witchinggadgets.common.blocks.tiles.TileEntitySaunaStove; 12 | 13 | public class TileRenderSaunaStove extends TileEntitySpecialRenderer 14 | { 15 | final static boolean DEBUG = false; 16 | @Override 17 | public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) 18 | { 19 | TileEntitySaunaStove tile = (TileEntitySaunaStove) tileentity; 20 | GL11.glPushMatrix(); 21 | GL11.glTranslated(x, y, z); 22 | 23 | if(DEBUG) 24 | { 25 | ClientUtilities.bindTexture("witchinggadgets:textures/blocks/white.png"); 26 | GL11.glLineWidth(5); 27 | GL11.glEnable(GL11.GL_BLEND); 28 | for(AxisAlignedBB aabb : tile.boundingBoxes) 29 | { 30 | double minX = aabb.minX-tile.xCoord; 31 | double minY = aabb.minY-tile.yCoord; 32 | double minZ = aabb.minZ-tile.zCoord; 33 | double maxX = aabb.maxX-tile.xCoord; 34 | double maxY = aabb.maxY-tile.yCoord; 35 | double maxZ = aabb.maxZ-tile.zCoord; 36 | Tessellator tes = Tessellator.instance; 37 | tes.startDrawing(2); 38 | tes.setColorOpaque_I(0xff0000); 39 | tes.addVertex(minX, minY, minZ); 40 | tes.addVertex(minX, minY, maxZ); 41 | tes.addVertex(maxX, minY, maxZ); 42 | tes.addVertex(maxX, minY, minZ); 43 | tes.draw(); 44 | tes.startDrawing(2); 45 | tes.setColorOpaque_I(0xff0000); 46 | tes.addVertex(minX, minY, minZ); 47 | tes.addVertex(minX, maxY, minZ); 48 | tes.addVertex(maxX, maxY, minZ); 49 | tes.addVertex(maxX, minY, minZ); 50 | tes.draw(); 51 | tes.startDrawing(2); 52 | tes.setColorOpaque_I(0xff0000); 53 | tes.addVertex(minX, minY, maxZ); 54 | tes.addVertex(minX, maxY, maxZ); 55 | tes.addVertex(maxX, maxY, maxZ); 56 | tes.addVertex(maxX, minY, maxZ); 57 | tes.draw(); 58 | tes.startDrawing(2); 59 | tes.setColorOpaque_I(0xff0000); 60 | tes.addVertex(minX, maxY, minZ); 61 | tes.addVertex(minX, maxY, maxZ); 62 | tes.addVertex(maxX, maxY, maxZ); 63 | tes.addVertex(maxX, maxY, minZ); 64 | tes.draw(); 65 | } 66 | } 67 | 68 | GL11.glPopMatrix(); 69 | } 70 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/network/message/MessagePrimordialGlove.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.network.message; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import net.minecraft.entity.Entity; 5 | import net.minecraft.entity.player.EntityPlayer; 6 | import net.minecraft.nbt.NBTTagCompound; 7 | import net.minecraft.world.World; 8 | import net.minecraftforge.common.DimensionManager; 9 | import witchinggadgets.WitchingGadgets; 10 | import cpw.mods.fml.common.network.simpleimpl.IMessage; 11 | import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; 12 | import cpw.mods.fml.common.network.simpleimpl.MessageContext; 13 | 14 | public class MessagePrimordialGlove implements IMessage 15 | { 16 | int dim; 17 | int playerid; 18 | byte type; 19 | int selected; 20 | public MessagePrimordialGlove(){} 21 | 22 | public MessagePrimordialGlove(EntityPlayer player, byte type, int i) 23 | { 24 | this.dim = player.worldObj.provider.dimensionId; 25 | this.playerid = player.getEntityId(); 26 | this.type=type; 27 | this.selected = i; 28 | } 29 | 30 | @Override 31 | public void fromBytes(ByteBuf buffer) 32 | { 33 | this.dim = buffer.readInt(); 34 | this.playerid = buffer.readInt(); 35 | this.type = buffer.readByte(); 36 | this.selected = buffer.readInt(); 37 | } 38 | 39 | @Override 40 | public void toBytes(ByteBuf buffer) 41 | { 42 | buffer.writeInt(this.dim); 43 | buffer.writeInt(this.playerid); 44 | buffer.writeByte(this.type); 45 | buffer.writeInt(this.selected); 46 | } 47 | 48 | public static class HandlerServer implements IMessageHandler 49 | { 50 | @Override 51 | public IMessage onMessage(MessagePrimordialGlove message, MessageContext ctx) 52 | { 53 | World world = DimensionManager.getWorld(message.dim); 54 | if(world != null) 55 | { 56 | Entity ent = world.getEntityByID(message.playerid); 57 | if(ent instanceof EntityPlayer) 58 | { 59 | EntityPlayer player = (EntityPlayer) ent; 60 | if(message.type==(byte)0 && player.getCurrentEquippedItem()!=null) 61 | { 62 | if(!player.getCurrentEquippedItem().hasTagCompound()) 63 | player.getCurrentEquippedItem().setTagCompound(new NBTTagCompound()); 64 | player.getCurrentEquippedItem().getTagCompound().setInteger("selected", message.selected); 65 | } 66 | else if(message.type==(byte)1) 67 | player.openGui(WitchingGadgets.instance, 7, world, (int)player.posX,(int)player.posY,(int)player.posZ); 68 | } 69 | } 70 | return null; 71 | } 72 | } 73 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/render/ModelMagicalBaubles.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.render; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import net.minecraft.client.model.ModelBiped; 7 | import net.minecraft.client.model.ModelRenderer; 8 | import net.minecraft.entity.EntityLivingBase; 9 | import net.minecraft.item.ItemStack; 10 | import travellersgear.api.ITravellersGear; 11 | import witchinggadgets.common.items.baubles.ItemMagicalBaubles; 12 | 13 | public class ModelMagicalBaubles extends ModelBiped 14 | { 15 | List parts = new ArrayList(); 16 | 17 | public ModelMagicalBaubles(EntityLivingBase entity, ItemStack stack) 18 | { 19 | super(.01F, 0, 64, 32); 20 | this.bipedBody.isHidden=true; 21 | this.bipedHead.isHidden=true; 22 | this.bipedHeadwear.isHidden=true; 23 | this.bipedLeftLeg.isHidden=true; 24 | this.bipedRightLeg.isHidden=true; 25 | 26 | int slot = ((ITravellersGear)stack.getItem()).getSlot(stack); 27 | int meta = stack.getItemDamage(); 28 | float sizeMod = stack.getItemDamage()==6?.5f: slot==1?1.125f: .125f; 29 | 30 | int u = meta==1||meta==2?40: 24; 31 | int v = meta==2||meta==3?24: 16; 32 | int yOff = slot==2?7:0; 33 | 34 | this.boxList.clear(); 35 | if(stack.getItemDamage()==6) 36 | { 37 | this.bipedBody = new ModelRenderer(this, 0, 0); 38 | this.bipedBody.addBox(-4.0F, 0.0F, -2.0F, 8, 7, 4, sizeMod); 39 | this.bipedBody.setRotationPoint(0.0F, 0.0F, 0.0F); 40 | bipedRightArm.isHidden=true; 41 | bipedLeftArm.isHidden=true; 42 | } 43 | else 44 | { 45 | this.bipedRightArm = new ModelRenderer(this, u, v); 46 | this.bipedRightArm.addBox(-3.0F, -2.0F+yOff, -2.0F, 4, 4, 4, sizeMod); 47 | this.bipedRightArm.setRotationPoint(-5.0F, 2.0F, 0.0F); 48 | this.bipedLeftArm = new ModelRenderer(this, u, v); 49 | this.bipedLeftArm.mirror = true; 50 | this.bipedLeftArm.addBox(-1.0F, -2.0F+yOff, -2.0F, 4, 4, 4, sizeMod); 51 | this.bipedLeftArm.setRotationPoint(5.0F, 2.0F, 0.0F); 52 | } 53 | } 54 | 55 | static ModelBiped[] modelMap = new ModelBiped[ItemMagicalBaubles.subNames.length]; 56 | public static ModelBiped getModel(EntityLivingBase entity, ItemStack stack) 57 | { 58 | if(stack==null || !(stack.getItem() instanceof ITravellersGear)) 59 | return null; 60 | int slot = ((ITravellersGear)stack.getItem()).getSlot(stack); 61 | if(slot<1 || slot>2) 62 | return null; 63 | if(modelMap[stack.getItemDamage()]==null) 64 | modelMap[stack.getItemDamage()] = new ModelMagicalBaubles(entity,stack); 65 | return modelMap[stack.getItemDamage()]; 66 | } 67 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/asm/pouch/ContainerPatchedFocusPouch.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.asm.pouch; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.entity.player.InventoryPlayer; 5 | import net.minecraft.inventory.IInventory; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.world.World; 8 | import thaumcraft.common.container.ContainerFocusPouch; 9 | import thaumcraft.common.container.InventoryFocusPouch; 10 | import thaumcraft.common.items.wands.ItemFocusPouch; 11 | import baubles.api.BaublesApi; 12 | import cpw.mods.fml.relauncher.ReflectionHelper; 13 | 14 | public class ContainerPatchedFocusPouch extends ContainerFocusPouch 15 | { 16 | public ContainerPatchedFocusPouch(InventoryPlayer iinventory, World world, int par3, int par4, int par5) 17 | { 18 | super(iinventory,world,par3,par4,par5); 19 | ReflectionHelper.setPrivateValue(ContainerFocusPouch.class,this, -1, "blockSlot"); 20 | 21 | ItemStack beltPouch = null; 22 | IInventory baubles = BaublesApi.getBaubles(iinventory.player); 23 | for(int a = 0; a < 4; a++) 24 | if(baubles.getStackInSlot(a)!=null && baubles.getStackInSlot(a).getItem() instanceof ItemFocusPouch) 25 | beltPouch = baubles.getStackInSlot(a); 26 | 27 | if(beltPouch!=null) 28 | { 29 | ReflectionHelper.setPrivateValue(ContainerFocusPouch.class,this, beltPouch, "pouch"); 30 | if(!world.isRemote) 31 | ((InventoryFocusPouch)this.input).stackList = ((ItemFocusPouch)beltPouch.getItem()).getInventory(beltPouch); 32 | } 33 | onCraftMatrixChanged(this.input); 34 | } 35 | 36 | @Override 37 | public void onContainerClosed(EntityPlayer player) 38 | { 39 | super.onContainerClosed(player); 40 | if(!player.worldObj.isRemote) 41 | { 42 | // ((ItemFocusPouch)this.pouch.getItem()).setInventory(this.pouch, ((InventoryFocusPouch)this.input).stackList); 43 | // if (this.player == null) { 44 | // return; 45 | // } 46 | // if ((this.player.getHeldItem() != null) && (this.player.getHeldItem().isItemEqual(this.pouch))) { 47 | // this.player.setCurrentItemOrArmor(0, this.pouch); 48 | // } 49 | // this.player.inventory.markDirty(); 50 | ItemStack beltPouch = ReflectionHelper.getPrivateValue(ContainerFocusPouch.class,this, "pouch"); 51 | if(beltPouch!=null) 52 | if(BaublesApi.getBaubles(player).getStackInSlot(3)!=null && BaublesApi.getBaubles(player).getStackInSlot(3).isItemEqual(beltPouch)) 53 | { 54 | BaublesApi.getBaubles(player).setInventorySlotContents(3, beltPouch); 55 | BaublesApi.getBaubles(player).markDirty(); 56 | } 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/blocks/BlockVoidWalkway.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.blocks; 2 | 3 | import java.util.Random; 4 | 5 | import net.minecraft.block.BlockContainer; 6 | import net.minecraft.block.material.Material; 7 | import net.minecraft.client.renderer.texture.IIconRegister; 8 | import net.minecraft.entity.player.EntityPlayer; 9 | import net.minecraft.item.ItemBlock; 10 | import net.minecraft.item.ItemStack; 11 | import net.minecraft.tileentity.TileEntity; 12 | import net.minecraft.util.MovingObjectPosition; 13 | import net.minecraft.world.IBlockAccess; 14 | import net.minecraft.world.World; 15 | import witchinggadgets.common.blocks.tiles.TileEntityVoidWalkway; 16 | 17 | public class BlockVoidWalkway extends BlockContainer { 18 | 19 | public BlockVoidWalkway() 20 | { 21 | super(Material.circuits); 22 | this.setHardness(0.0F); 23 | this.setResistance(0.0F); 24 | this.setStepSound(soundTypeStone); 25 | } 26 | 27 | @Override 28 | public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) 29 | { 30 | if(!player.isSneaking() && player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ItemBlock) 31 | { 32 | ItemBlock ib = (ItemBlock)player.getCurrentEquippedItem().getItem(); 33 | if (ib.placeBlockAt(player.getCurrentEquippedItem(),player,world, x, y, z, side, hitX, hitY, hitZ, player.getCurrentEquippedItem().getItemDamage())) 34 | { 35 | if(!player.capabilities.isCreativeMode)--player.getCurrentEquippedItem().stackSize; 36 | return true; 37 | } 38 | } 39 | return false; 40 | } 41 | 42 | @Override 43 | public int getRenderBlockPass() 44 | { 45 | return 1; 46 | } 47 | @Override 48 | public boolean isOpaqueCube() 49 | { 50 | return false; 51 | } 52 | @Override 53 | public boolean shouldSideBeRendered(IBlockAccess iBlockAccess, int x, int y, int z, int side) 54 | { 55 | return super.shouldSideBeRendered(iBlockAccess, x, y, z, side) && !iBlockAccess.getBlock(x,y,z).equals(this); 56 | } 57 | 58 | @Override 59 | public int quantityDropped(Random par1Random) 60 | { 61 | return 0; 62 | } 63 | 64 | @Override 65 | public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) 66 | { 67 | return null; 68 | } 69 | 70 | @Override 71 | public void registerBlockIcons(IIconRegister iconRegister) 72 | { 73 | this.blockIcon = iconRegister.registerIcon("witchinggadgets:voidWalkway"); 74 | } 75 | 76 | @Override 77 | public TileEntity createNewTileEntity(World world, int meta) 78 | { 79 | return new TileEntityVoidWalkway(); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/network/message/MessageTileUpdate.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.network.message; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import net.minecraft.nbt.NBTTagCompound; 5 | import net.minecraft.world.World; 6 | import net.minecraftforge.common.DimensionManager; 7 | import witchinggadgets.common.blocks.tiles.TileEntityWGBase; 8 | import cpw.mods.fml.common.network.ByteBufUtils; 9 | import cpw.mods.fml.common.network.simpleimpl.IMessage; 10 | import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; 11 | import cpw.mods.fml.common.network.simpleimpl.MessageContext; 12 | 13 | public class MessageTileUpdate implements IMessage 14 | { 15 | int worldId; 16 | int x; 17 | int y; 18 | int z; 19 | NBTTagCompound tag; 20 | 21 | public MessageTileUpdate(){} 22 | 23 | public MessageTileUpdate(TileEntityWGBase te) 24 | { 25 | this.worldId = te.getWorldObj().provider.dimensionId; 26 | this.x = te.xCoord; 27 | this.y = te.yCoord; 28 | this.z = te.zCoord; 29 | this.tag = new NBTTagCompound(); 30 | te.writeCustomNBT(this.tag); 31 | } 32 | 33 | @Override 34 | public void fromBytes(ByteBuf buffer) 35 | { 36 | this.worldId = buffer.readInt(); 37 | this.x = buffer.readInt(); 38 | this.y = buffer.readInt(); 39 | this.z = buffer.readInt(); 40 | this.tag = ByteBufUtils.readTag(buffer); 41 | } 42 | 43 | @Override 44 | public void toBytes(ByteBuf buffer) 45 | { 46 | buffer.writeInt(worldId); 47 | buffer.writeInt(x); 48 | buffer.writeInt(y); 49 | buffer.writeInt(z); 50 | ByteBufUtils.writeTag(buffer, tag); 51 | } 52 | 53 | public static class HandlerClient implements IMessageHandler 54 | { 55 | @Override 56 | public IMessage onMessage(MessageTileUpdate message, MessageContext ctx) 57 | { 58 | World world = DimensionManager.getWorld(message.worldId); 59 | if(world!=null && world.getTileEntity(message.x, message.y, message.z)!=null && world.getTileEntity(message.x, message.y, message.z) instanceof TileEntityWGBase) 60 | ((TileEntityWGBase)world.getTileEntity(message.x, message.y, message.z)).readCustomNBT(message.tag); 61 | return null; 62 | } 63 | } 64 | public static class HandlerServer implements IMessageHandler 65 | { 66 | @Override 67 | public IMessage onMessage(MessageTileUpdate message, MessageContext ctx) 68 | { 69 | World world = DimensionManager.getWorld(message.worldId); 70 | if(world!=null && world.getTileEntity(message.x, message.y, message.z)!=null && world.getTileEntity(message.x, message.y, message.z) instanceof TileEntityWGBase) 71 | ((TileEntityWGBase)world.getTileEntity(message.x, message.y, message.z)).readCustomNBT(message.tag); 72 | return null; 73 | } 74 | } 75 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/render/ItemRenderMagicalBaubles.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.render; 2 | 3 | import java.awt.Color; 4 | 5 | import net.minecraft.client.Minecraft; 6 | import net.minecraft.client.renderer.ItemRenderer; 7 | import net.minecraft.client.renderer.Tessellator; 8 | import net.minecraft.client.renderer.texture.TextureManager; 9 | import net.minecraft.client.renderer.texture.TextureUtil; 10 | import net.minecraft.entity.EntityLivingBase; 11 | import net.minecraft.item.ItemStack; 12 | import net.minecraft.util.IIcon; 13 | import net.minecraftforge.client.IItemRenderer; 14 | 15 | import org.lwjgl.opengl.GL11; 16 | import org.lwjgl.opengl.GL12; 17 | 18 | import witchinggadgets.common.WGContent; 19 | 20 | public class ItemRenderMagicalBaubles implements IItemRenderer 21 | { 22 | @Override 23 | public boolean handleRenderType(ItemStack stack, ItemRenderType type) 24 | { 25 | if(type == ItemRenderType.EQUIPPED_FIRST_PERSON) 26 | return true; 27 | return false; 28 | } 29 | 30 | @Override 31 | public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack stack, ItemRendererHelper helper) 32 | { 33 | return false; 34 | } 35 | 36 | @Override 37 | public void renderItem(ItemRenderType type, ItemStack stack, Object... data) 38 | { 39 | TextureManager textureManager = Minecraft.getMinecraft().getTextureManager(); 40 | EntityLivingBase par1EntityLivingBase; 41 | try{ 42 | par1EntityLivingBase = (EntityLivingBase) data[1]; 43 | }catch(Exception e) 44 | { 45 | e.printStackTrace(); 46 | GL11.glPopMatrix(); 47 | return; 48 | } 49 | GL11.glEnable(GL12.GL_RESCALE_NORMAL); 50 | for (int l = 0; l < WGContent.ItemMagicalBaubles.getRenderPasses(stack.getItemDamage()); ++l) 51 | { 52 | IIcon iicon = par1EntityLivingBase.getItemIcon(stack, l); 53 | 54 | if (iicon == null) 55 | { 56 | GL11.glPopMatrix(); 57 | return; 58 | } 59 | 60 | textureManager.bindTexture(textureManager.getResourceLocation(stack.getItemSpriteNumber())); 61 | TextureUtil.func_152777_a(false, false, 1f); 62 | Tessellator tessellator = Tessellator.instance; 63 | float f = iicon.getMinU(); 64 | float f1 = iicon.getMaxU(); 65 | float f2 = iicon.getMinV(); 66 | float f3 = iicon.getMaxV(); 67 | 68 | int colour = WGContent.ItemMagicalBaubles.getColorFromItemStack(stack, l); 69 | Color col = new Color(colour); 70 | if(l>0) 71 | GL11.glColor3d(col.getRed()/255.0, col.getGreen()/255.0, col.getBlue()/255.0); 72 | ItemRenderer.renderItemIn2D(tessellator, f1, f2, f, f3, iicon.getIconWidth(), iicon.getIconHeight(), 0.0625F); 73 | } 74 | 75 | GL11.glDisable(GL12.GL_RESCALE_NORMAL); 76 | textureManager.bindTexture(textureManager.getResourceLocation(stack.getItemSpriteNumber())); 77 | TextureUtil.func_147945_b(); 78 | } 79 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/network/PacketPlaySound.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.network; 2 | 3 | import io.netty.buffer.ByteBuf; 4 | import io.netty.channel.ChannelHandlerContext; 5 | import net.minecraft.entity.player.EntityPlayer; 6 | import net.minecraft.world.World; 7 | import net.minecraftforge.common.DimensionManager; 8 | 9 | public class PacketPlaySound extends AbstractPacket 10 | { 11 | int dim; 12 | double x; 13 | double y; 14 | double z; 15 | float volume; 16 | float pitch; 17 | String sound; 18 | public PacketPlaySound(){} 19 | 20 | public PacketPlaySound(World world, double xx, double yy ,double zz, String s, float f, float g) 21 | { 22 | this.dim = world.provider.dimensionId; 23 | this.x = xx; 24 | this.y = yy; 25 | this.z = zz; 26 | this.sound = s; 27 | this.volume = f; 28 | this.pitch = g; 29 | } 30 | 31 | @Override 32 | public void decodeInto(ChannelHandlerContext ctx, ByteBuf buffer) 33 | { 34 | this.dim = buffer.readInt(); 35 | this.x = buffer.readDouble(); 36 | this.y = buffer.readDouble(); 37 | this.z = buffer.readDouble(); 38 | this.volume = buffer.readFloat(); 39 | this.pitch = buffer.readFloat(); 40 | 41 | String tempString = ""; 42 | int charLength = buffer.readInt(); 43 | for(int i=0;i oreFluidName = new HashMap(); 8 | static HashMap oreFluidTemp = new HashMap(); 9 | 10 | static{ 11 | //tcon 12 | addOreFluid("Aluminum", "aluminum.molten", 350); 13 | addOreFluid("Cobalt", "cobalt.molten", 650); 14 | addOreFluid("Ardite", "ardite.molten", 650); 15 | //factorization 16 | addOreFluid("FzDarkIron", "fzdarkiron.molten", 600); 17 | //TFoundation 18 | addOreFluid("Nickel", "nickel.molten", 400); 19 | addOreFluid("Platinum", "platinum.molten", 550); 20 | //misc 21 | addOreFluid("Manganese", "manganese.molten", 700); 22 | addOreFluid("Zinc", "zinc.molten", 550); 23 | //metallurgy-overworld 24 | addOreFluid("Prometheum", "prometheum.molten", 550); 25 | addOreFluid("DeepIron", "deep.iron.molten", 550); 26 | addOreFluid("Infuscolium", "infuscolium.molten", 550); 27 | addOreFluid("Oureclase", "oureclase.molten", 550); 28 | addOreFluid("AstralSilver", "astral.silver.molten", 550); 29 | addOreFluid("Carmot", "carmot.molten", 550); 30 | addOreFluid("Mithril", "mithril.molten", 550); 31 | addOreFluid("Rubracium", "rubracium.molten", 550); 32 | addOreFluid("Orichalcum", "orichalcum.molten", 550); 33 | addOreFluid("Adamantine", "adamantine.molten", 550); 34 | addOreFluid("Atlarus", "atlarus.molten", 550); 35 | //metallurgy-nether 36 | addOreFluid("Ignatius", "ignatius.molten", 550); 37 | addOreFluid("ShadowIron", "shadow.iron.molten", 550); 38 | addOreFluid("Lemurite", "lemurite.molten", 550); 39 | addOreFluid("Midasium", "midasium.molten", 550); 40 | addOreFluid("Vyroxeres", "vyroxeres.molten", 550); 41 | addOreFluid("Ceruclase", "ceruclase.molten", 550); 42 | addOreFluid("Alduorite", "alduorite.molten", 550); 43 | addOreFluid("Kalendrite", "kalendrite.molten", 550); 44 | addOreFluid("Vulcanite", "vulcanite.molten", 550); 45 | addOreFluid("Sanguinite", "sanguinite.molten", 550); 46 | //metallurgy-ender 47 | addOreFluid("Eximite", "eximite.molten", 600); 48 | addOreFluid("Meutoite", "meutoite.molten", 600); 49 | //betweenlands 50 | addOreFluid("Syrmorite", "syrmorite.molten", 600); 51 | addOreFluid("Octine", "octine.molten", 600); 52 | 53 | } 54 | 55 | public static int getOreFluidTemp(String ore) 56 | { 57 | if(oreFluidTemp.get(ore) != null) 58 | return oreFluidTemp.get(ore); 59 | return 0; 60 | } 61 | public static String getOreFluidName(String ore) 62 | { 63 | if(oreFluidTemp.get(ore) != null) 64 | return oreFluidName.get(ore); 65 | return ""; 66 | } 67 | public static void addOreFluid(String ore, String fluidName, int temp) 68 | { 69 | oreFluidName.put(ore, fluidName); 70 | oreFluidTemp.put(ore, temp); 71 | } 72 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/util/handler/BaublesUtil.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.util.handler; 2 | 3 | import java.lang.reflect.Field; 4 | 5 | import net.minecraft.client.Minecraft; 6 | import net.minecraft.entity.Entity; 7 | import net.minecraft.entity.player.EntityPlayer; 8 | import net.minecraft.inventory.IInventory; 9 | import net.minecraft.server.MinecraftServer; 10 | import net.minecraft.world.World; 11 | import baubles.api.BaublesApi; 12 | import cpw.mods.fml.common.FMLCommonHandler; 13 | import cpw.mods.fml.common.Loader; 14 | import cpw.mods.fml.relauncher.ReflectionHelper; 15 | import cpw.mods.fml.relauncher.Side; 16 | 17 | 18 | public class BaublesUtil { 19 | 20 | public static enum WhoAmI { 21 | SPCLIENT, MPCLIENT, SPSERVER, MPSERVER, OTHER; 22 | 23 | public static BaublesUtil.WhoAmI whoAmI(World world) { 24 | Side side = FMLCommonHandler.instance().getSide(); 25 | if (side == Side.CLIENT) { 26 | if (Minecraft.getMinecraft().isIntegratedServerRunning()) { 27 | if (world.isRemote) { 28 | return SPCLIENT; 29 | } else { 30 | return SPSERVER; 31 | } 32 | } else { 33 | return MPCLIENT; 34 | } 35 | } else if (side == Side.SERVER) { 36 | if (MinecraftServer.getServer().isDedicatedServer()) { 37 | return MPSERVER; 38 | } else if (Minecraft.getMinecraft().isIntegratedServerRunning()) { 39 | return SPSERVER; 40 | } 41 | } 42 | return OTHER; 43 | } 44 | } 45 | 46 | private static final BaublesUtil instance = new BaublesUtil(); 47 | private static final boolean baublesLoaded; 48 | static { 49 | baublesLoaded = Loader.isModLoaded("Baubles"); 50 | } 51 | 52 | private BaublesUtil() { 53 | } 54 | 55 | public static BaublesUtil instance() { 56 | return instance; 57 | } 58 | 59 | public boolean hasBaubles() { 60 | return baublesLoaded; 61 | } 62 | 63 | /** 64 | * Do NOT modify this inventory on the client side of a singleplayer game! 65 | * 66 | * Wrap it in a ShadowInventory if you need to. 67 | */ 68 | public IInventory getBaubles(EntityPlayer player) { 69 | return hasBaubles() ? getBaublesInvUnsafe(player) : null; 70 | } 71 | 72 | private IInventory getBaublesInvUnsafe(EntityPlayer player) { 73 | return BaublesApi.getBaubles(player); 74 | } 75 | 76 | private static boolean failedDirectAccess = false; 77 | public void disableCallbacks(IInventory baubles, boolean b) { 78 | if (!failedDirectAccess) { 79 | try { 80 | Class inventoryBaubles = Class.forName("baubles.common.container.InventoryBaubles"); 81 | Field blockEvents = inventoryBaubles.getDeclaredField("blockEvents"); 82 | blockEvents.set(baubles, b); 83 | } catch (Throwable t) { 84 | Log.info("Failed to access Baubles internals: " + t); 85 | failedDirectAccess = true; 86 | } 87 | } 88 | } 89 | 90 | } 91 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/gui/ContainerSpinningWheel.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.gui; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.entity.player.InventoryPlayer; 5 | import net.minecraft.inventory.Container; 6 | import net.minecraft.inventory.Slot; 7 | import net.minecraft.item.ItemStack; 8 | import witchinggadgets.common.blocks.tiles.TileEntitySpinningWheel; 9 | 10 | public class ContainerSpinningWheel extends Container 11 | { 12 | protected TileEntitySpinningWheel tileEntity; 13 | private int slotCount; 14 | 15 | public ContainerSpinningWheel (InventoryPlayer inventoryPlayer, TileEntitySpinningWheel te) 16 | { 17 | this.tileEntity = te; 18 | 19 | //the Slot constructor takes the IInventory and the slot number in that it binds to 20 | //and the x-y coordinates it resides on-screen 21 | for (int i = 0; i < 5; i++) 22 | { 23 | this.addSlotToContainer(new Slot(tileEntity, i, 16, 16+24*i)); 24 | } 25 | this.addSlotToContainer(new SlotOutput(tileEntity, 5, 142, 64)); 26 | this.slotCount = 6; 27 | //commonly used vanilla code that adds the player's inventory 28 | this.bindPlayerInventory(inventoryPlayer); 29 | } 30 | 31 | @Override 32 | public boolean canInteractWith(EntityPlayer player) 33 | { 34 | return tileEntity.isUseableByPlayer(player); 35 | } 36 | 37 | 38 | protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) 39 | { 40 | for (int i = 0; i < 3; i++) { 41 | for (int j = 0; j < 9; j++) { 42 | addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, 43 | 16 + j * 18, 151 + i * 18)); 44 | } 45 | } 46 | 47 | for (int i = 0; i < 9; i++) { 48 | addSlotToContainer(new Slot(inventoryPlayer, i, 16 + i * 18, 209)); 49 | } 50 | } 51 | 52 | @Override 53 | public ItemStack transferStackInSlot(EntityPlayer player, int slot) { 54 | ItemStack stack = null; 55 | Slot slotObject = (Slot) inventorySlots.get(slot); 56 | 57 | //null checks and checks if the item can be stacked (maxStackSize > 1) 58 | if (slotObject != null && slotObject.getHasStack()) { 59 | ItemStack stackInSlot = slotObject.getStack(); 60 | stack = stackInSlot.copy(); 61 | 62 | //merges the item into player inventory since its in the tileEntity 63 | if (slot < slotCount) { 64 | if (!this.mergeItemStack(stackInSlot, slotCount, (slotCount + 36), true)) { 65 | return null; 66 | } 67 | } 68 | //places it into the tileEntity is possible since its in the player inventory 69 | else if (!this.mergeItemStack(stackInSlot, 0, slotCount, false)) { 70 | return null; 71 | } 72 | 73 | if (stackInSlot.stackSize == 0) { 74 | slotObject.putStack(null); 75 | } else { 76 | slotObject.onSlotChanged(); 77 | } 78 | 79 | if (stackInSlot.stackSize == stack.stackSize) { 80 | return null; 81 | } 82 | slotObject.onPickupFromSlot(player, stackInSlot); 83 | } 84 | return stack; 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/gui/InventoryBag.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.gui; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.inventory.Container; 5 | import net.minecraft.inventory.IInventory; 6 | import net.minecraft.item.ItemStack; 7 | 8 | public class InventoryBag implements IInventory 9 | { 10 | private Container container; 11 | public ItemStack[] stackList; 12 | 13 | public InventoryBag(Container par1Container) 14 | { 15 | this.container = par1Container; 16 | this.stackList = new ItemStack[18]; 17 | } 18 | 19 | 20 | @Override 21 | public int getSizeInventory() 22 | { 23 | return this.stackList.length; 24 | } 25 | 26 | @Override 27 | public ItemStack getStackInSlot(int i) 28 | { 29 | if(i >= this.getSizeInventory())return null; 30 | return this.stackList[i]; 31 | } 32 | 33 | @Override 34 | public ItemStack getStackInSlotOnClosing(int i) 35 | { 36 | if (this.stackList[i] != null) 37 | { 38 | ItemStack itemstack = this.stackList[i]; 39 | this.stackList[i] = null; 40 | return itemstack; 41 | } 42 | return null; 43 | } 44 | 45 | @Override 46 | public ItemStack decrStackSize(int i, int j) 47 | { 48 | 49 | if (this.stackList[i] != null) 50 | { 51 | ItemStack itemstack; 52 | 53 | if (this.stackList[i].stackSize <= j) 54 | { 55 | itemstack = this.stackList[i]; 56 | this.stackList[i] = null; 57 | this.markDirty(); 58 | return itemstack; 59 | } 60 | itemstack = this.stackList[i].splitStack(j); 61 | 62 | if (this.stackList[i].stackSize == 0) 63 | { 64 | this.stackList[i] = null; 65 | } 66 | 67 | this.container.onCraftMatrixChanged(this); 68 | //this.onInventoryChanged(); 69 | return itemstack; 70 | } 71 | return null; 72 | } 73 | 74 | 75 | @Override 76 | public void setInventorySlotContents(int i, ItemStack stack) 77 | { 78 | this.stackList[i] = stack; 79 | 80 | if (stack != null && stack.stackSize > this.getInventoryStackLimit()) 81 | { 82 | stack.stackSize = this.getInventoryStackLimit(); 83 | } 84 | 85 | this.container.onCraftMatrixChanged(this); 86 | //this.onInventoryChanged(); 87 | } 88 | 89 | @Override 90 | public String getInventoryName() { 91 | return "container.WGPouch"; 92 | } 93 | 94 | @Override 95 | public boolean hasCustomInventoryName() { 96 | return true; 97 | } 98 | 99 | @Override 100 | public int getInventoryStackLimit() { 101 | return 64; 102 | } 103 | 104 | @Override 105 | public void markDirty() { 106 | 107 | } 108 | 109 | @Override 110 | public boolean isUseableByPlayer(EntityPlayer entityplayer) { 111 | return true; 112 | } 113 | 114 | @Override 115 | public void openInventory() {} 116 | 117 | @Override 118 | public void closeInventory() {} 119 | 120 | @Override 121 | public boolean isItemValidForSlot(int i, ItemStack itemstack) { 122 | return true; 123 | } 124 | 125 | } 126 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/gui/InventoryPrimordialRing.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.gui; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.inventory.Container; 5 | import net.minecraft.inventory.IInventory; 6 | import net.minecraft.item.ItemStack; 7 | 8 | public class InventoryPrimordialRing implements IInventory 9 | { 10 | 11 | private Container container; 12 | public ItemStack[] stackList; 13 | 14 | public InventoryPrimordialRing(Container par1Container) 15 | { 16 | this.container = par1Container; 17 | this.stackList = new ItemStack[3]; 18 | } 19 | 20 | 21 | @Override 22 | public int getSizeInventory() 23 | { 24 | return this.stackList.length; 25 | } 26 | 27 | @Override 28 | public ItemStack getStackInSlot(int i) 29 | { 30 | if(i >= this.getSizeInventory())return null; 31 | return this.stackList[i]; 32 | } 33 | 34 | @Override 35 | public ItemStack getStackInSlotOnClosing(int i) 36 | { 37 | if (this.stackList[i] != null) 38 | { 39 | ItemStack itemstack = this.stackList[i]; 40 | this.stackList[i] = null; 41 | return itemstack; 42 | } 43 | return null; 44 | } 45 | 46 | @Override 47 | public ItemStack decrStackSize(int i, int j) 48 | { 49 | 50 | if (this.stackList[i] != null) 51 | { 52 | ItemStack itemstack; 53 | 54 | if (this.stackList[i].stackSize <= j) 55 | { 56 | itemstack = this.stackList[i]; 57 | this.stackList[i] = null; 58 | this.markDirty(); 59 | return itemstack; 60 | } 61 | itemstack = this.stackList[i].splitStack(j); 62 | 63 | if (this.stackList[i].stackSize == 0) 64 | { 65 | this.stackList[i] = null; 66 | } 67 | 68 | this.container.onCraftMatrixChanged(this); 69 | return itemstack; 70 | } 71 | return null; 72 | } 73 | 74 | 75 | @Override 76 | public void setInventorySlotContents(int i, ItemStack stack) 77 | { 78 | this.stackList[i] = stack; 79 | 80 | if (stack != null && stack.stackSize > this.getInventoryStackLimit()) 81 | { 82 | stack.stackSize = this.getInventoryStackLimit(); 83 | } 84 | 85 | this.container.onCraftMatrixChanged(this); 86 | //this.onInventoryChanged(); 87 | } 88 | 89 | @Override 90 | public String getInventoryName() { 91 | return "container.WGPrimordialRing"; 92 | } 93 | 94 | @Override 95 | public boolean hasCustomInventoryName() 96 | { 97 | return false; 98 | } 99 | 100 | @Override 101 | public int getInventoryStackLimit() { 102 | return 64; 103 | } 104 | 105 | @Override 106 | public void markDirty() { 107 | 108 | } 109 | 110 | @Override 111 | public boolean isUseableByPlayer(EntityPlayer entityplayer) { 112 | return true; 113 | } 114 | 115 | @Override 116 | public void openInventory() {} 117 | 118 | @Override 119 | public void closeInventory() {} 120 | 121 | @Override 122 | public boolean isItemValidForSlot(int i, ItemStack itemstack) { 123 | return true; 124 | } 125 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/gui/InventoryPrimordialGlove.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.gui; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.inventory.Container; 5 | import net.minecraft.inventory.IInventory; 6 | import net.minecraft.item.ItemStack; 7 | 8 | public class InventoryPrimordialGlove implements IInventory 9 | { 10 | private Container container; 11 | public ItemStack[] stackList; 12 | 13 | public InventoryPrimordialGlove(Container par1Container) 14 | { 15 | this.container = par1Container; 16 | this.stackList = new ItemStack[5]; 17 | } 18 | 19 | 20 | @Override 21 | public int getSizeInventory() 22 | { 23 | return this.stackList.length; 24 | } 25 | 26 | @Override 27 | public ItemStack getStackInSlot(int i) 28 | { 29 | if(i >= this.getSizeInventory())return null; 30 | return this.stackList[i]; 31 | } 32 | 33 | @Override 34 | public ItemStack getStackInSlotOnClosing(int i) 35 | { 36 | if (this.stackList[i] != null) 37 | { 38 | ItemStack itemstack = this.stackList[i]; 39 | this.stackList[i] = null; 40 | return itemstack; 41 | } 42 | return null; 43 | } 44 | 45 | @Override 46 | public ItemStack decrStackSize(int i, int j) 47 | { 48 | 49 | if (this.stackList[i] != null) 50 | { 51 | ItemStack itemstack; 52 | 53 | if (this.stackList[i].stackSize <= j) 54 | { 55 | itemstack = this.stackList[i]; 56 | this.stackList[i] = null; 57 | this.markDirty(); 58 | return itemstack; 59 | } 60 | itemstack = this.stackList[i].splitStack(j); 61 | 62 | if (this.stackList[i].stackSize == 0) 63 | { 64 | this.stackList[i] = null; 65 | } 66 | 67 | this.container.onCraftMatrixChanged(this); 68 | return itemstack; 69 | } 70 | return null; 71 | } 72 | 73 | 74 | @Override 75 | public void setInventorySlotContents(int i, ItemStack stack) 76 | { 77 | this.stackList[i] = stack; 78 | 79 | if (stack != null && stack.stackSize > this.getInventoryStackLimit()) 80 | { 81 | stack.stackSize = this.getInventoryStackLimit(); 82 | } 83 | 84 | this.container.onCraftMatrixChanged(this); 85 | //this.onInventoryChanged(); 86 | } 87 | 88 | @Override 89 | public String getInventoryName() { 90 | return "container.WGPrimordialBracelet"; 91 | } 92 | 93 | @Override 94 | public boolean hasCustomInventoryName() 95 | { 96 | return false; 97 | } 98 | 99 | @Override 100 | public int getInventoryStackLimit() { 101 | return 64; 102 | } 103 | 104 | @Override 105 | public void markDirty() { 106 | 107 | } 108 | 109 | @Override 110 | public boolean isUseableByPlayer(EntityPlayer entityplayer) { 111 | return true; 112 | } 113 | 114 | @Override 115 | public void openInventory() {} 116 | 117 | @Override 118 | public void closeInventory() {} 119 | 120 | @Override 121 | public boolean isItemValidForSlot(int i, ItemStack itemstack) { 122 | return true; 123 | } 124 | 125 | } 126 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/CommonProxy.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.tileentity.TileEntity; 5 | import net.minecraft.world.World; 6 | import net.minecraftforge.common.util.ForgeDirection; 7 | import travellersgear.api.TravellersGearAPI; 8 | import witchinggadgets.asm.pouch.ContainerPatchedFocusPouch; 9 | import witchinggadgets.common.blocks.tiles.TileEntityCuttingTable; 10 | import witchinggadgets.common.blocks.tiles.TileEntityLabelLibrary; 11 | import witchinggadgets.common.blocks.tiles.TileEntitySpinningWheel; 12 | import witchinggadgets.common.gui.ContainerBag; 13 | import witchinggadgets.common.gui.ContainerCloak; 14 | import witchinggadgets.common.gui.ContainerCuttingTable; 15 | import witchinggadgets.common.gui.ContainerLabelLibrary; 16 | import witchinggadgets.common.gui.ContainerPrimordialGlove; 17 | import witchinggadgets.common.gui.ContainerSpinningWheel; 18 | import witchinggadgets.common.gui.ContainerVoidBag; 19 | import baubles.api.BaublesApi; 20 | import cpw.mods.fml.common.network.IGuiHandler; 21 | 22 | public class CommonProxy implements IGuiHandler 23 | { 24 | public void registerRenders(){} 25 | public void registerHandlers() 26 | { 27 | } 28 | 29 | @Override 30 | public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) 31 | { 32 | TileEntity tile = world.getTileEntity(x, y, z); 33 | if(ID == 0)return new ContainerSpinningWheel(player.inventory, (TileEntitySpinningWheel)tile); 34 | 35 | if(ID == 3)return new ContainerBag(player.inventory, world); 36 | if(ID==4||ID==5)return new ContainerCloak(player.inventory, world, ID==4?TravellersGearAPI.getExtendedInventory(player)[0]:BaublesApi.getBaubles(player).getStackInSlot(3) ); 37 | 38 | if(ID == 6)return new ContainerPatchedFocusPouch(player.inventory, world, x, y, z); 39 | 40 | if(ID == 7)return new ContainerPrimordialGlove(player.inventory, world, x, y, z); 41 | if(ID == 8)return new ContainerLabelLibrary(player.inventory, (TileEntityLabelLibrary)tile); 42 | 43 | if(ID == 9)return new ContainerCuttingTable(player.inventory, (TileEntityCuttingTable)tile); 44 | 45 | if(ID == 11)return new ContainerVoidBag(player.inventory, world); 46 | 47 | return null; 48 | } 49 | 50 | @Override 51 | public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) 52 | { 53 | return null; 54 | } 55 | 56 | public void createEssentiaTrailFx(World worldObj, int x, int y, int z, int tx, int ty, int tz, int count, int color, float scale) 57 | { 58 | } 59 | public void createTargetedWispFx(World worldObj, double x, double y, double z, double tx, double ty, double tz, int color, float scale, float gravity, boolean tinkle, boolean noClip) 60 | { 61 | } 62 | public void createSweatFx(EntityPlayer player) 63 | { 64 | } 65 | public void createFurnaceOutputBlobFx(World worldObj, int x, int y, int z, ForgeDirection facing) 66 | { 67 | } 68 | public void createFurnaceDestructionBlobFx(World worldObj, int x, int y, int z) 69 | { 70 | } 71 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/common/gui/InventoryCloak.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.common.gui; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.inventory.Container; 5 | import net.minecraft.inventory.IInventory; 6 | import net.minecraft.item.ItemStack; 7 | 8 | public class InventoryCloak implements IInventory 9 | { 10 | private Container container; 11 | public ItemStack[] stackList; 12 | 13 | public InventoryCloak(Container par1Container) 14 | { 15 | this.container = par1Container; 16 | this.stackList = new ItemStack[27]; 17 | } 18 | 19 | 20 | @Override 21 | public int getSizeInventory() 22 | { 23 | return this.stackList.length; 24 | } 25 | 26 | @Override 27 | public ItemStack getStackInSlot(int i) 28 | { 29 | if(i >= this.getSizeInventory())return null; 30 | return this.stackList[i]; 31 | } 32 | 33 | @Override 34 | public ItemStack getStackInSlotOnClosing(int i) 35 | { 36 | if (this.stackList[i] != null) 37 | { 38 | ItemStack itemstack = this.stackList[i]; 39 | this.stackList[i] = null; 40 | return itemstack; 41 | } 42 | return null; 43 | } 44 | 45 | @Override 46 | public ItemStack decrStackSize(int i, int j) 47 | { 48 | 49 | if (this.stackList[i] != null) 50 | { 51 | ItemStack itemstack; 52 | 53 | if (this.stackList[i].stackSize <= j) 54 | { 55 | itemstack = this.stackList[i]; 56 | this.stackList[i] = null; 57 | this.markDirty(); 58 | return itemstack; 59 | } 60 | itemstack = this.stackList[i].splitStack(j); 61 | 62 | if (this.stackList[i].stackSize == 0) 63 | { 64 | this.stackList[i] = null; 65 | } 66 | 67 | this.container.onCraftMatrixChanged(this); 68 | //this.onInventoryChanged(); 69 | return itemstack; 70 | } 71 | return null; 72 | } 73 | 74 | 75 | @Override 76 | public void setInventorySlotContents(int i, ItemStack stack) 77 | { 78 | this.stackList[i] = stack; 79 | 80 | if (stack != null && stack.stackSize > this.getInventoryStackLimit()) 81 | stack.stackSize = this.getInventoryStackLimit(); 82 | 83 | this.container.onCraftMatrixChanged(this); 84 | //this.onInventoryChanged(); 85 | } 86 | 87 | @Override 88 | public String getInventoryName() { 89 | return "container.WGCloakPouch"; 90 | } 91 | 92 | @Override 93 | public boolean hasCustomInventoryName() { 94 | // TODO Auto-generated method stub 95 | return false; 96 | } 97 | 98 | @Override 99 | public int getInventoryStackLimit() { 100 | return 64; 101 | } 102 | 103 | @Override 104 | public void markDirty() { 105 | 106 | } 107 | 108 | @Override 109 | public boolean isUseableByPlayer(EntityPlayer entityplayer) { 110 | return true; 111 | } 112 | 113 | @Override 114 | public void openInventory() {} 115 | 116 | @Override 117 | public void closeInventory() {} 118 | 119 | @Override 120 | public boolean isItemValidForSlot(int i, ItemStack itemstack) { 121 | return true; 122 | } 123 | 124 | } 125 | -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/ClientTickHandler.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client; 2 | 3 | import java.util.HashMap; 4 | import java.util.Iterator; 5 | import java.util.Map; 6 | 7 | import net.minecraft.client.Minecraft; 8 | import net.minecraft.entity.player.EntityPlayer; 9 | import net.minecraft.util.ChunkCoordinates; 10 | import thaumcraft.client.fx.ParticleEngine; 11 | import thaumcraft.client.fx.particles.FXWisp; 12 | import cpw.mods.fml.common.eventhandler.SubscribeEvent; 13 | import cpw.mods.fml.common.gameevent.TickEvent; 14 | import cpw.mods.fml.relauncher.Side; 15 | import cpw.mods.fml.relauncher.SideOnly; 16 | 17 | public class ClientTickHandler 18 | { 19 | public static HashMap oreHighlightMap = new HashMap(); 20 | public static HashMap oreHighlightBeamMap = new HashMap(); 21 | static int highlight; 22 | 23 | @SideOnly(Side.CLIENT) 24 | @SubscribeEvent 25 | public void renderTick(TickEvent.RenderTickEvent event) 26 | { 27 | if(!(Minecraft.getMinecraft().renderViewEntity instanceof EntityPlayer)) 28 | return; 29 | EntityPlayer player = (EntityPlayer)Minecraft.getMinecraft().renderViewEntity; 30 | if(player==null || oreHighlightMap.isEmpty()) 31 | { 32 | oreHighlightMap.clear(); 33 | oreHighlightBeamMap.clear(); 34 | highlight = 0; 35 | return; 36 | } 37 | 38 | Map.Entry e = oreHighlightMap.entrySet().toArray(new Map.Entry[0])[highlight]; 39 | if(player.worldObj.getTotalWorldTime()%30==0) 40 | // for(Map.Entry e : oreHighlightMap.entrySet()) 41 | { 42 | float x = e.getKey().posX+.5f; 43 | float y = e.getKey().posY+.75f; 44 | float z = e.getKey().posZ+.5f; 45 | 46 | double[] hand = ClientUtilities.getPlayerHandPos(player, true); 47 | 48 | //Thaumcraft.proxy.wispFX3(player.worldObj, hand[0],hand[1],hand[2], x,y,z, .15f,3,false,0); 49 | FXWisp ef = new FXWisp(player.worldObj, hand[0],hand[1],hand[2], x,y,z, .05f, 3); 50 | ef.noClip = true; 51 | ef.setGravity(0); 52 | ef.shrink = true; 53 | 54 | ParticleEngine.instance.addEffect(player.worldObj, ef); 55 | 56 | //oreHighlightBeamMap.put(e.getKey(), Thaumcraft.proxy.beamPower(player.worldObj, hand[0],hand[1],hand[2], x,y,z, 0, 1, 0, true, oreHighlightBeamMap.get(e.getKey())));//beamBore(Minecraft.getMinecraft().theWorld, x,y,z, hand[0],hand[1],hand[2], 1,Aspect.EARTH.getColor(), true, .2f, oreHighlightBeamMap.get(e.getKey()), 0)); 57 | highlight++; 58 | if(highlight >= oreHighlightMap.size()) 59 | highlight=0; 60 | } 61 | } 62 | @SideOnly(Side.CLIENT) 63 | @SubscribeEvent 64 | public void playerTick(TickEvent.PlayerTickEvent event) 65 | { 66 | Iterator> it = oreHighlightMap.entrySet().iterator(); 67 | while(it.hasNext()) 68 | { 69 | Map.Entry e = it.next(); 70 | oreHighlightMap.put(e.getKey(), e.getValue()-1); 71 | if(oreHighlightMap.get(e.getKey())<=0) 72 | { 73 | oreHighlightBeamMap.remove(e.getKey()); 74 | it.remove(); 75 | highlight = 0; 76 | } 77 | } 78 | } 79 | } -------------------------------------------------------------------------------- /src/main/java/witchinggadgets/client/gui/GuiLabelLibrary.java: -------------------------------------------------------------------------------- 1 | package witchinggadgets.client.gui; 2 | 3 | import net.minecraft.client.gui.inventory.GuiContainer; 4 | import net.minecraft.entity.player.EntityPlayer; 5 | import net.minecraft.entity.player.InventoryPlayer; 6 | 7 | import org.lwjgl.opengl.GL11; 8 | 9 | import thaumcraft.api.ThaumcraftApiHelper; 10 | import thaumcraft.api.aspects.Aspect; 11 | import thaumcraft.client.lib.UtilsFX; 12 | import witchinggadgets.WitchingGadgets; 13 | import witchinggadgets.client.ClientUtilities; 14 | import witchinggadgets.common.blocks.tiles.TileEntityLabelLibrary; 15 | import witchinggadgets.common.gui.ContainerLabelLibrary; 16 | import witchinggadgets.common.util.network.message.MessageTileUpdate; 17 | 18 | public class GuiLabelLibrary extends GuiContainer 19 | { 20 | private TileEntityLabelLibrary tile; 21 | private EntityPlayer player; 22 | 23 | public GuiLabelLibrary (InventoryPlayer inventoryPlayer, TileEntityLabelLibrary tileEntity) 24 | { 25 | super(new ContainerLabelLibrary(inventoryPlayer, tileEntity)); 26 | this.tile = tileEntity; 27 | this.player = inventoryPlayer.player; 28 | } 29 | 30 | @Override 31 | protected void drawGuiContainerBackgroundLayer(float par1, int mX, int mY) 32 | { 33 | //draw your Gui here, only thing you need to change is the path 34 | GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); 35 | ClientUtilities.bindTexture("witchinggadgets:textures/gui/labelLibrary.png"); 36 | //Inventory 37 | this.drawTexturedModalRect(guiLeft,guiTop-5, 0, 0, xSize+18, ySize+5); 38 | 39 | float scale = .65f; 40 | GL11.glScalef(scale,scale,1); 41 | int i=0; 42 | int x = (int)Math.floor((guiLeft+36)/scale); 43 | int y = (int)Math.floor((guiTop+8)/scale); 44 | int row = (int)(8/scale); 45 | 46 | for(Aspect a: Aspect.aspects.values()) 47 | if(ThaumcraftApiHelper.hasDiscoveredAspect(player.getCommandSenderName(), a)) 48 | { 49 | UtilsFX.drawTag(x+17*(i%row),y+17*(i/row), a, 0.0F, tile.aspect==a?1:0, zLevel); 50 | i++; 51 | } 52 | GL11.glScalef(1/scale,1/scale,1); 53 | 54 | UtilsFX.drawTag(guiLeft+8,guiTop+30, tile.aspect, 0.0F, 0, zLevel); 55 | 56 | // if(this.tile.getOutput()!=null) 57 | // this.drawVirtualItem(tile.getOutput(), guiLeft+118,guiTop+24, false, mX, mY, false); 58 | } 59 | 60 | @Override 61 | protected void mouseClicked(int mX, int mY, int button) 62 | { 63 | super.mouseClicked(mX, mY, button); 64 | mX-= ((width - xSize)/2+36); 65 | mY-= ((height - ySize)/2+8); 66 | 67 | float scale = .65f; 68 | int i=0; 69 | int row = (int)(8/scale); 70 | int size = (int) Math.floor(17*scale); 71 | Aspect old = tile.aspect; 72 | for(Aspect a: Aspect.aspects.values()) 73 | if(ThaumcraftApiHelper.hasDiscoveredAspect(player.getCommandSenderName(), a)) 74 | { 75 | if(mX>=size*(i%row) && mX=size*(i/row) && mY