From 9b7872a03e95c3fcfd34dfaae78293abd0e8164b Mon Sep 17 00:00:00 2001 From: MachineMuse Date: Sat, 16 Mar 2013 00:59:13 -0600 Subject: [PATCH] 1.5 migration started --- .gitignore | 1 + build.xml | 14 +- mcmod.info | 4 +- .../mmmPowersuits}/sound/GUIInstall.ogg | Bin .../mmmPowersuits}/sound/GUISelect.ogg | Bin .../mmmPowersuits}/sound/Glider.ogg | Bin .../mmmPowersuits}/sound/JetBoots.ogg | Bin .../mmmPowersuits}/sound/Jetpack.ogg | Bin .../mmmPowersuits}/sound/JumpAssist.ogg | Bin .../mmmPowersuits}/sound/SwimAssist.ogg | Bin .../sound/WaterElectrolyzer.ogg | Bin .../textures/items/advancedplating1.png | Bin 0 -> 935 bytes .../textures/items/advancedplating2.png | Bin 0 -> 976 bytes mods/mmmPowersuits/textures/items/alien.png | Bin 0 -> 991 bytes .../textures/items/aquaaffinity.png | Bin 0 -> 999 bytes .../textures/items/arcreactor.png | Bin 0 -> 974 bytes .../textures/items/armorfeet.png | Bin 0 -> 197 bytes .../textures/items/armorhead.png | Bin 0 -> 181 bytes .../textures/items/armorlegs.png | Bin 0 -> 215 bytes .../textures/items/armortorso.png | Bin 0 -> 246 bytes .../textures/items/artificialmuscle.png | Bin 0 -> 958 bytes .../textures/items/basicplating1.png | Bin 0 -> 944 bytes .../textures/items/basicplating2.png | Bin 0 -> 977 bytes .../textures/items/bluedrone.png | Bin 0 -> 1023 bytes .../textures/items/bluelight.png | Bin 0 -> 956 bytes .../textures/items/bluephaser.png | Bin 0 -> 1006 bytes .../textures/items/blueplate.png | Bin 0 -> 939 bytes .../mmmPowersuits/textures/items/bluestar.png | Bin 0 -> 1056 bytes .../textures/items/clawclosed.png | Bin 0 -> 979 bytes .../textures/items/clawlaser.png | Bin 0 -> 981 bytes .../mmmPowersuits/textures/items/clawopen.png | Bin 0 -> 984 bytes .../textures/items/climbassist.png | Bin 0 -> 984 bytes .../textures/items/controlcircuit.png | Bin 0 -> 998 bytes .../textures/items/coolingsystem.png | Bin 0 -> 1003 bytes .../textures/items/crystalball.png | Bin 0 -> 939 bytes .../textures/items/crystalcapacitor.png | Bin 0 -> 1002 bytes .../textures/items/diamondupgrade.png | Bin 0 -> 999 bytes .../textures/items/electricweapon.png | Bin 0 -> 977 bytes .../textures/items/energymeter.png | Bin 0 -> 916 bytes .../textures/items/energyshield.png | Bin 0 -> 1010 bytes .../textures/items/fieldemitter.png | Bin 0 -> 995 bytes .../textures/items/fireweapon.png | Bin 0 -> 985 bytes mods/mmmPowersuits/textures/items/glider.png | Bin 0 -> 995 bytes .../textures/items/gliderwing.png | Bin 0 -> 976 bytes .../textures/items/gravitydrive.png | Bin 0 -> 1024 bytes .../textures/items/gravityweapon.png | Bin 0 -> 994 bytes .../textures/items/greendrone.png | Bin 0 -> 1021 bytes .../textures/items/greenfield.png | Bin 0 -> 1026 bytes .../textures/items/greenlight.png | Bin 0 -> 960 bytes .../textures/items/greenphaser.png | Bin 0 -> 999 bytes .../textures/items/greenplate.png | Bin 0 -> 941 bytes .../textures/items/greenstar.png | Bin 0 -> 1056 bytes .../mmmPowersuits/textures/items/handitem.png | Bin 0 -> 1004 bytes mods/mmmPowersuits/textures/items/heart.png | Bin 0 -> 1029 bytes .../textures/items/heatresistantplating.png | Bin 0 -> 918 bytes .../textures/items/heatresistantplating2.png | Bin 0 -> 965 bytes .../textures/items/hologramemitter.png | Bin 0 -> 957 bytes .../textures/items/hvcapacitor.png | Bin 0 -> 994 bytes .../textures/items/ionthruster.png | Bin 0 -> 1011 bytes .../mmmPowersuits/textures/items/jetboots.png | Bin 0 -> 990 bytes mods/mmmPowersuits/textures/items/jetpack.png | Bin 0 -> 990 bytes .../textures/items/jumpassist.png | Bin 0 -> 984 bytes mods/mmmPowersuits/textures/items/lantern.png | Bin 0 -> 958 bytes mods/mmmPowersuits/textures/items/laser.png | Bin 0 -> 918 bytes .../textures/items/lvbattery.png | Bin 0 -> 946 bytes .../textures/items/lvcapacitor.png | Bin 0 -> 934 bytes .../textures/items/microbattery.png | Bin 0 -> 934 bytes .../textures/items/mvbattery.png | Bin 0 -> 948 bytes .../textures/items/mvcapacitor.png | Bin 0 -> 984 bytes .../mmmPowersuits/textures/items/myofiber.png | Bin 0 -> 957 bytes .../textures/items/netherstar.png | Bin 0 -> 1002 bytes .../textures/items/nexuscrystal.png | Bin 0 -> 975 bytes .../textures/items/nightvision.png | Bin 0 -> 943 bytes .../textures/items/parachute.png | Bin 0 -> 1028 bytes .../textures/items/parachuteitem.png | Bin 0 -> 982 bytes mods/mmmPowersuits/textures/items/paste.png | Bin 0 -> 980 bytes .../mmmPowersuits/textures/items/reddrone.png | Bin 0 -> 1025 bytes .../mmmPowersuits/textures/items/redfield.png | Bin 0 -> 982 bytes .../mmmPowersuits/textures/items/redlight.png | Bin 0 -> 964 bytes .../textures/items/redphaser.png | Bin 0 -> 993 bytes .../mmmPowersuits/textures/items/redplate.png | Bin 0 -> 941 bytes mods/mmmPowersuits/textures/items/redstar.png | Bin 0 -> 1060 bytes mods/mmmPowersuits/textures/items/servo.png | Bin 0 -> 944 bytes .../textures/items/shockabsorber.png | Bin 0 -> 985 bytes .../mmmPowersuits/textures/items/solenoid.png | Bin 0 -> 931 bytes .../textures/items/soundweapon.png | Bin 0 -> 968 bytes .../textures/items/sprintassist.png | Bin 0 -> 995 bytes .../textures/items/swimboost.png | Bin 0 -> 993 bytes .../textures/items/thermometer.png | Bin 0 -> 934 bytes mods/mmmPowersuits/textures/items/toolaxe.png | Bin 0 -> 250 bytes .../mmmPowersuits/textures/items/toolfist.png | Bin 0 -> 945 bytes .../textures/items/toolfisty.png | Bin 0 -> 234 bytes .../mmmPowersuits/textures/items/toolpick.png | Bin 0 -> 228 bytes .../textures/items/toolpinch.png | Bin 0 -> 252 bytes .../textures/items/toolpointer.png | Bin 0 -> 980 bytes .../textures/items/toolshears.png | Bin 0 -> 280 bytes .../textures/items/toolshovel.png | Bin 0 -> 967 bytes .../textures/items/toolshovels.png | Bin 0 -> 264 bytes .../textures/items/transparentarmor.png | Bin 0 -> 982 bytes .../textures/items/waterelectrolyzer.png | Bin 0 -> 954 bytes mods/mmmPowersuits/textures/items/wiring.png | Bin 0 -> 998 bytes .../mmmPowersuits/textures}/keybind.png | Bin .../mmmPowersuits/textures}/mmmpsicon.png | Bin .../mmmPowersuits/textures}/mmmpslogo_64.png | Bin .../textures/models}/blankarmor.png | Bin .../textures/models}/joearmor.png | Bin .../textures/models}/joearmorpants.png | Bin .../textures/models}/sebkarmor.png | Bin .../textures/models}/sebkarmorpants.png | Bin .../textures/models}/tinkertable_tx.png | Bin .../mmmPowersuits/textures/models}/tool.png | Bin .../mmmPowersuits/textures}/sebkicons.png | Bin .../textures/sebkicons.png_out/0,0.png | Bin 0 -> 473 bytes .../textures/sebkicons.png_out/0,1.png | Bin 0 -> 477 bytes .../textures/sebkicons.png_out/0,2.png | Bin 0 -> 478 bytes .../textures/sebkicons.png_out/0,3.png | Bin 0 -> 508 bytes .../textures/sebkicons.png_out/0,4.png | Bin 0 -> 508 bytes .../textures/sebkicons.png_out/0,5.png | Bin 0 -> 515 bytes .../textures/sebkicons.png_out/0,6.png | Bin 0 -> 441 bytes .../textures/sebkicons.png_out/0,7.png | Bin 0 -> 443 bytes .../textures/sebkicons.png_out/0,8.png | Bin 0 -> 453 bytes .../textures/sebkicons.png_out/1,0.png | Bin 0 -> 328 bytes .../textures/sebkicons.png_out/1,1.png | Bin 0 -> 344 bytes .../textures/sebkicons.png_out/1,2.png | Bin 0 -> 326 bytes .../textures/sebkicons.png_out/1,3.png | Bin 0 -> 554 bytes .../textures/sebkicons.png_out/1,4.png | Bin 0 -> 545 bytes .../textures/sebkicons.png_out/1,5.png | Bin 0 -> 536 bytes .../mmmPowersuits/textures}/watericons-2.png | Bin .../mmmPowersuits/textures}/watericons.png | Bin resources/machinemuse/iconstodo.txt | 12 - resources/machinemuse/moreiconideas.txt | 8 - .../machinemuse/api/ElectricItemUtils.java | 10 +- .../net/machinemuse/general/MuseRenderer.java | 107 +-- .../net/machinemuse/general/gui/MuseGui.java | 2 +- .../net/machinemuse/general/gui/MuseIcon.java | 205 ++--- .../general/gui/PortableCraftingGui.java | 53 +- .../powersuits/block/BlockTinkerTable.java | 97 +- .../powersuits/client/ClientProxy.java | 13 +- .../client/render/TinkerTableRenderer.java | 19 +- .../powersuits/client/render/ToolModel.java | 31 +- .../machinemuse/powersuits/common/Config.java | 235 ++--- .../powersuits/common/ModCompatability.java | 40 +- .../powersuits/common/RecipeManager.java | 866 ++++-------------- .../powersuits/item/ItemComponent.java | 49 +- .../powersuits/item/ItemElectricArmor.java | 176 ++++ .../powersuits/item/ItemElectricTool.java | 232 +++++ .../powersuits/item/ItemPowerArmor.java | 266 +----- .../powersuits/item/ItemPowerArmorFeet.java | 14 +- .../powersuits/item/ItemPowerArmorHead.java | 13 +- .../powersuits/item/ItemPowerArmorLegs.java | 13 +- .../powersuits/item/ItemPowerArmorTorso.java | 13 +- .../powersuits/item/ItemPowerTool.java | 347 ++----- .../MusePacketInstallModuleRequest.java | 30 +- .../modules/InPlaceAssemblerModule.java | 3 +- .../powersuits/tick/ClientTickHandler.java | 21 +- .../powersuits/tick/PlayerTickHandler.java | 2 +- .../powersuits/tick/RenderTickHandler.java | 48 +- 157 files changed, 1110 insertions(+), 1834 deletions(-) rename {resources/machinemuse => mods/mmmPowersuits}/sound/GUIInstall.ogg (100%) rename {resources/machinemuse => mods/mmmPowersuits}/sound/GUISelect.ogg (100%) rename {resources/machinemuse => mods/mmmPowersuits}/sound/Glider.ogg (100%) rename {resources/machinemuse => mods/mmmPowersuits}/sound/JetBoots.ogg (100%) rename {resources/machinemuse => mods/mmmPowersuits}/sound/Jetpack.ogg (100%) rename {resources/machinemuse => mods/mmmPowersuits}/sound/JumpAssist.ogg (100%) rename {resources/machinemuse => mods/mmmPowersuits}/sound/SwimAssist.ogg (100%) rename {resources/machinemuse => mods/mmmPowersuits}/sound/WaterElectrolyzer.ogg (100%) create mode 100644 mods/mmmPowersuits/textures/items/advancedplating1.png create mode 100644 mods/mmmPowersuits/textures/items/advancedplating2.png create mode 100644 mods/mmmPowersuits/textures/items/alien.png create mode 100644 mods/mmmPowersuits/textures/items/aquaaffinity.png create mode 100644 mods/mmmPowersuits/textures/items/arcreactor.png create mode 100644 mods/mmmPowersuits/textures/items/armorfeet.png create mode 100644 mods/mmmPowersuits/textures/items/armorhead.png create mode 100644 mods/mmmPowersuits/textures/items/armorlegs.png create mode 100644 mods/mmmPowersuits/textures/items/armortorso.png create mode 100644 mods/mmmPowersuits/textures/items/artificialmuscle.png create mode 100644 mods/mmmPowersuits/textures/items/basicplating1.png create mode 100644 mods/mmmPowersuits/textures/items/basicplating2.png create mode 100644 mods/mmmPowersuits/textures/items/bluedrone.png create mode 100644 mods/mmmPowersuits/textures/items/bluelight.png create mode 100644 mods/mmmPowersuits/textures/items/bluephaser.png create mode 100644 mods/mmmPowersuits/textures/items/blueplate.png create mode 100644 mods/mmmPowersuits/textures/items/bluestar.png create mode 100644 mods/mmmPowersuits/textures/items/clawclosed.png create mode 100644 mods/mmmPowersuits/textures/items/clawlaser.png create mode 100644 mods/mmmPowersuits/textures/items/clawopen.png create mode 100644 mods/mmmPowersuits/textures/items/climbassist.png create mode 100644 mods/mmmPowersuits/textures/items/controlcircuit.png create mode 100644 mods/mmmPowersuits/textures/items/coolingsystem.png create mode 100644 mods/mmmPowersuits/textures/items/crystalball.png create mode 100644 mods/mmmPowersuits/textures/items/crystalcapacitor.png create mode 100644 mods/mmmPowersuits/textures/items/diamondupgrade.png create mode 100644 mods/mmmPowersuits/textures/items/electricweapon.png create mode 100644 mods/mmmPowersuits/textures/items/energymeter.png create mode 100644 mods/mmmPowersuits/textures/items/energyshield.png create mode 100644 mods/mmmPowersuits/textures/items/fieldemitter.png create mode 100644 mods/mmmPowersuits/textures/items/fireweapon.png create mode 100644 mods/mmmPowersuits/textures/items/glider.png create mode 100644 mods/mmmPowersuits/textures/items/gliderwing.png create mode 100644 mods/mmmPowersuits/textures/items/gravitydrive.png create mode 100644 mods/mmmPowersuits/textures/items/gravityweapon.png create mode 100644 mods/mmmPowersuits/textures/items/greendrone.png create mode 100644 mods/mmmPowersuits/textures/items/greenfield.png create mode 100644 mods/mmmPowersuits/textures/items/greenlight.png create mode 100644 mods/mmmPowersuits/textures/items/greenphaser.png create mode 100644 mods/mmmPowersuits/textures/items/greenplate.png create mode 100644 mods/mmmPowersuits/textures/items/greenstar.png create mode 100644 mods/mmmPowersuits/textures/items/handitem.png create mode 100644 mods/mmmPowersuits/textures/items/heart.png create mode 100644 mods/mmmPowersuits/textures/items/heatresistantplating.png create mode 100644 mods/mmmPowersuits/textures/items/heatresistantplating2.png create mode 100644 mods/mmmPowersuits/textures/items/hologramemitter.png create mode 100644 mods/mmmPowersuits/textures/items/hvcapacitor.png create mode 100644 mods/mmmPowersuits/textures/items/ionthruster.png create mode 100644 mods/mmmPowersuits/textures/items/jetboots.png create mode 100644 mods/mmmPowersuits/textures/items/jetpack.png create mode 100644 mods/mmmPowersuits/textures/items/jumpassist.png create mode 100644 mods/mmmPowersuits/textures/items/lantern.png create mode 100644 mods/mmmPowersuits/textures/items/laser.png create mode 100644 mods/mmmPowersuits/textures/items/lvbattery.png create mode 100644 mods/mmmPowersuits/textures/items/lvcapacitor.png create mode 100644 mods/mmmPowersuits/textures/items/microbattery.png create mode 100644 mods/mmmPowersuits/textures/items/mvbattery.png create mode 100644 mods/mmmPowersuits/textures/items/mvcapacitor.png create mode 100644 mods/mmmPowersuits/textures/items/myofiber.png create mode 100644 mods/mmmPowersuits/textures/items/netherstar.png create mode 100644 mods/mmmPowersuits/textures/items/nexuscrystal.png create mode 100644 mods/mmmPowersuits/textures/items/nightvision.png create mode 100644 mods/mmmPowersuits/textures/items/parachute.png create mode 100644 mods/mmmPowersuits/textures/items/parachuteitem.png create mode 100644 mods/mmmPowersuits/textures/items/paste.png create mode 100644 mods/mmmPowersuits/textures/items/reddrone.png create mode 100644 mods/mmmPowersuits/textures/items/redfield.png create mode 100644 mods/mmmPowersuits/textures/items/redlight.png create mode 100644 mods/mmmPowersuits/textures/items/redphaser.png create mode 100644 mods/mmmPowersuits/textures/items/redplate.png create mode 100644 mods/mmmPowersuits/textures/items/redstar.png create mode 100644 mods/mmmPowersuits/textures/items/servo.png create mode 100644 mods/mmmPowersuits/textures/items/shockabsorber.png create mode 100644 mods/mmmPowersuits/textures/items/solenoid.png create mode 100644 mods/mmmPowersuits/textures/items/soundweapon.png create mode 100644 mods/mmmPowersuits/textures/items/sprintassist.png create mode 100644 mods/mmmPowersuits/textures/items/swimboost.png create mode 100644 mods/mmmPowersuits/textures/items/thermometer.png create mode 100644 mods/mmmPowersuits/textures/items/toolaxe.png create mode 100644 mods/mmmPowersuits/textures/items/toolfist.png create mode 100644 mods/mmmPowersuits/textures/items/toolfisty.png create mode 100644 mods/mmmPowersuits/textures/items/toolpick.png create mode 100644 mods/mmmPowersuits/textures/items/toolpinch.png create mode 100644 mods/mmmPowersuits/textures/items/toolpointer.png create mode 100644 mods/mmmPowersuits/textures/items/toolshears.png create mode 100644 mods/mmmPowersuits/textures/items/toolshovel.png create mode 100644 mods/mmmPowersuits/textures/items/toolshovels.png create mode 100644 mods/mmmPowersuits/textures/items/transparentarmor.png create mode 100644 mods/mmmPowersuits/textures/items/waterelectrolyzer.png create mode 100644 mods/mmmPowersuits/textures/items/wiring.png rename {resources/machinemuse => mods/mmmPowersuits/textures}/keybind.png (100%) rename {resources/machinemuse => mods/mmmPowersuits/textures}/mmmpsicon.png (100%) rename {resources/machinemuse => mods/mmmPowersuits/textures}/mmmpslogo_64.png (100%) rename {resources/machinemuse => mods/mmmPowersuits/textures/models}/blankarmor.png (100%) rename {resources/machinemuse => mods/mmmPowersuits/textures/models}/joearmor.png (100%) rename {resources/machinemuse => mods/mmmPowersuits/textures/models}/joearmorpants.png (100%) rename {resources/machinemuse => mods/mmmPowersuits/textures/models}/sebkarmor.png (100%) rename {resources/machinemuse => mods/mmmPowersuits/textures/models}/sebkarmorpants.png (100%) rename {resources/machinemuse => mods/mmmPowersuits/textures/models}/tinkertable_tx.png (100%) rename {resources/machinemuse => mods/mmmPowersuits/textures/models}/tool.png (100%) rename {resources/machinemuse => mods/mmmPowersuits/textures}/sebkicons.png (100%) create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/0,0.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/0,1.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/0,2.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/0,3.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/0,4.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/0,5.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/0,6.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/0,7.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/0,8.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/1,0.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/1,1.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/1,2.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/1,3.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/1,4.png create mode 100644 mods/mmmPowersuits/textures/sebkicons.png_out/1,5.png rename {resources/machinemuse => mods/mmmPowersuits/textures}/watericons-2.png (100%) rename {resources/machinemuse => mods/mmmPowersuits/textures}/watericons.png (100%) delete mode 100644 resources/machinemuse/iconstodo.txt delete mode 100644 resources/machinemuse/moreiconideas.txt create mode 100644 src/minecraft/net/machinemuse/powersuits/item/ItemElectricArmor.java create mode 100644 src/minecraft/net/machinemuse/powersuits/item/ItemElectricTool.java diff --git a/.gitignore b/.gitignore index a335998..1f787d8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ /* !/resource !/resources +!/mods !/src !/mcmod.info !/build.xml diff --git a/build.xml b/build.xml index bdfb266..9a88746 100644 --- a/build.xml +++ b/build.xml @@ -4,15 +4,15 @@ - + - - - + + + - - - + + + diff --git a/mcmod.info b/mcmod.info index 1ff6f46..2effbc2 100644 --- a/mcmod.info +++ b/mcmod.info @@ -3,12 +3,12 @@ "name": "MachineMuse's Modular Powersuits", "description": "A mod which adds modular power armor, power tool, and a tinker table to configure them. Uses UniversalElectricty or IC2 for energy.", "version": "@MOD_VERSION@", - "mcversion": "1.4.7", + "mcversion": "1.5.0", "url": "http://machinemuse.net/", "updateUrl": "", "authors": [ "MachineMuse" ], "credits": "Code by MachineMuse, Icons by WaterCandle, Modeling by SebK", - "logoFile": "/resources/machinemuse/mmmpslogo_64.png", + "logoFile": "/mods/mmmPowersuits/textures/mmmpslogo_64.png", "screenshots": [ ], "parent": "", "requiredMods": [ "Forge" ], diff --git a/resources/machinemuse/sound/GUIInstall.ogg b/mods/mmmPowersuits/sound/GUIInstall.ogg similarity index 100% rename from resources/machinemuse/sound/GUIInstall.ogg rename to mods/mmmPowersuits/sound/GUIInstall.ogg diff --git a/resources/machinemuse/sound/GUISelect.ogg b/mods/mmmPowersuits/sound/GUISelect.ogg similarity index 100% rename from resources/machinemuse/sound/GUISelect.ogg rename to mods/mmmPowersuits/sound/GUISelect.ogg diff --git a/resources/machinemuse/sound/Glider.ogg b/mods/mmmPowersuits/sound/Glider.ogg similarity index 100% rename from resources/machinemuse/sound/Glider.ogg rename to mods/mmmPowersuits/sound/Glider.ogg diff --git a/resources/machinemuse/sound/JetBoots.ogg b/mods/mmmPowersuits/sound/JetBoots.ogg similarity index 100% rename from resources/machinemuse/sound/JetBoots.ogg rename to mods/mmmPowersuits/sound/JetBoots.ogg diff --git a/resources/machinemuse/sound/Jetpack.ogg b/mods/mmmPowersuits/sound/Jetpack.ogg similarity index 100% rename from resources/machinemuse/sound/Jetpack.ogg rename to mods/mmmPowersuits/sound/Jetpack.ogg diff --git a/resources/machinemuse/sound/JumpAssist.ogg b/mods/mmmPowersuits/sound/JumpAssist.ogg similarity index 100% rename from resources/machinemuse/sound/JumpAssist.ogg rename to mods/mmmPowersuits/sound/JumpAssist.ogg diff --git a/resources/machinemuse/sound/SwimAssist.ogg b/mods/mmmPowersuits/sound/SwimAssist.ogg similarity index 100% rename from resources/machinemuse/sound/SwimAssist.ogg rename to mods/mmmPowersuits/sound/SwimAssist.ogg diff --git a/resources/machinemuse/sound/WaterElectrolyzer.ogg b/mods/mmmPowersuits/sound/WaterElectrolyzer.ogg similarity index 100% rename from resources/machinemuse/sound/WaterElectrolyzer.ogg rename to mods/mmmPowersuits/sound/WaterElectrolyzer.ogg diff --git a/mods/mmmPowersuits/textures/items/advancedplating1.png b/mods/mmmPowersuits/textures/items/advancedplating1.png new file mode 100644 index 0000000000000000000000000000000000000000..c427335f826a7c86e3a4e7c6fd7623d6d7aecee9 GIT binary patch literal 935 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KwzQ%1Y%Q~loCIE#oep>(l literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/advancedplating2.png b/mods/mmmPowersuits/textures/items/advancedplating2.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed41e1b49da597f19b4bf507aa5c0f2714c408a GIT binary patch literal 976 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KF< z!8fLz|3f2qoR4o>;Kh3T{G#4P8vmDjcrx?_6$Njez2<+wtbOxe^RGz_@jA;Eq*Z;p zeagA2iM$&$Z*?&$6@3)G@b5vKEAt25$`v|w&1X69UUc8@$IkWa1%o)_><6C`KS#~^ eru5DB-TU~gF9uVmst06%eCz4z=d#Wzp$P!Ed6+o> literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/alien.png b/mods/mmmPowersuits/textures/items/alien.png new file mode 100644 index 0000000000000000000000000000000000000000..2edf3f78ef192aa7498e1c9fb6b97475a95fe119 GIT binary patch literal 991 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Ko978H@x%%zqJFLKCvpm3Xfu7{e z-~a0`tv?aBbfVNru`6a1nk??mm7npTo#)n3hoc3?&%a%-s1cdA^1g<~6<+I4Q_h|= z`5<+%r=|A#f(gGaXvDmZbzD_(^yUVmk6mSbwi?YAW-_@vx$RkMmy?47KAn3V{g(5@ uyf>@UIU`g)uDLMh{u-MK)_TFWn*SMZ^B7oJ*Q##^dEV32&t;ucLK6U*yP^yL literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/aquaaffinity.png b/mods/mmmPowersuits/textures/items/aquaaffinity.png new file mode 100644 index 0000000000000000000000000000000000000000..fc42251150202f0348dc9c8820e3dbdae539099e GIT binary patch literal 999 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kun=Vov(^8ZC={El+(6vtM{)f)$;F)*b62#?D(m;@p|13aZNXc>@YUBg$tg4 zXExYame$^VLcfS@KG(j}iz;q0h;dx?Iw$z`pj?C0YbmLT#~G)oORbO&IlbSlXU^gJ zBkyK5ye{Ye(sxbu`Fh#oe@Zwv`8Z6EXjxwL&(`euPW@f4xYRg6f#B)t=d#Wzp$Pyo CR-pm_ literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/arcreactor.png b/mods/mmmPowersuits/textures/items/arcreactor.png new file mode 100644 index 0000000000000000000000000000000000000000..dda773ee4ffbe702b608c18572ee2a38bb20b203 GIT binary patch literal 974 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K>G zz4tAc{lEU*GyNAryIRk+AM6s@?s+_n>E)LR4_N-lKD^78a8>K_rSBilTQ|NqbZ_^PDc@o*x~H)`;@VKqW0=_ZY?zMX zSJ%#I{MM81_sIXT^XwQF&3G2W8Ie2wX6Z3%s-8;fVRYhI^ncayFb3_V5@8(;Y-IaqVNS9C65fMq4d28XrrHUcY-1|nxE}VN;pSI`AF~#EGQX|huDWvb zULIeY-)qh-^2Z%7$^DpAQpC<+KH~x7m;a0zd++^cnef`^eLkc4`JarREY5qFwDjZx PUCQ9;>gTe~DWM4frxjIc literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/armortorso.png b/mods/mmmPowersuits/textures/items/armortorso.png new file mode 100644 index 0000000000000000000000000000000000000000..ace3e2f48f30bcc35a9d78ec1b0042292f2df23b GIT binary patch literal 246 zcmV%H*kXG64=nSTC_p0vm`U&B4#Dr_cM*#H0l07*qoM6N<$f}a0u!vFvP literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/artificialmuscle.png b/mods/mmmPowersuits/textures/items/artificialmuscle.png new file mode 100644 index 0000000000000000000000000000000000000000..be9c12aa5d687c0fe192d81b753b7c324b6a9d07 GIT binary patch literal 958 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KPeVfI!p)7Y%hYvDK3i76e1Q@mv6W#5_dXnDNfty$t1oZr1K1o_R= L)z4*}Q$iB}Sp1O7 literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/basicplating1.png b/mods/mmmPowersuits/textures/items/basicplating1.png new file mode 100644 index 0000000000000000000000000000000000000000..3e34e3623132f768c16a1be8196daf05f4236039 GIT binary patch literal 944 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K2}RM9VuqwH=uOOlfQr wJ`0~oa-4CnPvwK~tGpQu)^_I?-af^^VEjNp?&jUSdLZ9;y85}Sb4q9e0FxMmZU6uP literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/basicplating2.png b/mods/mmmPowersuits/textures/items/basicplating2.png new file mode 100644 index 0000000000000000000000000000000000000000..e8780d1054f7c34bd50d26923ae31ccbf253754f GIT binary patch literal 977 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KNit zVszBw-H#I2r1)N9nelmXcYcERi9p|y<~0fF^1BkUXP%p%)tlz+Lg1qbL>gTe~DWM4f)VZ6r literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/bluedrone.png b/mods/mmmPowersuits/textures/items/bluedrone.png new file mode 100644 index 0000000000000000000000000000000000000000..0a4d326017a6af99648eff738463e86696b64db6 GIT binary patch literal 1023 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K<@joA5IcUfC}{tbS@@WxU1w&`Plvrn#%;YRzeu`f0sx b>DANwTP|9jnD!%^6BIa}u6{1-oD!M<6Dh6V literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/bluelight.png b/mods/mmmPowersuits/textures/items/bluelight.png new file mode 100644 index 0000000000000000000000000000000000000000..3befdbb9933203b22ad4c3958fcff0955e98ad4b GIT binary patch literal 956 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K-Dgs?DiZs6pdJFSe-s`LK~37!qndJI~kvO)qkvi>uwWmH5yNp><=k^ijF#m<*1dz`>UHx3v IIVCg!0IQdV5dZ)H literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/bluephaser.png b/mods/mmmPowersuits/textures/items/bluephaser.png new file mode 100644 index 0000000000000000000000000000000000000000..157fa48d24cedf4b58e6c61a72e11d847ce4012b GIT binary patch literal 1006 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kwn?5St7z;rEOxeBX1k)!S2IOY3lu{4e}Gu=&tNdFX{2Rb41G^-jgFM z{Ko`=yAD^{GC6rJ1m_CQ`=I>5HYjJp+K9RB2EJ`m6Lc8LK23ib>cpU!#%U_?^;qHF z#0+6Ai{}RWH`b>n|Ln`>zv8^IF0$z#%c~tB_a||wSpR#?Y{+J0c;bSgA}B08UHx3v IIVCg!04&>{>i_@% literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/blueplate.png b/mods/mmmPowersuits/textures/items/blueplate.png new file mode 100644 index 0000000000000000000000000000000000000000..674291a53cd9eae26de263456bf02d23856949fd GIT binary patch literal 939 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KYA_IRxqr%OgP-QS zgTLhuH+xtqx@>y3xYt)}dDZ8x!~_vXv$EGQo~-TD)y{~noX1ftoPK2S&PQMMQkK1c qq3^`3y(F%uA*!;{=KAzkZ95rfZx;?oGU%TV@`$IapUXO@geCxAEra#| literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/bluestar.png b/mods/mmmPowersuits/textures/items/bluestar.png new file mode 100644 index 0000000000000000000000000000000000000000..a7fa0cb7ed394693f685345b8f205be57da36c48 GIT binary patch literal 1056 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K8DR3X}`pap_P+fye1%X2p8kv6r|6?AwIt*XiK%#sS$o&bowh>4qr-VzR0hb zeNhd|HTW_@?sp6Gu?GG7+Bk31?^PY|o;qz6+_h37{(|6^EsR~7j%THKrl!8yx8Py! z61lXmpAUA<|7h`}B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K-FWx`Lz9i+4`_yw4$xe?Gg@t;4S9m{qFS1T1t4NcI$dy^&9b=4|}@$xvXB|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KZ}>i$y8U+* zr_3c6OD_rJgR2Zo@5{PZ)%2mprUIIaBXplyFu#59`{_ iyAQ7Oi+fK=tG_1i`&If}S*Kns$jhFtelF{r5}E+`C!0+G literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/clawopen.png b/mods/mmmPowersuits/textures/items/clawopen.png new file mode 100644 index 0000000000000000000000000000000000000000..6553f33c9672b4288fac759bdfc73a119f17348f GIT binary patch literal 984 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KTGieFj5 z`@Wv%{lYK#(>Eo|*%B&p#{XW+OBL2QuXhh_B+VB2u_5tCXs&`#`7bk9=JsU^Q@GO8 zvff)d@^1Zf`HA*c$A4`#>!uy(Ik4u)l_g29x6M>M;k_mGs40`}KkY4X+Qw%byWwWb6Mw<&;$S|@SC3i literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/climbassist.png b/mods/mmmPowersuits/textures/items/climbassist.png new file mode 100644 index 0000000000000000000000000000000000000000..a5e4d5dc95361c24cf2a8868535bc4a0aef8635c GIT binary patch literal 984 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kem(2W m(cXTcOvYIgj#hYX@6h+ZsIoF>)#H^QUwgXxxvXB|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kg_wob;y9H?fXvzop6PDeXaW+u|8B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kocv*p zHAgEFwSTnnPVB!fqp0!DN6d5uv+PEOh&=AQ$xR8KvW%5hQeo}V`m-Hd?;d~nV9}gu z_7{F}-1+`~j;4F~+Jn+z3xAlsym`vR;^fiWjB|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K8=p1Kc zDdG?B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KQ`Ueqp?EZp*%h_wIhQYpgHq^1RcKcjt!Xiy%RfdqQfC#cn4m zc5a{Yhga+34vWoOIZEe-{FZs;`K(*{F`s^vUi`9ofi{zNsICoI+W7X^t;O;C-Po5& zFOOX;`EjxC2Fb~rzaN^^H~p55`j^E&=jKgsO5<(6U&oN$VC<*(s6zo14xX-lF6*2U FngEDvrF#GX literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/diamondupgrade.png b/mods/mmmPowersuits/textures/items/diamondupgrade.png new file mode 100644 index 0000000000000000000000000000000000000000..460f4997575715d35b13891f014ff38d7e2a89f1 GIT binary patch literal 999 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K?=Yuer&^I?meY}AR`mJ_)aap&1vcIyUnAHVzr6bPQKelF{r5}E+o CIi^Pd literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/electricweapon.png b/mods/mmmPowersuits/textures/items/electricweapon.png new file mode 100644 index 0000000000000000000000000000000000000000..b35e453ab54221e7b95c73461e3b9c56cd265ded GIT binary patch literal 977 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K`7`El_&`SO1?i7l%VuB0=pY|vob{aEnGm->SCla8T#+A|XcSZ@EA$GGaL ey>bZq2{DGnPRf0gk37i&dDqj`&t;ucLK6V{u#^}8 literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/energymeter.png b/mods/mmmPowersuits/textures/items/energymeter.png new file mode 100644 index 0000000000000000000000000000000000000000..b26480abc63d90a5ad83cb99648b48099c5a1abc GIT binary patch literal 916 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kt=&o?CI*~vd$@?2>|Q|bzuMi literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/energyshield.png b/mods/mmmPowersuits/textures/items/energyshield.png new file mode 100644 index 0000000000000000000000000000000000000000..48e89a2cdc79f1dc30be57566700149ebb042f1b GIT binary patch literal 1010 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KkcUVEdIGp1wyTOI7 zRj2;f2aB<>P2=m}XkF;%8m+1Ry5yT}Nmzn~#538MKZ^=JuTlD>as8Lz9i5}%KUC6I z2^9TFDib(fdjBFPzr^x8lP)-K&M?dR5qj4|`s}(04W&}92S>UpqaOvHvPl1>u}@nt zam}25E+v6Qy)F!$Pv$mD&GPs%nYHqF{jR5nz2{z;d-hR$Z`swG|D;d0I94@OO{oTj Nho`Hb%Q~loCIAfHr-}do literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/fieldemitter.png b/mods/mmmPowersuits/textures/items/fieldemitter.png new file mode 100644 index 0000000000000000000000000000000000000000..f0ada4102e8853a0868560ba74ecad317b9ab6e4 GIT binary patch literal 995 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kh0gib=ZK%#ov#unk$xP zVa1tSfBxsEe9iD$;JvV0*kDDvb#i-_#a-K$mWF!oCq~Q($C)@UFSmAn;d*USxL~~d z$-llK3l_b<-Z*i?jl-K{gI2IC_gB26r}>7LL6MKoQct}$wo90Av-4Tr6-EB9_A=c~ xFq*(?mYc5Gul_Zzm|bPcG<}Ad8(+WI-+$jk*S34{hi{+&@O1TaS?83{1OV-tn^XV* literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/fireweapon.png b/mods/mmmPowersuits/textures/items/fireweapon.png new file mode 100644 index 0000000000000000000000000000000000000000..462da5eeb607c04425841c6ee904d9eea59d105b GIT binary patch literal 985 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kf##-%4RXfEeOBf!eY@FX&GzDSPp-7g zIl4QA3X+PJ^OzWgAK|HSY0Yg>Fp5~+D8KMQ#sOzhtwQh0mbz1aZ=aO?7aezg*Wo8m mJu5j4_5`!72uzJAJ@3`T-G@yGywoK!I;zl literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/glider.png b/mods/mmmPowersuits/textures/items/glider.png new file mode 100644 index 0000000000000000000000000000000000000000..92724e8d693fb94c2501058863fdf13d29a891a5 GIT binary patch literal 995 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kl+>BfXf zd~Z~J?)>MGS?GCuRnT$;r+9gchm6>&KEm*kWsHA ys^WCdv9kw~IsADJoG`Dh-L4|#7+-(r{tt!+cU3~Bu1LxS1%RikpUXO@geCxakfNLb literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/gliderwing.png b/mods/mmmPowersuits/textures/items/gliderwing.png new file mode 100644 index 0000000000000000000000000000000000000000..05fef48bdbe2de2b9d1300df78338c2ee61dc0b5 GIT binary patch literal 976 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K4_gmbpej%hFu z(Oj{z=>M!fnS;)=7aj?bj{L_eI_>_s*`gENUD7Vr>i^-pT=wF57!S`s&eA0u>PP!; zPrs^Qv1)R!#*wGrvo6e=yE25;+kQ=W#Em8$iR=rzRaCBNzx&A5dr^_0UdH;6Qiibi d&Qqp4RP3cL=^hCU6siIF*3;F`Wt~$(69A~HlQ{qY literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/gravitydrive.png b/mods/mmmPowersuits/textures/items/gravitydrive.png new file mode 100644 index 0000000000000000000000000000000000000000..41a4a4ae2cf2c06f08121815543161beacd03900 GIT binary patch literal 1024 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Ket-kuz< zAU*w0r~dz!oVRpJ=q}aVuCE7X?9|xoYg}zrTg;Nun!#&xL!&m@PvE`T$!mH(b$yQ6 zb=5pSuds%s$go$%+$cAn8lA`NyDsZgUHppGcO;aLwkz@acOChX+Oq7p@!mO!;XIS9 zp4Ci=X5wpnEh_WSGDs(6Ss>3tmY=6Dx`xjzjMy}{_~N;XUoRxjI=FDfCcea{pOq`- cp1=Q;cR`J<(+`VkIZ)_$y85}Sb4q9e02}nK82|tP literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/gravityweapon.png b/mods/mmmPowersuits/textures/items/gravityweapon.png new file mode 100644 index 0000000000000000000000000000000000000000..20e746dd0907707f11c6cb80b4dc8bfde75e06d7 GIT binary patch literal 994 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K@ah-%W}V$CvVHTBm$zk8EZxb@46Gd^88-!%E`vWv?(7CuUy!}$3@ xbN!EZG9HF}d(x*|Tg3L}$m?`Y-AP-mKCnh8%54hat^N!0zo)C8%Q~loCIIwaqKW_j literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/greendrone.png b/mods/mmmPowersuits/textures/items/greendrone.png new file mode 100644 index 0000000000000000000000000000000000000000..93f90242769955572d3418c71edf5e098a09dc97 GIT binary patch literal 1021 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KFu8X0E0O{w+enTum2rQqZerc*_4m4W zv7R~kOt9a=pR!gCo1^&)+FS- ze{fQFqE4=>>0#B@md8^yrua>`<@Z$2sq>oKAMLYY-_?%fHtv;bn6}Dof!e=5?HiRp Y#ib`(ST1Dp-~k1Vr>mdKI;Vst05KG*zyJUM literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/greenfield.png b/mods/mmmPowersuits/textures/items/greenfield.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb87e3c1acfd28bc80f82c13e153726558b1e62 GIT binary patch literal 1026 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KU*R{CB>@0jIz3}BKTT{2| zybUUMqEDy?ybe$5ICm{)PvfeYxr?=1o-oMtY`n2lp}%BJ&ipVbHvR&q+DxPF$1w-| zQ;!+1&gibcc){T6sf{sT1)jfNw}Si1X3=-gce2PYe|lcR@wM&ujJqmxHs@?~dRe>a e{uVtG_dn)WpE=GK)_Cs*3Lj5bKbLh*2~7anu&?$2 literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/greenlight.png b/mods/mmmPowersuits/textures/items/greenlight.png new file mode 100644 index 0000000000000000000000000000000000000000..0bbcd0205bf7c6e67d24a98ed2b594e5f402ab18 GIT binary patch literal 960 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KE-@8@HTC~HRTlKz_S)whD-(6C zH>i1gILk)mI3wQ<&1p#-kG|bK;jzJV^ZboJ#chJp=boGPe8)is{yPFvHcmp`xgg(p My85}Sb4q9e040ftaR2}S literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/greenphaser.png b/mods/mmmPowersuits/textures/items/greenphaser.png new file mode 100644 index 0000000000000000000000000000000000000000..1d3d94af8e5a5e86695de9a15a8b7aeca8b03301 GIT binary patch literal 999 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K4lV@M4)l z(`E_%1=jEDTP+*)tPG^h8y}U3PCj#>LE66Y&mX%>4E9QE-HW5Gc$((!ii{E1Ia%n+ z`VT7?$}DrJoj3h})O_Yo(i@o!7ft2i%i25d*FD2YY*!g%g(7wfb7>rOiwLMaUV7K@ zwtjWOpCt_QU Bn$iFO literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/greenplate.png b/mods/mmmPowersuits/textures/items/greenplate.png new file mode 100644 index 0000000000000000000000000000000000000000..10aea2cb76bee7a8a031b6da641713ac93e8dc16 GIT binary patch literal 941 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K!K~E;%`iKQkw2=T(EF)%l4fO*wC_?U=yT_aWqA>@=y44IzatOtZM+Y!wY_ so$CdwHhqiApR>XB|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KP6ldLa0!v%-7*BJ%gJLKLmUYfO{VXH>Rt1Y`f{r@K&;Tm?PC;m%0DD*sC L{an^LB{Ts5x1+(P literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/handitem.png b/mods/mmmPowersuits/textures/items/handitem.png new file mode 100644 index 0000000000000000000000000000000000000000..5d4ea0fa66bbf9aeba729c805cac59a8777509df GIT binary patch literal 1004 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K{%#H1WmjQ#aYwDM78|%up1)iEy_jK&Yl+Gv4zEw0sjECf`xG*m8Lb_8 z1(yF%x|-Lp;H=QjU+J6%$`!|%c3rZ1RK@=1g4H!)#mH>=*{QaNKR>Kbu0G?nQnI#o zpK^LfD^K^IBZ4d*OC+BheY#}wJ^Rnm$8L2TUK`!U{f1lq0gKW+Jq@mhppfu%^>bP0 Hl+XkKCd;Ai literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/heart.png b/mods/mmmPowersuits/textures/items/heart.png new file mode 100644 index 0000000000000000000000000000000000000000..1422d42d2ab1fc0b599bccb5b78cafd265801741 GIT binary patch literal 1029 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KsMTA7GKS(`N&l_Q@L>R7H;O5C*Qr%XqcEe?(cI5nM`#m}&tA78&&(^B=osn0trwmrQZy6$y?vGtRa>v%mQdk?1WSzs46 hzd7&1v^y`<9`M&I8i?{c&X)oOk*BMl%Q~loCIEt4uO0vZ literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/heatresistantplating.png b/mods/mmmPowersuits/textures/items/heatresistantplating.png new file mode 100644 index 0000000000000000000000000000000000000000..faea4d7231b98ea983fa32ff8d9ed8e1fe611621 GIT binary patch literal 918 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KB|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KZQTXN6o@cB4*_oFGBw^$moJPup5qx0%z zndXy5ry6Dm{wjGmLHriy7Pk+vM+4(4rhMG^X#Lq48-&}Bil*{j)x7iH^xA(0y+2At TUuIa$0C~~V)z4*}Q$iB}%lnnl literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/hologramemitter.png b/mods/mmmPowersuits/textures/items/hologramemitter.png new file mode 100644 index 0000000000000000000000000000000000000000..298a228ea3566895bd255bbb3e00bd27acb50e20 GIT binary patch literal 957 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K6mec;3Nn=H$G=Q5r#VKjQ6#PdpxN5Jk%fTd@fe)zh2S?*f2Ghl&QmUWRE`q$~>FVdQ I&MBb@01Zus2><{9 literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/hvcapacitor.png b/mods/mmmPowersuits/textures/items/hvcapacitor.png new file mode 100644 index 0000000000000000000000000000000000000000..7ff6aaeb4da4c8c1277a0e2fd21b33f5069ac380 GIT binary patch literal 994 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KkcgTRp##t#sVx^0d zRcYS;|Hco5rMR5#COFA8O;%f?H0{rcxwU2=zH7KM-w9si_4ZT0R>=IvYKPc#IF7SK zue|&E!yV!Cm&ETKN?0#tbS`MIjr!EZvbUuRzopr0Q?c25&!@I literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/ionthruster.png b/mods/mmmPowersuits/textures/items/ionthruster.png new file mode 100644 index 0000000000000000000000000000000000000000..8131f5aaf2cf0b9368cc725e713bd30bf62a6a6c GIT binary patch literal 1011 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KbE;kxK{aYZul>hua&sU!!Cw!Q&QQ(@0{Q7S*gcxgPPL9`L zE|fMpwzGdz!xPCvD!i(-*BCx?|Cm$TF#FaFVdQ&MBb@0NUlOl>h($ literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/jetboots.png b/mods/mmmPowersuits/textures/items/jetboots.png new file mode 100644 index 0000000000000000000000000000000000000000..1c6c4d70ee92112a8f96efaefb8b150de03021c4 GIT binary patch literal 990 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K%je19IRy)}!2?=pMDk?iAtJ7@K$_S>v-(-3iy+NgT3a>dt551WJ1i+?2a s6sk-t{kGOIB|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KVK;tR7D~7 z7RxW@U;pPXj23q)kk+~T!$C;>R)@B1n`JrMJJ}!MUb~*p&{$*q{B+}?sF|l9Iqnh9 zs!F@lrhBi`z}k0Pb@`#nZk;Nw_jd6i(yKjGgVNSCrTHFS=&g}2z3yS|#?14_{KTBS r6OK$cx*|Y(=ltMAziQXI&*ip^x}UWFRgTe~DWM4ftr44P literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/jumpassist.png b/mods/mmmPowersuits/textures/items/jumpassist.png new file mode 100644 index 0000000000000000000000000000000000000000..1d941530c52bfd1081bcc5099f81b67140441c91 GIT binary patch literal 984 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K@`hpV$UEiI@G-`xGxqHfW`!}gcDR=-&*dV6BR569=+QF~M-@o&F3 m>!<4cN1GUGja>Af+K9$KuTwgty78|U$k(2(elF{r5}E*{nVLBO literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/lantern.png b/mods/mmmPowersuits/textures/items/lantern.png new file mode 100644 index 0000000000000000000000000000000000000000..b5a46a4d3467b7ae26797fb35dfc888444484a98 GIT binary patch literal 958 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K@6?4R$ZcUmJD|zEe-Wir&j@LWh8Gl!lxxB+Y z;Q?E5@`HsZLwTPW2(DeBaF6$Wv52_f)ZM3_rAFHy?Rvg^$p>-udxr83UnL{gf&Av_ L>gTe~DWM4fh@_1d literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/laser.png b/mods/mmmPowersuits/textures/items/laser.png new file mode 100644 index 0000000000000000000000000000000000000000..cbb8ad47dc4db4438415bf9600b8bc41690eafb1 GIT binary patch literal 918 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KDXV{mtC;8eKkW;Sz?*rXMLXgicIzr|Nd5-{{2^LQrGwQl6rrS=W?4eFhrdb Ulz-@HCmdKI;Vst0RDq|X8-^I literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/lvbattery.png b/mods/mmmPowersuits/textures/items/lvbattery.png new file mode 100644 index 0000000000000000000000000000000000000000..0141ed796cf7894736e9514e56c7043c7f06c331 GIT binary patch literal 946 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KEvIaJDbmb#zpAIPm#ZYx$Jk_p x3y0Byh-2PIiZ)uUDBgeC?u6}%jQD&14l=GWlyYS3@(l&~$J5o%Wt~$(69DodhHn4> literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/lvcapacitor.png b/mods/mmmPowersuits/textures/items/lvcapacitor.png new file mode 100644 index 0000000000000000000000000000000000000000..5bcfbfdc0a909066e633f9954149519c71adfad4 GIT binary patch literal 934 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K^978H@B_}M9F;EKpFUZvMi{}lG zz5YLUjsn9EhBd#~gc6+0n^~P!Hf=RXxZJdm=`c@P$29vr_5W=C_APO0o7n8kc609< kEr$~w0UzZvEVz%nWVjO|+O?zopr03P;$Bme*a literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/microbattery.png b/mods/mmmPowersuits/textures/items/microbattery.png new file mode 100644 index 0000000000000000000000000000000000000000..423df94a840327809a4d2d64d9596cd5365c9fcd GIT binary patch literal 934 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K^978H@B_}M9F;JTL|DlhYW2C~* zAGRJXlIPMN{Qt`AVbnOoN1!ypjN8Rrnc4a(^b literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/mvbattery.png b/mods/mmmPowersuits/textures/items/mvbattery.png new file mode 100644 index 0000000000000000000000000000000000000000..8b737a35cb2635aa02ac4c21e80c10a32b0d2141 GIT binary patch literal 948 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KF z@aS(#z`+9wr$2~9ax))Jp7AkdMZ-^4rUpNDhWWK(jBjTj)&}{=)78&qol`;+091^K A3;+NC literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/mvcapacitor.png b/mods/mmmPowersuits/textures/items/mvcapacitor.png new file mode 100644 index 0000000000000000000000000000000000000000..14cb1de7f3ea7dca587d9f3dfa3d10d5bdb5ee54 GIT binary patch literal 984 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K(>Xq zAC#0TR{#Gm`HMR=f2nQO#3MPE68M{>@8w0b&1|h->cIM*CpAK3dFuZAQfn7`9I8?| z_3+p()k!uNB%giQRk4V@-96r{`{3GL@?1+l^nN{;etE)~zTf7oGH0Izg`BpT7k<8C mhMMg^6YDnhRQ~+Un;7MHDJZ=CroTTOB|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K<0c?DBMDvyUl3j5gbsaV?p;!?c!h z`Rq&A)AlX85Zv&7^OHvQ8~+t8;vaW-c$7S6+j3>*d5+2dFR<B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kg~7ZKcpaV^#0Zv9*dTp zO6bXXapuN*d#hiJ9p2Z~j@^0?5G?=Kxb$PWz=_@L?}HH7qP*+cFmWNYqK^QUS%|8EB|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KC* df4W^kjX~_M>=xbcCdnYrdb;|#taD0e0sviBmB#=8 literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/nightvision.png b/mods/mmmPowersuits/textures/items/nightvision.png new file mode 100644 index 0000000000000000000000000000000000000000..f65fc75271ea885129ddd43f5abf54e2342270a9 GIT binary patch literal 943 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K$48T=GgQ{bFl z$0zo{?a~KP4Ta96BgJBE{t|6U+Le4}Q>0IFbZni(;k{uu^Qvc-le{G*EhYE;|IeRf t)cCV%j*-!vssvB54zWvd$@?2>^PDeHH)! literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/parachute.png b/mods/mmmPowersuits/textures/items/parachute.png new file mode 100644 index 0000000000000000000000000000000000000000..c14cf687a57d05d6f3593583e4c1d9c74f1635c3 GIT binary patch literal 1028 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KPxUEL)v2p{c3$m4eyETNR$#wG&R)9)J3&?|@Rzr(i#8$(wSuIsvTeGc4cO z3Qb^Z>E`i`N!Zt?{NvJzg6Nr_M7X1auiXi}@$kOk4JOTf*LMFoJI6lwcZF(3)l{Y2 zXuehXKR9RkU6o$syLMNak!MtdM>&VzWD7qD&E5lh+zjMvn ff^M2%Z~Iqfz0X!(E+k&{28EEPtDnm{r-UW|(PghL literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/parachuteitem.png b/mods/mmmPowersuits/textures/items/parachuteitem.png new file mode 100644 index 0000000000000000000000000000000000000000..229c3b6de9ad0c3184073b53b79de63372a01714 GIT binary patch literal 982 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kd|Cu#+ zuKl0CJ2pJ+Mnc}SUz0uvH1Vv>joj8Lcl`R|cIMCK7SrWp9#s4kUa`0Mm3Y?sJ5!$B z{3K+j5*3)XxjbqK-&&!^Cf&N36S^nuS{J&1Qlg~LE4Ccdj&`NTJSH!6GdCP`w#u4# k{I0>Q^81Fa&nzteFh^7xDu=H*&=2ynr>mdKI;Vst0KyfV5dZ)H literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/paste.png b/mods/mmmPowersuits/textures/items/paste.png new file mode 100644 index 0000000000000000000000000000000000000000..68879f01e707eab3e1677975ea9a3f529b69ea5c GIT binary patch literal 980 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KB|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K81Ni^_=P=`+FR{6Eroh24~D)a8%zcD%&*7iuGbrqu-mLOxFWEfgird dI4_=G&sZ5@UNwdP`)W||c)I$ztaD0e0sx{ztmFUy literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/redfield.png b/mods/mmmPowersuits/textures/items/redfield.png new file mode 100644 index 0000000000000000000000000000000000000000..b717fcf1e4b17024d1fb0c9eee5dce048859b9d7 GIT binary patch literal 982 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K0 zu|zgO9R<7QBeUxR7{%VL|I^dc<3Hp7Kj!SjEA@xIb84LX?)mId{Q|B9b^or{#Q)>0 zoAguvUsoe*(&=c)HuW_LV#2$u7ihK2H{hsm+R1!1z-`0UHAW7vPQG7Xukh~2_i)xH j9{-ltZ?Kd-Tr9!BkTXxSZ=*+eGsw@Lu6{1-oD!M<&?1>K literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/redlight.png b/mods/mmmPowersuits/textures/items/redlight.png new file mode 100644 index 0000000000000000000000000000000000000000..d85bc356b229c9b607fc8d07012df8456a12b23b GIT binary patch literal 964 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KB3*Y`H`BOOOT#mst)kN0XHJ@+(m=p1#nf=6K=_<)4 R^KOt2Jzf1=);T3K0RZ5MkK6zN literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/redphaser.png b/mods/mmmPowersuits/textures/items/redphaser.png new file mode 100644 index 0000000000000000000000000000000000000000..7949abd7e4db7ebd488b5569b56a056eb9d22d95 GIT binary patch literal 993 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KF)Tdw0S;{6y{dU&^_V(5@eEnw`;)VR?pKTLsPI5P2&AG~4QSmOD zys?vUS4mx5v#r728rJ_U-3`Sj9=3#Byk&D@3#Vyw1cRQbP`on7o=zc`-Gw*v{`^~1 tUQ>0Tf9bDM-etxq7lQsOsBx74xz6OAZdh6EVe1LB|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KB|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K|0)ILZBlcN_~_hlNYJ`!>sIN#uWa|=*Eo5rU#vZ(;4$mzi#^l+spja^d8&B#`EIee86o<%{H*ZIeU~%O z9zNQ9?qt~)!|qbCMa^Rb Og`lUapUXO@geCx%vckIn literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/servo.png b/mods/mmmPowersuits/textures/items/servo.png new file mode 100644 index 0000000000000000000000000000000000000000..23d83065564eb0ee464d1d296edad430a559351f GIT binary patch literal 944 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K?L0jHAJ+X`cdGus{i=m;cq|wgUd|A*Hd2v|0r|$$)z4*}Q$iB}{Bwa8 literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/shockabsorber.png b/mods/mmmPowersuits/textures/items/shockabsorber.png new file mode 100644 index 0000000000000000000000000000000000000000..848a3fa7733ddadfab994b9e7fa03054dbab4da1 GIT binary patch literal 985 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K|Ba)6x1_DGQcw}=YI&umwnBLo`|WbO`MiH*x2W%bpte!!sNCsw8cN^hEbve} z@$yUT#b=IrEHPQ`Q)jFYbei3<=hMl&gMu%)_#ZsGs8uOGWyVjVxs|RfdM)=(I-KxQ oQeaobnODh|;&p%B&vyUFy84Q8dS&_|7m&9-UHx3vIVCg!0JH_1F#rGn literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/solenoid.png b/mods/mmmPowersuits/textures/items/solenoid.png new file mode 100644 index 0000000000000000000000000000000000000000..20d25423c0ddc2b787615d42fb1882e2d406fbb7 GIT binary patch literal 931 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K456{1UzRtKo!r@B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K_hi978H@mG&8OH5l-?)^{~!ubkW* z{^8&84_xQGo@<#b^S$M0FyX`Jm-U(-G*>A(mUp#(s!(z(kLUX&fW-6@~Ad`pnHfbb?>y(ed1>J V3YuGA{)q$m($m$?Wt~$(69CDQm74$n literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/sprintassist.png b/mods/mmmPowersuits/textures/items/sprintassist.png new file mode 100644 index 0000000000000000000000000000000000000000..14364aab9da9b2053ebfe10a057246716f777636 GIT binary patch literal 995 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KuANhw~x zx^RW8_oW-Z(+}_7GG)2TyhgQ6rz*~UfB%uyZ<2P)ft6=LS(w4o)z4*}Q$iB}n_i@$ literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/swimboost.png b/mods/mmmPowersuits/textures/items/swimboost.png new file mode 100644 index 0000000000000000000000000000000000000000..221511d48479bc012633c65aa46e8279e4086eaa GIT binary patch literal 993 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KOLG{WEXrf@0rqO-_MIBqZ+bYMI$mA zYM=Sm$8VFdFrK+T?@edVzJtYI?|fwL`z!ba7ZK}YFWwsl;;>>oQdSEf5lHiNwH>FVdQ&MBb@0M6*5;s5{u literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/thermometer.png b/mods/mmmPowersuits/textures/items/thermometer.png new file mode 100644 index 0000000000000000000000000000000000000000..d80e3daed789175243f6d91362a925d67ffd2721 GIT binary patch literal 934 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K^978H@B_}vA_jp{X7dXf?^+Njp z%887T55Cv0h*Dd@pnZmC#)142#%t$aXx%fKki)i$Vevm^{ie^USe literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/toolaxe.png b/mods/mmmPowersuits/textures/items/toolaxe.png new file mode 100644 index 0000000000000000000000000000000000000000..e5062f655dad161a268c6c2a874cf62484e4cf97 GIT binary patch literal 250 zcmV^w7uf;SN98qg^ zU3rOBoDJ0&@|?|gZI)6@WA5-%hudR}Y$l=~N`x??(*335TQv+$OKq0J0!rc2z+menbdVYVZms#X@!t91)9Qc`@$@GHXlH<2gqJNugXPWxJZ*tt0JvVR zoc(-DHLA$#k{aL-jPbWYcr0u*J+j4M_guf}1NvzlG3hNwWB>pF07*qoM6N<$f@t<^ A)c^nh literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/toolfist.png b/mods/mmmPowersuits/textures/items/toolfist.png new file mode 100644 index 0000000000000000000000000000000000000000..0672241916ce27b715c8a8df2d5bbc91ebc6a252 GIT binary patch literal 945 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K8QP3dmdKI;Vst0R2pbjQ{`u literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/toolfisty.png b/mods/mmmPowersuits/textures/items/toolfisty.png new file mode 100644 index 0000000000000000000000000000000000000000..1a3ba270ffee9d5905f674a7d5b8ad74e08d2544 GIT binary patch literal 234 zcmVu!I)su&fju7Z$!t;`#R&-k zJPiiUwbrkI(?qW`ATlC;0-QGRkjD*tFr<|7KY#-O-XvU~4J`EZ-gf|skQq`+x43S7 zIp_6JO;&8J-PtuPqBB_l?r@uGvH|Y1o`4CmCK&i?!Dc%EO_+3Dm&!{=rUCxvlIWh8 k#^&%1+?Oa%j~6}Q8_9g+$0O%QIRF3v07*qoM6N<$f|*WT?*IS* literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/toolpick.png b/mods/mmmPowersuits/textures/items/toolpick.png new file mode 100644 index 0000000000000000000000000000000000000000..a368847ce134ab2e32df88e558786ee1ebf59247 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`t36#DLn>~~ogBz_Sb?K$Z@T`1 z=N|;r?DW0My7pFc^KbgAt7dY=F-27|fGfT+i$Ng5)33hTao^?;e!F=U_58;fFE+bd z)U*}LGyGwC(xKHLtkQ6mdjjk7DM1$d*gCG6GQ`N9acYoQ%q_5H{eM=4rA{|@Ww%sL zT(j0xI7x3}*NzD}YejGUG+>OmP`%$qpK;UODVHoR9rk;yGyOzojLqA`N^v*8bCQ>` b>J!-oq6>Cvbf;YhI-9}M)z4*}Q$iB}31w8X literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/toolpinch.png b/mods/mmmPowersuits/textures/items/toolpinch.png new file mode 100644 index 0000000000000000000000000000000000000000..ee4390c02a6c94af13ef2d1ac78b6c08ddec28ae GIT binary patch literal 252 zcmVhbaA(U{M%+oUWFZx-M!)zZFlTK)keeIlTgGS!Ut7$c>27mRk1y!X?RTz>;)h9n7jOk5QJ0000B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KuLJ+C6CRUh!?u-;)MQ iMxR-KA27T;z{0TTnk;8m+ly9^k3C)eT-G@yGywq4yp{a` literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/toolshears.png b/mods/mmmPowersuits/textures/items/toolshears.png new file mode 100644 index 0000000000000000000000000000000000000000..5db54941983a7ceb24e987c250a5ecf488a703dd GIT binary patch literal 280 zcmV+z0q6dSP)Ox zJ0Fe%wxh_`LHh_b5nR+WAxBUcW6%<2*1(CWt{mknlTwlstu>K~;dR~s%>Xhdw}_30 zweOm4APE435SX2Fe7Hvez%)$+_#VfxX}c@XLwcpud?o;~t}B9*e+q!zWm&LMDb*d^ er6c_Ndw&3G>lUlt>vE?60000B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9Kp znemMOlOHetWB%^F0;8J1$L7D5zxh{)ZD2U=e{#MI&wl}?@|*IT?}yg@mrq<_aNYdr z{5Q)TlynkGPdS|VC%llA>7O#^9~Ng7#&7Zt6)){)iLtTWVfydCu#(T|Z~6f)hOQLF Uvts{VSb;q0>FVdQ&MBb@0085U>Hq)$ literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/toolshovels.png b/mods/mmmPowersuits/textures/items/toolshovels.png new file mode 100644 index 0000000000000000000000000000000000000000..48e44890deacbbed35bc602effe1a9cb225998c0 GIT binary patch literal 264 zcmV+j0r&oiP)`ite_%p80417}5TqZCgpO zEDM}-A?o*aU8Ab1kVoHP4git&9@biz4?>ihy>T3i01U$r2W3cV4(omqu&!%dK25r2 zpUMFECFuJ;nj|(&1KmFb5R!^!ZQ^;I0pd!wZOdR?*D-$vAViGR-4-H%kZGENQu92| zCIjemAYdQN0DArsaC|A<|1}`J(!T*p=2L*)N&+x%0Q$!=>WZEL-slS>5i`q O0000B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KNU`q!>i)%WHwM_5q-hE_{@KW&47vB2uTj-P=2eUOiIYtNfJg$7Y zxcP+8>=?mYX7$V7t$NBN5Fp5yB~#7MbU6Emy41^m<(bM4vkHwp>)Td$KKbMP*+Bkl j@TxZrervkE8~Gg--?(1WB)XU9AIQ(1u6{1-oD!M<`nj1g literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/waterelectrolyzer.png b/mods/mmmPowersuits/textures/items/waterelectrolyzer.png new file mode 100644 index 0000000000000000000000000000000000000000..68e57e1eb6d90902a542bfad286ec06e6e390b84 GIT binary patch literal 954 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9K+0OjAO3RXueDdEhq|Hdyhjx_zhlhLstX^8Tq@@e@|UNppUXO@ GgeCyWUWz;b literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/items/wiring.png b/mods/mmmPowersuits/textures/items/wiring.png new file mode 100644 index 0000000000000000000000000000000000000000..030e94aecf6e10715835a6b202aefa7d307fd724 GIT binary patch literal 998 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl4m>B|mLR^7d329koTQ(L28!J`; zI{_wj4Lx0bV^)JGVG}1K@eH0SR*i5w)vze@;*2^T@kARgM`ur0&w$97w3y^v_M{mC zxw}G@ms|Bm*dJkIopGLj(TB{_4N>=g#l8OCYrwwEiEDEO?+FFo{|pSrvRKX)uq}0a zyy0*8p9KKVlrQhIWN zB6qX#mw(@1KG6Df?=<G!ltMqfm)LA)Jn8D3%sH<4d_KIq#=ijS6bj&SxtxGRA|c1( zBk`{NejmMFPlvnRE~e8d4u^wuh((wNxZQ5NL$=#3hQpzL#CE$a54+p#q(jkY6wKHF zFCuQYo3xC*S8Ze$2<80!en%)2vIAJ0h{a+8;Y)KTUXvP)MmU{LvK9ygBHRK$EfpK-ljk3BS1u~;A$i;1Sw zDfaulKv}t5PD3;xnM`WHdcBrVqtOuc`+Wg!HXB*bWHNR@B9Xx5a=~~!#(X}1K53T~A!orl>U6Bdw_ T7S2bN00000NkvXXu0mjfIN8_r literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/sebkicons.png_out/0,2.png b/mods/mmmPowersuits/textures/sebkicons.png_out/0,2.png new file mode 100644 index 0000000000000000000000000000000000000000..149ecdbe866e669a32b7180c61a34af5345a023b GIT binary patch literal 478 zcmV<40U`d0P)X*18jXs^ z<1x0|tw34nbXr3+ARdovz;d~iP_2$(yIK*^1#bh!; zv)RP^+n0#r!C-*-d@ep#B9Zt7ut>c9$dS1#gP$MYB91x7HLur;yVv*^K%GJXTrQUr zU|E(Ni;u*+b~+uj+ie|gwOSaBM%e9k(jgXM8sK)j@d#P3*XZ?n`VkwAhCJ+Mvyl#k z!(lLE1Kf$YTrScw_FlD-T_BY6*XtF5K)?=QaUv3l2!t=qop?>E-|ypaILMmM=aaDG z5fvm93LzK_+WyMyKZB-eO89m?<0(KvD8Jt?MoR6fc2=bUxm?a6n$_pb@iPyzKXd|- UN%fd1Gz`N~J{JgI`(1p$ryl0>c{H0%d|lW@DwV=u zFi<6`ARdpS(P)svUnv%g7>~!Bf=Z==Xf%p$w+lfKaP)ix{*{MiVS#mF#p&`C=ZkaX zaygXCWlSa$bUK~2pjN9P91deR9Kvii!@9IWd=nw9B*-fn%DX}-l}a=a5%l~0wICLY zAs7sz-EKpYB-A#qYHusk=@gMjgm!@h zR0X61Hk*z9Bgtl$pin5l<#HjD$knc;JBw-hx;w=xgK=0_j4!Bx+22 zh%Y+}{>4O-A`4%!%j|Dv=bIG)5dB9YrBcbo7D)U3Iem{44vWPi+U+*>0q2y-WH1_y z1c(4gCX;BjT6FlU%H=Yq)9EpwR;wW%kE7r3!(cFAEtO)UP~csq!d9=x_VyNAlL>`F z0o7_1v)K&2Uhe>CG#ZFTqZp6JFtNa`R*Mg_8J~A|*jX&t+3ncbY^YQ!JP`qg!{Gst zNF)#rhtchJ;dDCjAQt0EBEiem72aertZr_wW|h?Ib!4+yEEWso^Z5h7&N2|0D)9My zcw~TQcKP-C8Y{URYmEjQR@q=M;1`$6CERZJ0T78qK$=V@@caF^zq~xD`FxI8EXG}+ zgaUvZuv)GBja1D!K&e!M%jH5Ym*aK{0J28U-bk|$37>!1RLLr{)XcDOcvhc4- yRIAmz(LY9+dSGM2^4DL`FiSli&oSUXzwryzYPyRd3(~>>00002zHchLYXij2ZE$A6KFg2*W_6%7n?zySqE9B@D-XF*&m=tXo1LAz+zpl0b^ zym=1vi>0;bz`Hny^FQzRfA4oV066~odNG6lihyZG} z+6>_Jdf{+5P%4$6)9J9bdx!PC2W;#=VMqD`fuaxj=>VBb2BA<0-EJ3=NMr`kXf%{e zDlnVPQ^5Tc@QBTWXY4Vrkeu|PP!Cb9R_TYmUJnL?VFqwIogiv9o3L0cSlPZ^s7|K? zx7$rqAcib}B%o5M=s%KbmI31NIP`iw!r?HDlLe4y#9}d>1)I&b6p+j1D8TRcQ!^G2 z2m~M!iD0!_K^n?ky;&&IWUW?9XNH)u0Hsn1KA#Vh$pix9u2mPRSS&&&lfiDcQ?t2A zBo&Yd|C&UBKtLP)W0Xk`)N1vgZ$T&&!e}(k1OD?GKLHMHzBj{lPS*ec002ovPDHLk FV1k~H;;aAw literal 0 HcmV?d00001 diff --git a/mods/mmmPowersuits/textures/sebkicons.png_out/0,6.png b/mods/mmmPowersuits/textures/sebkicons.png_out/0,6.png new file mode 100644 index 0000000000000000000000000000000000000000..e6b6be4ea56ab84fa07141446e06458445bc0f6c GIT binary patch literal 441 zcmV;q0Y?6bP)$C)zraBdK@h<|(9Ka16cvm^Q7}^-+zdpty7-A9)Io49bS+&wmJWpuZK1VY z+OhtQQ}4C!VYH@&22Qwn=bn>X?uie8Z|lN0w(FnHHV>qw8zCGHV>B9JGMRwt(__!yz|Py~~rvHG;0|Ob9W(HTWDv;w^!8yDd!! z)ax2yeaI%%L})Y`NWG`fTD4$)nux!~(QGy)Prans+XBs7tJQc;Yh^)u(ioxh5CS&= z7>2<;dt2BxD3{BKEn}#>RHT95@k6~;kgeGB5={Nb*_S_MbHNn zv<`CJ|2TPXzL%4k3l|6OymRiEx$mA)04S5d@ldH$P^;BI^~s@vOZ^*E(^;d@ko=GV zHS4+#!!XcnHo58Me3LDJ}*rOeeKT(G$VmT zgiI!b1MLmA*+seZf!(bqWV2bx3%xX;o2JX6c@v2Qd}|M|PP_29?-<_YGc35TkW407 zLt5%_7#K%OOvYj{Y;Qc`IQ1e8rd%b=&vpFilhDfObwM9``LH5D5IAgLphXl!JD=jbJbczu!MT2cz~Zf;2V8G}gJOU~eGvBbUNE&m z|I!zjVb&9HpJ|#(kx$yzTg#@}2(Exx_ILt*_3p8Y#dU#owYF%ZD`2)EAQa5X8CKOw zcy1=lXxs8}2oqnC}YfLTwVL&D;xW)-+YIz7s#5ifYX>VE^-`P<~R&<9A8h(dawH~8D@1mM!>zZ z*f^VD`1&IZUJ9W<6zhEITddJ0000GUhe^aN~2;4qufMO-&QK+R%7*VRg$A6-{wkmcnl0oIP=mKQXV+iooE8C`&2 Y34)qdyNqK67F+l3#8d*S>J=iYM#Al5_6rc^5N zw+JDA6-biA?@$zlcsx!t8f_J*Yx2-WxY`ewx3YY`lXqu3S)4HNEMnkM*udlPCS+MA z6bjX85j2u(vj?daJ=EsCR2TeI?*ysdJx#G#q);f3N~H({0`y6Jn8r-B2pUvxxXBz9 zj5`GrF2U!85t7LyR;#s+>xGNq*TW2i2AYDe7rR03MvW`e2Y5RvxIH4ce@cV-r5XDx zJMJYnzBfL~~Ta}_mKvKFR}2qNEG(4}?gF6hw9dh}U6#+(u3oDuDDZTma;An)RN zcmuf;8m=AF@F3bxFc`#Qv0$^=&`;~>nCn36TO(Mxw3ClhJ6K9>yF6ttRx(TB0x7$LBMM$!SLOh*M+J>9-w*wD{b2#two}c#!Ae*6XP$(4mTSR1| zAQ%ktJ2Xur8jTVThwBA;8$Y%crhDM#c9yQSP@HICe$2$XQ4_C1CSHe(q*5sYfk2Hq z!Afv-<|x(t397SRDsw|rp7^Oey+A&nCzs2SNF?z2d|a|x2{kuUCs?8Kz)gBkxabnb zjtJl8Mu^AbI2?`|3j+gua=S^iwXF$$+%QARjNUKbJIsf1;qi#@{H%fb?ruKXY!v(Z z`RwsfDwQZ_GTgOT)&wul2^G!BcWpmQ+5yUU4yi>huBt5Ajt<^-by4i=V{v$xuj#ZN zNKVbK3TDp;4;6Y}zGY|fq%ivH2$9xSt|%sy?7G>^w90&61$&yB8sEWU%EtT97BZ&| z+&*RCMYspQ-;dpH$LVx3)!vS#B!lY(%Tv4gGP#R|#17tEw(>04$)od~6cjF(i)1oM zT5UfPiPW-tjYc-q!OW20-7DC)341I;Z-=nYDjeJ?9PbrkvDj)IWV6|Suf#tJ^fRtU jfBQ!B4F#M2jsL?>c!+FiNATdkQ7^BC6H`cZ-+mmJ0%#vP%_ItX`?(+Uaqo-|%R$$5a=9FZLV;v5SwDT1 zgjv!DlOdtMTTnL%J3EA~jlyof&=U|2cM0iq`ez>$i^YHM#6Jq$8h@q!_AS<13YPsF a|A+7PMr*@K&t7x@0000 drainAmount) { - item.onUse(drainAmount, stack); + // item.onUse(drainAmount, stack); break; } else { drainAmount -= joules; - item.onUse(joules, stack); + // item.onUse(joules, stack); } } } @@ -65,11 +65,11 @@ public class ElectricItemUtils { IItemElectric item = (IItemElectric) (stack.getItem()); double missingjoules = item.getMaxJoules(stack) - item.getJoules(stack); if (missingjoules > joulesToGive) { - item.onUse(-joulesToGive, stack); + // item.onUse(-joulesToGive, stack); break; } else { joulesToGive -= missingjoules; - item.onUse(-missingjoules, stack); + // item.onUse(-missingjoules, stack); } } } diff --git a/src/minecraft/net/machinemuse/general/MuseRenderer.java b/src/minecraft/net/machinemuse/general/MuseRenderer.java index f3b7657..96c7cb2 100644 --- a/src/minecraft/net/machinemuse/general/MuseRenderer.java +++ b/src/minecraft/net/machinemuse/general/MuseRenderer.java @@ -1,8 +1,6 @@ package net.machinemuse.general; import java.nio.DoubleBuffer; -import java.nio.FloatBuffer; -import java.nio.IntBuffer; import java.util.ArrayList; import java.util.List; @@ -23,7 +21,6 @@ import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.item.ItemStack; import net.minecraft.util.Vec3; -import net.minecraftforge.client.ForgeHooksClient; import org.lwjgl.BufferUtils; import org.lwjgl.opengl.GL11; @@ -79,8 +76,7 @@ public abstract class MuseRenderer { } /** - * Creates a list of points linearly interpolated between points a and b - * noninclusive. + * Creates a list of points linearly interpolated between points a and b noninclusive. * * @return A list of num points */ @@ -129,8 +125,7 @@ public abstract class MuseRenderer { * @param endangle * End angle in radians * @param radius - * Radius of the circle (used in calculating number of segments - * to draw as well as size of the arc) + * Radius of the circle (used in calculating number of segments to draw as well as size of the arc) * @param xoffset * Convenience parameter, added to every vertex * @param yoffset @@ -225,8 +220,7 @@ public abstract class MuseRenderer { } /** - * Call before doing any pure geometry (ie. with colours rather than - * textures). + * Call before doing any pure geometry (ie. with colours rather than textures). */ public static void texturelessOn() { GL11.glDisable(GL11.GL_TEXTURE_2D); @@ -234,8 +228,7 @@ public abstract class MuseRenderer { } /** - * Call after doing pure geometry (ie. with colours) to go back to the - * texture mode (default). + * Call after doing pure geometry (ie. with colours) to go back to the texture mode (default). */ public static void texturelessOff() { GL11.glEnable(GL11.GL_TEXTURE_2D); @@ -266,8 +259,7 @@ public abstract class MuseRenderer { } /** - * Makes the appropriate openGL calls and draws an item and overlay using - * the default icon + * Makes the appropriate openGL calls and draws an item and overlay using the default icon */ public static void drawItemAt(double x, double y, ItemStack item) { GL11.glDisable(GL11.GL_DEPTH_TEST); @@ -301,21 +293,20 @@ public abstract class MuseRenderer { texturelessOff(); blendingOn(); - ForgeHooksClient.bindTexture(icon.getTexturefile(), 0); - if (colour != null) { colour.doGL(); } Tessellator tess = Tessellator.instance; tess.startDrawingQuads(); - float r = 0.0625f; - float u = (icon.getIconIndex() % 16) * r; - float v = (icon.getIconIndex() / 16) * r; - tess.addVertexWithUV(x, y, 0, u, v); - tess.addVertexWithUV(x, y + 16, 0, u, v + r); - tess.addVertexWithUV(x + 16, y + 16, 0, u + r, v + r); - tess.addVertexWithUV(x + 16, y, 0, u + r, v); + float u1 = icon.getIconRegistration().getU1(); + float v1 = icon.getIconRegistration().getV1(); + float u2 = icon.getIconRegistration().getU2(); + float v2 = icon.getIconRegistration().getV2(); + tess.addVertexWithUV(x, y, 0, u1, v1); + tess.addVertexWithUV(x, y + 16, 0, u1, v2); + tess.addVertexWithUV(x + 16, y + 16, 0, u2, v2); + tess.addVertexWithUV(x + 16, y, 0, u2, v1); tess.draw(); MuseRenderer.blendingOff(); @@ -345,21 +336,25 @@ public abstract class MuseRenderer { texturelessOff(); blendingOn(); - ForgeHooksClient.bindTexture(icon.getTexturefile(), 0); - if (colour != null) { colour.doGL(); } Tessellator tess = Tessellator.instance; tess.startDrawingQuads(); - double r = 0.0625; - double u = (icon.getIconIndex() % 16) * r; - double v = (icon.getIconIndex() / 16) * r; - tess.addVertexWithUV(x + left, y + top, 0, u + r * r * left, v + r * r * top); - tess.addVertexWithUV(x + left, y + bottom, 0, u + r * r * left, v + r * r * bottom); - tess.addVertexWithUV(x + right, y + bottom, 0, u + r * r * right, v + r * r * bottom); - tess.addVertexWithUV(x + right, y + top, 0, u + r * r * right, v + r * r * top); + float u1 = icon.getIconRegistration().getU1(); + float v1 = icon.getIconRegistration().getV1(); + float u2 = icon.getIconRegistration().getU2(); + float v2 = icon.getIconRegistration().getV2(); + double xoffset1 = left * (u2 - u1) / 16.0f; + double yoffset1 = top * (v2 - v1) / 16.0f; + double xoffset2 = right * (u2 - u1) / 16.0f; + double yoffset2 = bottom * (v2 - v1) / 16.0f; + + tess.addVertexWithUV(x + left, y + top, 0, u1 + xoffset1, v1 + yoffset1); + tess.addVertexWithUV(x + left, y + bottom, 0, u1 + xoffset1, v2 + yoffset2); + tess.addVertexWithUV(x + right, y + bottom, 0, u1 + xoffset2, v2 + yoffset2); + tess.addVertexWithUV(x + right, y + top, 0, u1 + xoffset2, v1 + yoffset1); tess.draw(); MuseRenderer.blendingOff(); @@ -371,8 +366,7 @@ public abstract class MuseRenderer { } /** - * Switches to relative coordinate frame (where -1,-1 is top left of the - * working area, and 1,1 is the bottom right) + * Switches to relative coordinate frame (where -1,-1 is top left of the working area, and 1,1 is the bottom right) */ public static void relativeCoords(MuseGui gui) { GL11.glPushMatrix(); @@ -381,8 +375,7 @@ public abstract class MuseRenderer { } /** - * Does the necessary openGL calls and calls the Minecraft font renderer to - * draw a string at the specified coords + * Does the necessary openGL calls and calls the Minecraft font renderer to draw a string at the specified coords */ public static void drawString(String s, double x, double y) { RenderHelper.disableStandardItemLighting(); @@ -390,8 +383,7 @@ public abstract class MuseRenderer { } /** - * Does the necessary openGL calls and calls the Minecraft font renderer to - * draw a string such that the xcoord is halfway through the string + * Does the necessary openGL calls and calls the Minecraft font renderer to draw a string such that the xcoord is halfway through the string */ public static void drawCenteredString(String s, double x, double y) { double xradius = getFontRenderer().getStringWidth(s) / 2; @@ -463,47 +455,6 @@ public abstract class MuseRenderer { arraysOff(); } - private static void drawTriangles3DT(float[] v, float[] textures2, int[] i) { - arraysOnT(); - texturelessOff(); - - // float subdivisions = 5f; - // float radius = 0.5f; - - // GL11.glPushMatrix(); - // GL11.glTranslatef(-radius, -radius, 0); - // for (int i1 = 0; i1 <= subdivisions * 2; i1++) { - // for (int i2 = 0; i2 <= subdivisions * 2; i2++) { - FloatBuffer vertices = BufferUtils.createFloatBuffer(v.length); - vertices.put(v); - vertices.flip(); - - FloatBuffer textures = BufferUtils.createFloatBuffer(textures2.length); - textures.put(textures2); - textures.flip(); - - IntBuffer indices = BufferUtils.createIntBuffer(i.length); - indices.put(i); - indices.flip(); - - // GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL); - - GL11.glVertexPointer(3, 0, vertices); - GL11.glTexCoordPointer(2, 0, textures); - - GL11.glDrawElements(GL11.GL_TRIANGLES, indices); - - // GL11.glTranslatef(0, radius / subdivisions, 0); - // } - // GL11.glTranslatef(radius / subdivisions, -radius * 2, 0); - // } - // GL11.glPopMatrix(); - - texturelessOff(); - arraysOff(); - - } - public static void drawStringsJustified(List words, double x1, double x2, double y) { int totalwidth = 0; for (String word : words) { diff --git a/src/minecraft/net/machinemuse/general/gui/MuseGui.java b/src/minecraft/net/machinemuse/general/gui/MuseGui.java index a0e2944..37c7768 100644 --- a/src/minecraft/net/machinemuse/general/gui/MuseGui.java +++ b/src/minecraft/net/machinemuse/general/gui/MuseGui.java @@ -44,7 +44,7 @@ public class MuseGui extends GuiScreen { public void initGui() { super.initGui(); this.frames.clear(); - this.controlList.clear(); + //this.controlList.clear(); Keyboard.enableRepeatEvents(true); creationTime = System.currentTimeMillis(); diff --git a/src/minecraft/net/machinemuse/general/gui/MuseIcon.java b/src/minecraft/net/machinemuse/general/gui/MuseIcon.java index 67461e7..4e8ebb4 100644 --- a/src/minecraft/net/machinemuse/general/gui/MuseIcon.java +++ b/src/minecraft/net/machinemuse/general/gui/MuseIcon.java @@ -1,132 +1,127 @@ package net.machinemuse.general.gui; -import net.machinemuse.powersuits.common.Config; +import net.minecraft.client.renderer.texture.IconRegister; +import net.minecraft.util.Icon; /** - * MuseIcon is just a helper class to make it more convenient to have multiple - * sprite sheets and to keep all the icon indices in one place. + * MuseIcon is just a helper class to make it more convenient to have multiple sprite sheets and to keep all the icon indices in one place. * * @author MachineMuse */ public class MuseIcon { - public static final String SEBK_ICON_PATH = Config.SEBK_ICON_PATH; - public static final String WC_ICON_PATH = Config.WC_ICON_PATH; - public static final String MUSE_ICON_PATH = Config.MUSE_ICON_PATH; + public static final String ICON_PREFIX = "mmmPowersuits:"; // Placeholder icons - public static final MuseIcon ORB_1_GREEN = new MuseIcon(SEBK_ICON_PATH, 0); - public static final MuseIcon ORB_1_RED = new MuseIcon(SEBK_ICON_PATH, 1); - public static final MuseIcon ORB_1_BLUE = new MuseIcon(SEBK_ICON_PATH, 2); - public static final MuseIcon PLATE_1_GREEN = new MuseIcon(SEBK_ICON_PATH, 3); - public static final MuseIcon PLATE_1_RED = new MuseIcon(SEBK_ICON_PATH, 4); - public static final MuseIcon PLATE_1_BLUE = new MuseIcon(SEBK_ICON_PATH, 5); - public static final MuseIcon NEXUS_1_RED = new MuseIcon(SEBK_ICON_PATH, 6); - public static final MuseIcon NEXUS_1_GREEN = new MuseIcon(SEBK_ICON_PATH, 7); - public static final MuseIcon NEXUS_1_BLUE = new MuseIcon(SEBK_ICON_PATH, 8); - public static final MuseIcon PLATE_2_GREEN = new MuseIcon(SEBK_ICON_PATH, 16); - public static final MuseIcon PLATE_2_BLUE = new MuseIcon(SEBK_ICON_PATH, 17); - public static final MuseIcon PLATE_2_RED = new MuseIcon(SEBK_ICON_PATH, 18); - public static final MuseIcon INDICATOR_1_GREEN = new MuseIcon(SEBK_ICON_PATH, 19); - public static final MuseIcon INDICATOR_1_RED = new MuseIcon(SEBK_ICON_PATH, 20); - public static final MuseIcon INDICATOR_1_BLUE = new MuseIcon(SEBK_ICON_PATH, 21); + public static final MuseIcon ORB_1_GREEN = new MuseIcon("greendrone"); + public static final MuseIcon ORB_1_RED = new MuseIcon("reddrone"); + public static final MuseIcon ORB_1_BLUE = new MuseIcon("bluedrone"); + public static final MuseIcon PLATE_1_GREEN = new MuseIcon("greenlight"); + public static final MuseIcon PLATE_1_RED = new MuseIcon("redlight"); + public static final MuseIcon PLATE_1_BLUE = new MuseIcon("bluelight"); + public static final MuseIcon NEXUS_1_RED = new MuseIcon("redstar"); + public static final MuseIcon NEXUS_1_GREEN = new MuseIcon("greenstar"); + public static final MuseIcon NEXUS_1_BLUE = new MuseIcon("bluestar"); + public static final MuseIcon PLATE_2_GREEN = new MuseIcon("greenplate"); + public static final MuseIcon PLATE_2_BLUE = new MuseIcon("blueplate"); + public static final MuseIcon PLATE_2_RED = new MuseIcon("redplate"); + public static final MuseIcon INDICATOR_1_GREEN = new MuseIcon("greenphaser"); + public static final MuseIcon INDICATOR_1_RED = new MuseIcon("redphaser"); + public static final MuseIcon INDICATOR_1_BLUE = new MuseIcon("bluephaser"); // Item icons - public static final MuseIcon ARMOR_HEAD = new MuseIcon(SEBK_ICON_PATH, 15); - public static final MuseIcon ARMOR_TORSO = new MuseIcon(SEBK_ICON_PATH, 31); - public static final MuseIcon ARMOR_LEGS = new MuseIcon(SEBK_ICON_PATH, 47); - public static final MuseIcon ARMOR_FEET = new MuseIcon(SEBK_ICON_PATH, 63); - public static final MuseIcon TOOL_AXE = new MuseIcon(SEBK_ICON_PATH, 9); - public static final MuseIcon TOOL_PICK = new MuseIcon(SEBK_ICON_PATH, 10); - public static final MuseIcon TOOL_SHOVEL = new MuseIcon(SEBK_ICON_PATH, 11); - public static final MuseIcon TOOL_SHEARS = new MuseIcon(SEBK_ICON_PATH, 12); - public static final MuseIcon TOOL_FIST = new MuseIcon(SEBK_ICON_PATH, 13); - public static final MuseIcon TOOL_PINCH = new MuseIcon(SEBK_ICON_PATH, 14); + public static final MuseIcon ARMOR_HEAD = new MuseIcon("armorhead"); + public static final MuseIcon ARMOR_TORSO = new MuseIcon("armorhead"); + public static final MuseIcon ARMOR_LEGS = new MuseIcon("armorhead"); + public static final MuseIcon ARMOR_FEET = new MuseIcon("armorhead"); + public static final MuseIcon TOOL_AXE = new MuseIcon("toolaxe"); + public static final MuseIcon TOOL_PICK = new MuseIcon("toolaxe"); + public static final MuseIcon TOOL_SHOVEL = new MuseIcon("toolaxe"); + public static final MuseIcon TOOL_SHEARS = new MuseIcon("toolaxe"); + public static final MuseIcon TOOL_FIST = new MuseIcon("toolaxe"); + public static final MuseIcon TOOL_PINCH = new MuseIcon("toolaxe"); // Module icons - public static final MuseIcon JETBOOTS = new MuseIcon(WC_ICON_PATH, 0); - public static final MuseIcon JETPACK = new MuseIcon(WC_ICON_PATH, 1); - public static final MuseIcon GLIDER = new MuseIcon(WC_ICON_PATH, 2); - public static final MuseIcon GRAVITY_ENGINE = new MuseIcon(WC_ICON_PATH, 3); - public static final MuseIcon SPRINT_ASSIST = new MuseIcon(WC_ICON_PATH, 4); - public static final MuseIcon JUMP_ASSIST = new MuseIcon(WC_ICON_PATH, 5); - public static final MuseIcon ENERGY_SHIELD = new MuseIcon(WC_ICON_PATH, 6); - public static final MuseIcon ITEM_IRON_PLATING = new MuseIcon(WC_ICON_PATH, 7); - public static final MuseIcon ITEM_DIAMOND_PLATING = new MuseIcon(WC_ICON_PATH, 8); - public static final MuseIcon ITEM_TUNGSTEN_PLATING = new MuseIcon(WC_ICON_PATH, 9); - public static final MuseIcon CLAW_OPEN = new MuseIcon(WC_ICON_PATH, 11); - public static final MuseIcon WEAPON_FIRE = new MuseIcon(WC_ICON_PATH, 12); - public static final MuseIcon HEART = new MuseIcon(WC_ICON_PATH, 13); - public static final MuseIcon FIELD_EMITTER_GREEN = new MuseIcon(WC_ICON_PATH, 14); - public static final MuseIcon FIELD_EMITTER_RED = new MuseIcon(WC_ICON_PATH, 15); - public static final MuseIcon SHOCK_ABSORBER = new MuseIcon(WC_ICON_PATH, 16); - public static final MuseIcon PARACHUTE_MODULE = new MuseIcon(WC_ICON_PATH, 18); - public static final MuseIcon WATER_ELECTROLYZER = new MuseIcon(WC_ICON_PATH, 19); - public static final MuseIcon TRANSPARENT_ARMOR = new MuseIcon(WC_ICON_PATH, 20); - public static final MuseIcon SWIM_BOOST = new MuseIcon(WC_ICON_PATH, 21); - public static final MuseIcon STEP_ASSIST = new MuseIcon(WC_ICON_PATH, 22); - public static final MuseIcon DIAMOND_PICK = new MuseIcon(WC_ICON_PATH, 26); - public static final MuseIcon CLAW_CLOSED = new MuseIcon(WC_ICON_PATH, 27); - public static final MuseIcon WEAPON_ELECTRIC = new MuseIcon(WC_ICON_PATH, 28); - public static final MuseIcon BATTERY1 = new MuseIcon(WC_ICON_PATH, 30); - public static final MuseIcon CIRCUIT = new MuseIcon(WC_ICON_PATH, 31); - public static final MuseIcon WIRING = new MuseIcon(WC_ICON_PATH, 32); - public static final MuseIcon SOLENOID = new MuseIcon(WC_ICON_PATH, 33); - public static final MuseIcon SERVOMOTOR = new MuseIcon(WC_ICON_PATH, 34); - public static final MuseIcon GLIDERWING = new MuseIcon(WC_ICON_PATH, 35); - public static final MuseIcon IONTHRUSTER = new MuseIcon(WC_ICON_PATH, 36); - public static final MuseIcon LVCAPACITOR = new MuseIcon(WC_ICON_PATH, 37); - public static final MuseIcon PARACHUTE = new MuseIcon(WC_ICON_PATH, 38); - public static final MuseIcon AQUA_AFFINITY = new MuseIcon(WC_ICON_PATH, 42); - public static final MuseIcon CLAW_LASER = new MuseIcon(WC_ICON_PATH, 43); - public static final MuseIcon WEAPON_SOUND = new MuseIcon(WC_ICON_PATH, 44); - public static final MuseIcon BATTERY2 = new MuseIcon(WC_ICON_PATH, 46); - public static final MuseIcon LAMP = new MuseIcon(WC_ICON_PATH, 47); - public static final MuseIcon MYOFIBER_PASTE = new MuseIcon(WC_ICON_PATH, 48); - public static final MuseIcon CARBON_MYOFIBER = new MuseIcon(WC_ICON_PATH, 49); - public static final MuseIcon ARTIFICIAL_MUSCLE = new MuseIcon(WC_ICON_PATH, 50); - public static final MuseIcon CRYSTAL_BUBBLE = new MuseIcon(WC_ICON_PATH, 51); - public static final MuseIcon COOLING_SYSTEM = new MuseIcon(WC_ICON_PATH, 52); - public static final MuseIcon MVCAPACITOR = new MuseIcon(WC_ICON_PATH, 53); - public static final MuseIcon SCANNER = new MuseIcon(WC_ICON_PATH, 54); - public static final MuseIcon POWERTOOL = new MuseIcon(WC_ICON_PATH, 59); - public static final MuseIcon WEAPON_GRAVITY = new MuseIcon(WC_ICON_PATH, 60); - public static final MuseIcon BATTERYCRYSTAL = new MuseIcon(WC_ICON_PATH, 62); - public static final MuseIcon FLOATING_CRYSTAL = new MuseIcon(WC_ICON_PATH, 63); - public static final MuseIcon MODULE_IRON_PLATING = new MuseIcon(WC_ICON_PATH, 64); - public static final MuseIcon MODULE_DIAMOND_PLATING = new MuseIcon(WC_ICON_PATH, 65); - public static final MuseIcon MODULE_TUNGSTEN_PLATING = new MuseIcon(WC_ICON_PATH, 66); - public static final MuseIcon FIELD_GENERATOR = new MuseIcon(WC_ICON_PATH, 67); - public static final MuseIcon HVCAPACITOR = new MuseIcon(WC_ICON_PATH, 69); - public static final MuseIcon HOLOGRAM_EMITTER = new MuseIcon(WC_ICON_PATH, 70); - public static final MuseIcon LASER = new MuseIcon(WC_ICON_PATH, 71); - public static final MuseIcon ALIEN = new MuseIcon(WC_ICON_PATH, 78); - public static final MuseIcon NETHERSTAR = new MuseIcon(WC_ICON_PATH, 94); - public static final MuseIcon ARCREACTOR = new MuseIcon(WC_ICON_PATH, 110); - public static final MuseIcon PUNCHY = new MuseIcon(WC_ICON_PATH, 233); + public static final MuseIcon JETBOOTS = new MuseIcon("jetboots"); + public static final MuseIcon JETPACK = new MuseIcon("jetboots"); + public static final MuseIcon GLIDER = new MuseIcon("jetboots"); + public static final MuseIcon GRAVITY_ENGINE = new MuseIcon("jetboots"); + public static final MuseIcon SPRINT_ASSIST = new MuseIcon("jetboots"); + public static final MuseIcon JUMP_ASSIST = new MuseIcon("jetboots"); + public static final MuseIcon ENERGY_SHIELD = new MuseIcon("jetboots"); + public static final MuseIcon ITEM_IRON_PLATING = new MuseIcon("jetboots"); + public static final MuseIcon ITEM_DIAMOND_PLATING = new MuseIcon("jetboots"); + public static final MuseIcon ITEM_TUNGSTEN_PLATING = new MuseIcon("jetboots"); + public static final MuseIcon CLAW_OPEN = new MuseIcon("jetboots"); + public static final MuseIcon WEAPON_FIRE = new MuseIcon("jetboots"); + public static final MuseIcon HEART = new MuseIcon("jetboots"); + public static final MuseIcon FIELD_EMITTER_GREEN = new MuseIcon("jetboots"); + public static final MuseIcon FIELD_EMITTER_RED = new MuseIcon("jetboots"); + public static final MuseIcon SHOCK_ABSORBER = new MuseIcon("jetboots"); + public static final MuseIcon PARACHUTE_MODULE = new MuseIcon("jetboots"); + public static final MuseIcon WATER_ELECTROLYZER = new MuseIcon("jetboots"); + public static final MuseIcon TRANSPARENT_ARMOR = new MuseIcon("jetboots"); + public static final MuseIcon SWIM_BOOST = new MuseIcon("jetboots"); + public static final MuseIcon STEP_ASSIST = new MuseIcon("jetboots"); + public static final MuseIcon DIAMOND_PICK = new MuseIcon("jetboots"); + public static final MuseIcon CLAW_CLOSED = new MuseIcon("jetboots"); + public static final MuseIcon WEAPON_ELECTRIC = new MuseIcon("jetboots"); + public static final MuseIcon BATTERY1 = new MuseIcon("jetboots"); + public static final MuseIcon CIRCUIT = new MuseIcon("jetboots"); + public static final MuseIcon WIRING = new MuseIcon("jetboots"); + public static final MuseIcon SOLENOID = new MuseIcon("jetboots"); + public static final MuseIcon SERVOMOTOR = new MuseIcon("jetboots"); + public static final MuseIcon GLIDERWING = new MuseIcon("jetboots"); + public static final MuseIcon IONTHRUSTER = new MuseIcon("jetboots"); + public static final MuseIcon LVCAPACITOR = new MuseIcon("jetboots"); + public static final MuseIcon PARACHUTE = new MuseIcon("jetboots"); + public static final MuseIcon AQUA_AFFINITY = new MuseIcon("jetboots"); + public static final MuseIcon CLAW_LASER = new MuseIcon("jetboots"); + public static final MuseIcon WEAPON_SOUND = new MuseIcon("jetboots"); + public static final MuseIcon BATTERY2 = new MuseIcon("jetboots"); + public static final MuseIcon LAMP = new MuseIcon("jetboots"); + public static final MuseIcon MYOFIBER_PASTE = new MuseIcon("jetboots"); + public static final MuseIcon CARBON_MYOFIBER = new MuseIcon("jetboots"); + public static final MuseIcon ARTIFICIAL_MUSCLE = new MuseIcon("jetboots"); + public static final MuseIcon CRYSTAL_BUBBLE = new MuseIcon("jetboots"); + public static final MuseIcon COOLING_SYSTEM = new MuseIcon("jetboots"); + public static final MuseIcon MVCAPACITOR = new MuseIcon("jetboots"); + public static final MuseIcon SCANNER = new MuseIcon("jetboots"); + public static final MuseIcon POWERTOOL = new MuseIcon("jetboots"); + public static final MuseIcon WEAPON_GRAVITY = new MuseIcon("jetboots"); + public static final MuseIcon BATTERYCRYSTAL = new MuseIcon("jetboots"); + public static final MuseIcon FLOATING_CRYSTAL = new MuseIcon("jetboots"); + public static final MuseIcon MODULE_IRON_PLATING = new MuseIcon("jetboots"); + public static final MuseIcon MODULE_DIAMOND_PLATING = new MuseIcon("jetboots"); + public static final MuseIcon MODULE_TUNGSTEN_PLATING = new MuseIcon("jetboots"); + public static final MuseIcon FIELD_GENERATOR = new MuseIcon("jetboots"); + public static final MuseIcon HVCAPACITOR = new MuseIcon("jetboots"); + public static final MuseIcon HOLOGRAM_EMITTER = new MuseIcon("jetboots"); + public static final MuseIcon LASER = new MuseIcon("jetboots"); + public static final MuseIcon ALIEN = new MuseIcon("jetboots"); + public static final MuseIcon NETHERSTAR = new MuseIcon("jetboots"); + public static final MuseIcon ARCREACTOR = new MuseIcon("jetboots"); + public static final MuseIcon PUNCHY = new MuseIcon("jetboots"); - String texturefile; - int index; + String texturename; + Icon icon; - public MuseIcon(String texturefile, int index) { + public MuseIcon(String texturename) { super(); - this.texturefile = texturefile; - this.index = index; + this.texturename = texturename; + this.icon = null; } - public String getTexturefile() { - return texturefile; + public String getTexturename() { + return texturename; } - public void setTexturefile(String texturefile) { - this.texturefile = texturefile; + public Icon getIconRegistration() { + return icon; } - public int getIconIndex() { - return index; - } + public void register(IconRegister iconRegister) { + icon = iconRegister.registerIcon(ICON_PREFIX + texturename); - public void setIconIndex(int index) { - this.index = index; } } diff --git a/src/minecraft/net/machinemuse/general/gui/PortableCraftingGui.java b/src/minecraft/net/machinemuse/general/gui/PortableCraftingGui.java index b67279f..bd552d9 100644 --- a/src/minecraft/net/machinemuse/general/gui/PortableCraftingGui.java +++ b/src/minecraft/net/machinemuse/general/gui/PortableCraftingGui.java @@ -1,43 +1,38 @@ package net.machinemuse.general.gui; -import org.lwjgl.opengl.GL11; - import net.machinemuse.powersuits.container.PortableCraftingContainer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.StatCollector; import net.minecraft.world.World; +import org.lwjgl.opengl.GL11; + public class PortableCraftingGui extends GuiContainer { public PortableCraftingGui(EntityPlayer player, World world, int x, int y, int z) { - super(new PortableCraftingContainer(player.inventory, world, x, y, z)); - } + super(new PortableCraftingContainer(player.inventory, world, x, y, z)); + } - /** -* Draw the foreground layer for the GuiContainer (everything in front of -* the items) -*/ - protected void drawGuiContainerForegroundLayer(int par1, int par2) { - this.fontRenderer.drawString(StatCollector.translateToLocal("container.crafting"), 28, 6, 4210752); - this.fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } + /** + * Draw the foreground layer for the GuiContainer (everything in front of the items) + */ + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + this.fontRenderer.drawString(StatCollector.translateToLocal("container.crafting"), 28, 6, 4210752); + this.fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } - /** -* Draw the background layer for the GuiContainer (everything behind the -* items) -*/ - protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + /** + * Draw the background layer for the GuiContainer (everything behind the items) + */ + protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.renderEngine.bindTexture("/gui/crafting.png"); + int centerx = (this.width - this.xSize) / 2; + int var6 = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(centerx, var6, 0, 0, this.xSize, this.ySize); + } - // TODO Variable-ize this - int var4 = this.mc.renderEngine.getTexture("/gui/crafting.png"); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.renderEngine.bindTexture(var4); - int var5 = (this.width - this.xSize) / 2; - int var6 = (this.height - this.ySize) / 2; - this.drawTexturedModalRect(var5, var6, 0, 0, this.xSize, this.ySize); - } - - public void onGuiClosed() { - super.onGuiClosed(); - } + public void onGuiClosed() { + super.onGuiClosed(); + } } diff --git a/src/minecraft/net/machinemuse/powersuits/block/BlockTinkerTable.java b/src/minecraft/net/machinemuse/powersuits/block/BlockTinkerTable.java index d4b541e..8fef388 100644 --- a/src/minecraft/net/machinemuse/powersuits/block/BlockTinkerTable.java +++ b/src/minecraft/net/machinemuse/powersuits/block/BlockTinkerTable.java @@ -1,24 +1,23 @@ package net.machinemuse.powersuits.block; -import java.util.List; - -import net.machinemuse.general.MuseStringUtils; +import net.machinemuse.general.gui.MuseIcon; import net.machinemuse.powersuits.common.Config; import net.machinemuse.powersuits.common.ModularPowersuits; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; /** - * This is the tinkertable block. It doesn't do much except look pretty - * (eventually) and provide a way for the player to access the TinkerTable GUI. + * This is the tinkertable block. It doesn't do much except look pretty (eventually) and provide a way for the player to access the TinkerTable GUI. * * @author MachineMuse * @@ -37,17 +36,15 @@ public class BlockTinkerTable extends Block { public BlockTinkerTable() { // Block constructor call super( - // Block ID + // Block ID Config.getAssignedBlockID(Config.Blocks.TinkerTable), - // Texture index (not used since we have a custom renderer) - Config.Blocks.TinkerTable.textureIndex, // Material (used for various things like whether it can burn, // whether it requires a tool, and whether it can be moved by a // piston Material.iron); // Block's internal/ID name - setBlockName(Config.Blocks.TinkerTable.idName); + // setBlockName(Config.Blocks.TinkerTable.idName); // Block's creative tab setCreativeTab(Config.getCreativeTab()); @@ -83,37 +80,36 @@ public class BlockTinkerTable extends Block { // Register the tile entity, which is only used for rendering at the // moment - GameRegistry.registerTileEntity(TileEntityTinkerTable.class, - Config.Blocks.TinkerTable.idName); + GameRegistry.registerTileEntity(TileEntityTinkerTable.class, Config.Blocks.TinkerTable.idName); // Finally, register the block so that it appears in the game. New // standard requires a name to be passed. GameRegistry.registerBlock(this, Config.Blocks.TinkerTable.idName); } - + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IconRegister iconRegister) { + MuseIcon.PLATE_1_GREEN.register(iconRegister); + this.blockIcon = MuseIcon.PLATE_1_GREEN.getIconRegistration(); + } + /** * Called upon block activation (right click on the block.) */ @Override - public boolean onBlockActivated(World world, int x, int y, - int z, EntityPlayer player, int par6, float par7, - float par8, float par9) - { + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) { if (player.isSneaking()) { return false; } - player.openGui(ModularPowersuits.instance, - Config.Guis.GuiTinkerTable.ordinal(), - world, x, y, z); + player.openGui(ModularPowersuits.instance, Config.Guis.GuiTinkerTable.ordinal(), world, x, y, z); return true; } /** - * returns some value from 0 to 30 or so for different models. Since we're - * using a custom renderer, we pass in a completely different ID: the - * assigned block ID. It won't conflict with other mods, since Forge looks - * it up in a table anyway, but it's still best to have different internal + * returns some value from 0 to 30 or so for different models. Since we're using a custom renderer, we pass in a completely different ID: the + * assigned block ID. It won't conflict with other mods, since Forge looks it up in a table anyway, but it's still best to have different internal * IDs. */ @Override @@ -122,8 +118,7 @@ public class BlockTinkerTable extends Block { } /** - * This method is called on a block after all other blocks gets already - * created. You can use it to reference and configure something on the block + * This method is called on a block after all other blocks gets already created. You can use it to reference and configure something on the block * that needs the others ones. */ @Override @@ -131,12 +126,10 @@ public class BlockTinkerTable extends Block { } /** - * If this block doesn't render as an ordinary block it will return False - * (examples: signs, buttons, stairs, etc) + * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) */ @Override - public boolean renderAsNormalBlock() - { + public boolean renderAsNormalBlock() { return false; } @@ -250,14 +243,11 @@ public class BlockTinkerTable extends Block { // } /** - * Returns Returns true if the given side of this block type should be - * rendered (if it's solid or not), if the adjacent block is at the given + * Returns Returns true if the given side of this block type should be rendered (if it's solid or not), if the adjacent block is at the given * coordinates. Args: blockAccess, x, y, z, side */ @Override - public boolean isBlockSolid(IBlockAccess par1IBlockAccess, int par2, int - par3, int par4, int par5) - { + public boolean isBlockSolid(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) { return true; } @@ -339,13 +329,11 @@ public class BlockTinkerTable extends Block { // } // /** - * Is this block (a) opaque and (b) a full 1m cube? This determines whether - * or not to render the shared face of two adjacent blocks and also whether - * the player can attach torches, redstone wire, etc to this block. + * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two adjacent blocks and also + * whether the player can attach torches, redstone wire, etc to this block. */ @Override - public boolean isOpaqueCube() - { + public boolean isOpaqueCube() { return false; } @@ -1576,10 +1564,8 @@ public class BlockTinkerTable extends Block { // } /** - * Called throughout the code as a replacement for block instanceof - * BlockContainer Moving this to the Block base class allows for mods that - * wish to extend vinella blocks, and also want to have a tile entity on - * that block, may. + * Called throughout the code as a replacement for block instanceof BlockContainer Moving this to the Block base class allows for mods that wish + * to extend vinella blocks, and also want to have a tile entity on that block, may. * * Return true from this function to specify this block has a tile entity. * @@ -1588,24 +1574,20 @@ public class BlockTinkerTable extends Block { * @return True if block has a tile entity, false otherwise */ @Override - public boolean hasTileEntity(int metadata) - { + public boolean hasTileEntity(int metadata) { return true; } /** - * Called throughout the code as a replacement for - * BlockContainer.getBlockEntity Return the same thing you would from that - * function. This will fall back to BlockContainer.getBlockEntity if this - * block is a BlockContainer. + * Called throughout the code as a replacement for BlockContainer.getBlockEntity Return the same thing you would from that function. This will + * fall back to BlockContainer.getBlockEntity if this block is a BlockContainer. * * @param metadata * The Metadata of the current block * @return A instance of a class extending TileEntity */ @Override - public TileEntity createTileEntity(World world, int metadata) - { + public TileEntity createTileEntity(World world, int metadata) { return new TileEntityTinkerTable(); } @@ -2108,12 +2090,10 @@ public class BlockTinkerTable extends Block { // } // /** - * Location aware and overrideable version of the lightOpacity array, return - * the number to subtract from the light value when it passes through this - * block. + * Location aware and overrideable version of the lightOpacity array, return the number to subtract from the light value when it passes through + * this block. * - * This is not guaranteed to have the tile entity in place before this is - * called, so it is Recommended that you have your tile entity call relight + * This is not guaranteed to have the tile entity in place before this is called, so it is Recommended that you have your tile entity call relight * after being placed if you rely on it for light info. * * @param world @@ -2127,8 +2107,7 @@ public class BlockTinkerTable extends Block { * @return The amount of light to block, 0 for air, 255 for fully opaque. */ @Override - public int getLightOpacity(World world, int x, int y, int z) - { + public int getLightOpacity(World world, int x, int y, int z) { return 0; } } diff --git a/src/minecraft/net/machinemuse/powersuits/client/ClientProxy.java b/src/minecraft/net/machinemuse/powersuits/client/ClientProxy.java index ffdcec4..41133e5 100644 --- a/src/minecraft/net/machinemuse/powersuits/client/ClientProxy.java +++ b/src/minecraft/net/machinemuse/powersuits/client/ClientProxy.java @@ -24,8 +24,7 @@ import cpw.mods.fml.common.registry.TickRegistry; import cpw.mods.fml.relauncher.Side; /** - * The Client Proxy does all the things that should only be done client-side, - * like registering client-side handlers and renderers. + * The Client Proxy does all the things that should only be done client-side, like registering client-side handlers and renderers. * * @author MachineMuse * @@ -50,15 +49,17 @@ public class ClientProxy extends CommonProxy { RenderingRegistry.registerBlockHandler(tinkTableRenderer); RenderingRegistry.registerEntityRenderingHandler(EntityPlasmaBolt.class, new RenderPlasmaBolt()); - MinecraftForgeClient.preloadTexture(Config.SEBK_ICON_PATH); - MinecraftForgeClient.preloadTexture(Config.WC_ICON_PATH); MinecraftForgeClient.preloadTexture(Config.TINKERTABLE_TEXTURE_PATH); MinecraftForgeClient.preloadTexture(Config.BLANK_ARMOR_MODEL_PATH); + MinecraftForgeClient.preloadTexture(Config.SEBK_ARMOR_PATH); + MinecraftForgeClient.preloadTexture(Config.SEBK_ARMORPANTS_PATH); + MinecraftForgeClient.preloadTexture(Config.CITIZENJOE_ARMOR_PATH); + MinecraftForgeClient.preloadTexture(Config.CITIZENJOE_ARMORPANTS_PATH); + MinecraftForgeClient.preloadTexture(Config.SEBK_TOOL_TEXTURE); } /** - * Register the tick handler (for on-tick behaviour) and packet handler (for - * network synchronization and permission stuff). + * Register the tick handler (for on-tick behaviour) and packet handler (for network synchronization and permission stuff). */ @Override public void registerHandlers() { diff --git a/src/minecraft/net/machinemuse/powersuits/client/render/TinkerTableRenderer.java b/src/minecraft/net/machinemuse/powersuits/client/render/TinkerTableRenderer.java index fbd7052..6a47cec 100644 --- a/src/minecraft/net/machinemuse/powersuits/client/render/TinkerTableRenderer.java +++ b/src/minecraft/net/machinemuse/powersuits/client/render/TinkerTableRenderer.java @@ -5,11 +5,11 @@ package net.machinemuse.powersuits.client.render; import net.machinemuse.powersuits.common.Config; import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.client.ForgeHooksClient; import org.lwjgl.opengl.GL11; @@ -20,8 +20,7 @@ import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; * * @author MachineMuse */ -public class TinkerTableRenderer extends TileEntitySpecialRenderer implements - ISimpleBlockRenderingHandler { +public class TinkerTableRenderer extends TileEntitySpecialRenderer implements ISimpleBlockRenderingHandler { protected TinkerTableModel model; protected int renderId; @@ -31,9 +30,8 @@ public class TinkerTableRenderer extends TileEntitySpecialRenderer implements } @Override - public void renderTileEntityAt(TileEntity tileEntity, double x, double y, - double z, float partialTickTime) { - ForgeHooksClient.bindTexture(Config.TINKERTABLE_TEXTURE_PATH, 0); + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float partialTickTime) { + Minecraft.getMinecraft().renderEngine.bindTexture(Config.TINKERTABLE_TEXTURE_PATH); GL11.glPushMatrix(); GL11.glTranslated(x, y, z); model.doRender(null, x, y, z, partialTickTime, partialTickTime); @@ -52,9 +50,9 @@ public class TinkerTableRenderer extends TileEntitySpecialRenderer implements } @Override - public void renderInventoryBlock(Block block, int metadata, int modelID, - RenderBlocks renderer) { - ForgeHooksClient.bindTexture(Config.TINKERTABLE_TEXTURE_PATH, 0); + public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) { + Minecraft.getMinecraft().renderEngine.bindTexture(Config.TINKERTABLE_TEXTURE_PATH); + GL11.glPushMatrix(); GL11.glTranslated(-0.5, -0.5 + -1.0 / 16.0, -0.5); model.doRender(null, 0, 0, 0, 0, 0); @@ -65,8 +63,7 @@ public class TinkerTableRenderer extends TileEntitySpecialRenderer implements // Should do nothing since the tile entity handles all the rendering of the // world block @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, - Block block, int modelId, RenderBlocks renderer) { + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { return true; } diff --git a/src/minecraft/net/machinemuse/powersuits/client/render/ToolModel.java b/src/minecraft/net/machinemuse/powersuits/client/render/ToolModel.java index 9497973..6cd7e42 100644 --- a/src/minecraft/net/machinemuse/powersuits/client/render/ToolModel.java +++ b/src/minecraft/net/machinemuse/powersuits/client/render/ToolModel.java @@ -18,13 +18,11 @@ import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraftforge.client.ForgeHooksClient; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; -public class ToolModel extends ModelBase -{ +public class ToolModel extends ModelBase { public int boltSize; // fields @@ -64,8 +62,7 @@ public class ToolModel extends ModelBase ModelRenderer supportleft4; ModelRenderer supportleft5; - public ToolModel() - { + public ToolModel() { textureWidth = 64; textureHeight = 32; @@ -320,8 +317,7 @@ public class ToolModel extends ModelBase child.rotateAngleZ -= parent.rotateAngleZ; } - public void render(Entity entity, float scale, boolean renderTypeIsFirstPerson, Colour c1) - { + public void render(Entity entity, float scale, boolean renderTypeIsFirstPerson, Colour c1) { // super.render(entity, f, f1, f2, f3, f4, f5); int numsegments = 16; if (!tap) { @@ -360,13 +356,9 @@ public class ToolModel extends ModelBase tap = true; } } else { - if (!Keyboard.isKeyDown(Keyboard.KEY_NUMPAD0) - && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD1) - && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD2) - && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD3) - && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD4) - && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD5) - && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD6)) { + if (!Keyboard.isKeyDown(Keyboard.KEY_NUMPAD0) && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD1) && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD2) + && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD3) && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD4) + && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD5) && !Keyboard.isKeyDown(Keyboard.KEY_NUMPAD6)) { tap = false; } if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { @@ -375,7 +367,7 @@ public class ToolModel extends ModelBase } GL11.glPushMatrix(); - ForgeHooksClient.bindTexture(Config.SEBK_TOOL_TEXTURE, 0); + Minecraft.getMinecraft().renderEngine.bindTexture(Config.SEBK_TOOL_TEXTURE); if (c1 != null) { c1.doGL(); @@ -491,18 +483,15 @@ public class ToolModel extends ModelBase GL11.glPopMatrix(); } - private void setRotation(ModelRenderer model, float x, float y, float z) - { + private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } /** - * Sets the model's various rotation angles. For bipeds, par1 and par2 are - * used for animating the movement of arms and legs, where par1 represents - * the time(so that arms and legs swing back and forth) and par2 represents - * how "far" arms and legs can swing at most. + * Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms and legs, where par1 represents + * the time(so that arms and legs swing back and forth) and par2 represents how "far" arms and legs can swing at most. */ public void setPose(float indexOpen, float indexFlex, float thumbOpen, float thumbFlex, float otherFingersOpen, float otherFingersFlex) { index1.rotateAngleX = indexOpen; diff --git a/src/minecraft/net/machinemuse/powersuits/common/Config.java b/src/minecraft/net/machinemuse/powersuits/common/Config.java index 998ca23..0bd0a80 100644 --- a/src/minecraft/net/machinemuse/powersuits/common/Config.java +++ b/src/minecraft/net/machinemuse/powersuits/common/Config.java @@ -31,23 +31,26 @@ import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; /** - * Initial attempt at storing all tweakable/configurable values in one class. - * This got really messy really fast so it's in the process of being reworked. + * Initial attempt at storing all tweakable/configurable values in one class. This got really messy really fast so it's in the process of being + * reworked. * * @author MachineMuse * */ public class Config { - public static final String SEBK_ICON_PATH = "/resources/machinemuse/sebkicons.png"; - public static final String SEBK_ARMOR_PATH = "/resources/machinemuse/sebkarmor.png"; - public static final String SEBK_ARMORPANTS_PATH = "/resources/machinemuse/sebkarmorpants.png"; - public static final String WC_ICON_PATH = "/resources/machinemuse/watericons.png"; - public static final String TINKERTABLE_TEXTURE_PATH = "/resources/machinemuse/tinkertable_tx.png"; - public static final String BLANK_ARMOR_MODEL_PATH = "/resources/machinemuse/blankarmor.png"; - public static final String MUSE_ICON_PATH = "/resources/machinemuse/museicons.png"; - public static final String SEBK_TOOL_TEXTURE = "/resources/machinemuse/tool.png"; - public static final String CITIZENJOE_ARMOR_PATH = "/resources/machinemuse/joearmor.png"; - public static final String CITIZENJOE_ARMORPANTS_PATH = "/resources/machinemuse/joearmorpants.png"; + public static final String RESOURCE_PREFIX = "/mods/mmmPowersuits/"; + public static final String TEXTURE_PREFIX = RESOURCE_PREFIX + "textures/"; + public static final String SOUND_PREFIX = RESOURCE_PREFIX + "sound/"; + // public static final String SEBK_ICON_PATH = "/mods/mmmPowersuits//machinemuse/sebkicons.png"; + public static final String SEBK_ARMOR_PATH = TEXTURE_PREFIX + "models/sebkarmor.png"; + public static final String SEBK_ARMORPANTS_PATH = TEXTURE_PREFIX + "models/sebkarmorpants.png"; + // public static final String WC_ICON_PATH = "/resources/machinemuse/watericons.png"; + public static final String TINKERTABLE_TEXTURE_PATH = TEXTURE_PREFIX + "models/tinkertable_tx.png"; + public static final String BLANK_ARMOR_MODEL_PATH = TEXTURE_PREFIX + "models/blankarmor.png"; + // public static final String MUSE_ICON_PATH = "/resources/machinemuse/museicons.png"; + public static final String SEBK_TOOL_TEXTURE = TEXTURE_PREFIX + "models/tool.png"; + public static final String CITIZENJOE_ARMOR_PATH = TEXTURE_PREFIX + "models/joearmor.png"; + public static final String CITIZENJOE_ARMORPANTS_PATH = TEXTURE_PREFIX + "models/joearmorpants.png"; private static final int[] assignedItemIDs = new int[Items.values().length]; private static final int[] assignedBlockIDs = new int[Blocks.values().length]; @@ -55,12 +58,10 @@ public class Config { private static Configuration config; /** - * Called in the pre-init phase of initialization, informs Forge that we - * want the following blockIDs. + * Called in the pre-init phase of initialization, informs Forge that we want the following blockIDs. * * @param config - * The Forge configuration object which will handle such - * requests. + * The Forge configuration object which will handle such requests. */ public static void init(Configuration config) { Config.config = config; @@ -68,21 +69,18 @@ public class Config { // Request block IDs for (Blocks b : Blocks.values()) { - assignedBlockIDs[b.ordinal()] = - config.getBlock(b.englishName, b.defaultBlockId).getInt(); + assignedBlockIDs[b.ordinal()] = config.getBlock(b.englishName, b.defaultBlockId).getInt(); } // Request item IDs for (Items i : Items.values()) { - assignedItemIDs[i.ordinal()] = - config.getItem(i.englishName, i.defaultItemID).getInt(); + assignedItemIDs[i.ordinal()] = config.getItem(i.englishName, i.defaultItemID).getInt(); } config.save(); } /** - * The packet channel for this mod. We will only listen for and send packets - * on this 'channel'. Max of 16 characters. + * The packet channel for this mod. We will only listen for and send packets on this 'channel'. Max of 16 characters. * * @return */ @@ -91,8 +89,7 @@ public class Config { } /** - * The default creative tab to add all these items to. This behaviour may - * change if more items are added, but for now there are only 5 items and 1 + * The default creative tab to add all these items to. This behaviour may change if more items are added, but for now there are only 5 items and 1 * block, so misc is the most appropriate target. * * @return @@ -109,10 +106,9 @@ public class Config { public static double getSalvageChance() { return config.get(Configuration.CATEGORY_GENERAL, "Salvage Ratio", 0.9).getDouble(0.9); } - + /** - * The maximum amount of armor contribution allowed per armor piece. Total - * armor when the full set is worn can never exceed 4 times this amount. + * The maximum amount of armor contribution allowed per armor piece. Total armor when the full set is worn can never exceed 4 times this amount. * * @return */ @@ -132,8 +128,7 @@ public class Config { } /** - * Once Forge has assigned IDs for all our items, this function will tell us - * what was actually assigned. + * Once Forge has assigned IDs for all our items, this function will tell us what was actually assigned. * * @param item * @return @@ -146,8 +141,7 @@ public class Config { } /** - * Once Forge has assigned IDs for all our blocks, this function will tell - * us what was actually assigned. + * Once Forge has assigned IDs for all our blocks, this function will tell us what was actually assigned. * * @param item * @return @@ -160,8 +154,7 @@ public class Config { } /** - * Helper function for making recipes. Returns a copy of the itemstack with - * the specified stacksize. + * Helper function for making recipes. Returns a copy of the itemstack with the specified stacksize. * * @param stack * Itemstack to copy @@ -180,18 +173,14 @@ public class Config { } /** - * Load all the modules in the config file into memory. Eventually. For now, - * they are hardcoded. + * Load all the modules in the config file into memory. Eventually. For now, they are hardcoded. */ public static void loadPowerModules() { // loadModularProperties(); - List ARMORONLY = Arrays.asList((IModularItem) - ModularPowersuits.powerArmorHead, ModularPowersuits.powerArmorTorso, + List ARMORONLY = Arrays.asList((IModularItem) ModularPowersuits.powerArmorHead, ModularPowersuits.powerArmorTorso, ModularPowersuits.powerArmorLegs, ModularPowersuits.powerArmorFeet); - List ALLITEMS = Arrays.asList((IModularItem) - ModularPowersuits.powerArmorHead, ModularPowersuits.powerArmorTorso, - ModularPowersuits.powerArmorLegs, ModularPowersuits.powerArmorFeet, - ModularPowersuits.powerTool); + List ALLITEMS = Arrays.asList((IModularItem) ModularPowersuits.powerArmorHead, ModularPowersuits.powerArmorTorso, + ModularPowersuits.powerArmorLegs, ModularPowersuits.powerArmorFeet, ModularPowersuits.powerTool); List HEADONLY = Arrays.asList((IModularItem) ModularPowersuits.powerArmorHead); List TORSOONLY = Arrays.asList((IModularItem) ModularPowersuits.powerArmorTorso); List LEGSONLY = Arrays.asList((IModularItem) ModularPowersuits.powerArmorLegs); @@ -202,21 +191,17 @@ public class Config { module = new ToggleablePowerModule(MuseCommonStrings.MODULE_NIGHT_VISION, HEADONLY, MuseIcon.SCANNER, MuseCommonStrings.CATEGORY_SPECIAL) .setDescription("A pair of augmented vision goggles to help you see at night and underwater.") - .addInstallCost(copyAndResize(ItemComponent.laserHologram, 1)) - .addInstallCost(copyAndResize(ItemComponent.controlCircuit, 1)); + .addInstallCost(copyAndResize(ItemComponent.laserHologram, 1)).addInstallCost(copyAndResize(ItemComponent.controlCircuit, 1)); addModule(module); module = new ToggleablePowerModule(MuseCommonStrings.MODULE_ACTIVE_CAMOUFLAGE, TORSOONLY, MuseIcon.ORB_1_BLUE, - MuseCommonStrings.CATEGORY_SPECIAL) - .setDescription("Emit a hologram of your surroundings to make yourself almost imperceptible.") - .addInstallCost(copyAndResize(ItemComponent.laserHologram, 4)) - .addInstallCost(copyAndResize(ItemComponent.fieldEmitter, 2)) + MuseCommonStrings.CATEGORY_SPECIAL).setDescription("Emit a hologram of your surroundings to make yourself almost imperceptible.") + .addInstallCost(copyAndResize(ItemComponent.laserHologram, 4)).addInstallCost(copyAndResize(ItemComponent.fieldEmitter, 2)) .addInstallCost(copyAndResize(ItemComponent.controlCircuit, 2)); addModule(module); module = new ToggleablePowerModule(MuseCommonStrings.MODULE_FLIGHT_CONTROL, HEADONLY, MuseIcon.INDICATOR_1_GREEN, - MuseCommonStrings.CATEGORY_SPECIAL) - .setDescription("An integrated control circuit to help you fly better. Press Z to go down.") + MuseCommonStrings.CATEGORY_SPECIAL).setDescription("An integrated control circuit to help you fly better. Press Z to go down.") .addInstallCost(copyAndResize(ItemComponent.controlCircuit, 1)); addModule(module); @@ -224,14 +209,12 @@ public class Config { module = new ToggleablePowerModule(MuseCommonStrings.MODULE_MELEE_ASSIST, TOOLONLY, MuseIcon.PUNCHY, MuseCommonStrings.CATEGORY_WEAPON) .setDescription("A much simpler addon, makes your powertool punches hit harder.") - .addBaseProperty(MuseCommonStrings.PUNCH_ENERGY, 10, "J") - .addBaseProperty(MuseCommonStrings.PUNCH_DAMAGE, 2, "pt") + .addBaseProperty(MuseCommonStrings.PUNCH_ENERGY, 10, "J").addBaseProperty(MuseCommonStrings.PUNCH_DAMAGE, 2, "pt") .addTradeoffProperty("Impact", MuseCommonStrings.PUNCH_ENERGY, 100, "J") .addTradeoffProperty("Impact", MuseCommonStrings.PUNCH_DAMAGE, 8, "pt") .addTradeoffProperty("Carry-through", MuseCommonStrings.PUNCH_ENERGY, 20, "J") .addTradeoffProperty("Carry-through", MuseCommonStrings.PUNCH_KNOCKBACK, 1, "P") - .addInstallCost(copyAndResize(ItemComponent.servoMotor, 2)) - .addInstallCost(copyAndResize(ItemComponent.lvcapacitor, 1)); + .addInstallCost(copyAndResize(ItemComponent.servoMotor, 2)).addInstallCost(copyAndResize(ItemComponent.lvcapacitor, 1)); addModule(module); addModule(new RailgunModule(TOOLONLY)); @@ -240,20 +223,16 @@ public class Config { addModule(new BlinkDriveModule(TOOLONLY)); module = new PowerModule(MuseCommonStrings.MODULE_KINETIC_GENERATOR, LEGSONLY, MuseIcon.NEXUS_1_RED, MuseCommonStrings.CATEGORY_ENERGY) - .setDescription("Generate power with your movement.") - .addBaseProperty(MuseCommonStrings.WEIGHT, 1000) + .setDescription("Generate power with your movement.").addBaseProperty(MuseCommonStrings.WEIGHT, 1000) .addBaseProperty(MuseCommonStrings.KINETIC_ENERGY_GENERATION, 250) .addTradeoffProperty("Energy Generated", MuseCommonStrings.KINETIC_ENERGY_GENERATION, 750, " Joules") .addTradeoffProperty("Energy Generated", MuseCommonStrings.WEIGHT, 3000, "g") - .addInstallCost(copyAndResize(ItemComponent.servoMotor, 2)) - .addInstallCost(copyAndResize(ItemComponent.controlCircuit, 1)); + .addInstallCost(copyAndResize(ItemComponent.servoMotor, 2)).addInstallCost(copyAndResize(ItemComponent.controlCircuit, 1)); addModule(module); module = new PowerModule(MuseCommonStrings.MODULE_SOLAR_GENERATOR, HEADONLY, MuseIcon.NEXUS_1_GREEN, MuseCommonStrings.CATEGORY_ENERGY) - .setDescription("Let the sun power your adventures.") - .addBaseProperty(MuseCommonStrings.SOLAR_ENERGY_GENERATION_DAY, 2000) - .addBaseProperty(MuseCommonStrings.SOLAR_ENERGY_GENERATION_NIGHT, 200) - .addInstallCost(copyAndResize(ItemComponent.solarPanel, 1)) + .setDescription("Let the sun power your adventures.").addBaseProperty(MuseCommonStrings.SOLAR_ENERGY_GENERATION_DAY, 2000) + .addBaseProperty(MuseCommonStrings.SOLAR_ENERGY_GENERATION_NIGHT, 200).addInstallCost(copyAndResize(ItemComponent.solarPanel, 1)) .addInstallCost(copyAndResize(ItemComponent.controlCircuit, 2)); addModule(module); @@ -261,17 +240,14 @@ public class Config { MuseCommonStrings.CATEGORY_ENVIRONMENTAL) .setDescription( "Whenever you're hungry, this module will grab the bottom-left-most food item from your inventory and feed it to you, storing the rest for later.") - .addBaseProperty(MuseCommonStrings.EATING_ENERGY_CONSUMPTION, 100) - .addBaseProperty(MuseCommonStrings.EATING_EFFICIENCY, 50) + .addBaseProperty(MuseCommonStrings.EATING_ENERGY_CONSUMPTION, 100).addBaseProperty(MuseCommonStrings.EATING_EFFICIENCY, 50) .addTradeoffProperty("Efficiency", MuseCommonStrings.EATING_ENERGY_CONSUMPTION, 100) .addTradeoffProperty("Efficiency", MuseCommonStrings.EATING_EFFICIENCY, 50) - .addInstallCost(copyAndResize(ItemComponent.servoMotor, 2)) - .addInstallCost(copyAndResize(ItemComponent.controlCircuit, 1)); + .addInstallCost(copyAndResize(ItemComponent.servoMotor, 2)).addInstallCost(copyAndResize(ItemComponent.controlCircuit, 1)); addModule(module); module = new PowerModule(MuseCommonStrings.MODULE_BASIC_PLATING, ARMORONLY, MuseIcon.MODULE_IRON_PLATING, MuseCommonStrings.CATEGORY_ARMOR) - .setDescription("Basic plating is heavy but protective.") - .addInstallCost(copyAndResize(ItemComponent.basicPlating, 1)) + .setDescription("Basic plating is heavy but protective.").addInstallCost(copyAndResize(ItemComponent.basicPlating, 1)) .addTradeoffProperty("Plating Thickness", MuseCommonStrings.ARMOR_VALUE_PHYSICAL, 5, " Points") .addTradeoffProperty("Plating Thickness", MuseCommonStrings.WEIGHT, 10000, "g"); addModule(module); @@ -292,30 +268,24 @@ public class Config { addModule(module); module = new ToggleablePowerModule(MuseCommonStrings.MODULE_SHOVEL, TOOLONLY, MuseIcon.TOOL_SHOVEL, MuseCommonStrings.CATEGORY_TOOL) - .setDescription("Shovels are good for soft materials like dirt and sand.") - .addInstallCost(new ItemStack(Item.ingotIron, 3)) - .addInstallCost(copyAndResize(ItemComponent.solenoid, 1)) - .addBaseProperty(MuseCommonStrings.SHOVEL_ENERGY_CONSUMPTION, 50, "J") + .setDescription("Shovels are good for soft materials like dirt and sand.").addInstallCost(new ItemStack(Item.ingotIron, 3)) + .addInstallCost(copyAndResize(ItemComponent.solenoid, 1)).addBaseProperty(MuseCommonStrings.SHOVEL_ENERGY_CONSUMPTION, 50, "J") .addBaseProperty(MuseCommonStrings.SHOVEL_HARVEST_SPEED, 8, "x") .addTradeoffProperty("Overclock", MuseCommonStrings.SHOVEL_ENERGY_CONSUMPTION, 950) .addTradeoffProperty("Overclock", MuseCommonStrings.SHOVEL_HARVEST_SPEED, 22); addModule(module); module = new ToggleablePowerModule(MuseCommonStrings.MODULE_PICKAXE, TOOLONLY, MuseIcon.TOOL_PICK, MuseCommonStrings.CATEGORY_TOOL) - .setDescription("Picks are good for harder materials like stone and ore.") - .addInstallCost(new ItemStack(Item.ingotIron, 3)) - .addInstallCost(copyAndResize(ItemComponent.solenoid, 1)) - .addBaseProperty(MuseCommonStrings.PICKAXE_ENERGY_CONSUMPTION, 50, "J") + .setDescription("Picks are good for harder materials like stone and ore.").addInstallCost(new ItemStack(Item.ingotIron, 3)) + .addInstallCost(copyAndResize(ItemComponent.solenoid, 1)).addBaseProperty(MuseCommonStrings.PICKAXE_ENERGY_CONSUMPTION, 50, "J") .addBaseProperty(MuseCommonStrings.PICKAXE_HARVEST_SPEED, 8, "x") .addTradeoffProperty("Overclock", MuseCommonStrings.PICKAXE_ENERGY_CONSUMPTION, 950) .addTradeoffProperty("Overclock", MuseCommonStrings.PICKAXE_HARVEST_SPEED, 22); addModule(module); module = new ToggleablePowerModule(MuseCommonStrings.MODULE_AXE, TOOLONLY, MuseIcon.TOOL_AXE, MuseCommonStrings.CATEGORY_TOOL) - .setDescription("Axes are mostly for chopping trees.") - .addInstallCost(new ItemStack(Item.ingotIron, 3)) - .addInstallCost(copyAndResize(ItemComponent.solenoid, 1)) - .addBaseProperty(MuseCommonStrings.AXE_ENERGY_CONSUMPTION, 50, "J") + .setDescription("Axes are mostly for chopping trees.").addInstallCost(new ItemStack(Item.ingotIron, 3)) + .addInstallCost(copyAndResize(ItemComponent.solenoid, 1)).addBaseProperty(MuseCommonStrings.AXE_ENERGY_CONSUMPTION, 50, "J") .addBaseProperty(MuseCommonStrings.AXE_HARVEST_SPEED, 8, "x") .addTradeoffProperty("Overclock", MuseCommonStrings.AXE_ENERGY_CONSUMPTION, 950) .addTradeoffProperty("Overclock", MuseCommonStrings.AXE_HARVEST_SPEED, 22); @@ -323,13 +293,11 @@ public class Config { module = new PowerModule(MuseCommonStrings.MODULE_DIAMOND_PICK_UPGRADE, TOOLONLY, MuseIcon.DIAMOND_PICK, MuseCommonStrings.CATEGORY_SPECIAL) .setDescription("Add diamonds to allow your pickaxe module to mine Obsidian. *REQUIRES PICKAXE MODULE TO WORK*") - .addInstallCost(copyAndResize(ItemComponent.solenoid, 1)) - .addInstallCost(new ItemStack(Item.diamond, 3)); + .addInstallCost(copyAndResize(ItemComponent.solenoid, 1)).addInstallCost(new ItemStack(Item.diamond, 3)); addModule(module); module = new ToggleablePowerModule(MuseCommonStrings.MODULE_AQUA_AFFINITY, TOOLONLY, MuseIcon.AQUA_AFFINITY, - MuseCommonStrings.CATEGORY_SPECIAL) - .setDescription("Reduces the speed penalty for using your tool underwater.") + MuseCommonStrings.CATEGORY_SPECIAL).setDescription("Reduces the speed penalty for using your tool underwater.") .addInstallCost(copyAndResize(ItemComponent.servoMotor, 1)) .addBaseProperty(MuseCommonStrings.AQUA_AFFINITY_ENERGY_CONSUMPTION, 0, "J") .addBaseProperty(MuseCommonStrings.UNDERWATER_HARVEST_SPEED, 0.2, "%") @@ -338,29 +306,23 @@ public class Config { addModule(module); module = new PowerModule(MuseCommonStrings.MODULE_BATTERY_BASIC, ALLITEMS, MuseIcon.BATTERY1, MuseCommonStrings.CATEGORY_ENERGY) - .setDescription("Integrate a battery to allow the item to store energy.") - .addInstallCost(copyAndResize(ItemComponent.lvcapacitor, 1)) - .addBaseProperty(ElectricItemUtils.MAXIMUM_ENERGY, 20000, "J") - .addBaseProperty(MuseCommonStrings.WEIGHT, 2000, "g") + .setDescription("Integrate a battery to allow the item to store energy.").addInstallCost(copyAndResize(ItemComponent.lvcapacitor, 1)) + .addBaseProperty(ElectricItemUtils.MAXIMUM_ENERGY, 20000, "J").addBaseProperty(MuseCommonStrings.WEIGHT, 2000, "g") .addTradeoffProperty("Battery Size", ElectricItemUtils.MAXIMUM_ENERGY, 80000) .addTradeoffProperty("Battery Size", MuseCommonStrings.WEIGHT, 8000); addModule(module); module = new PowerModule(MuseCommonStrings.MODULE_BATTERY_ADVANCED, ALLITEMS, MuseIcon.BATTERY2, MuseCommonStrings.CATEGORY_ENERGY) .setDescription("Integrate a more advanced battery to store more energy.") - .addInstallCost(copyAndResize(ItemComponent.mvcapacitor, 1)) - .addBaseProperty(ElectricItemUtils.MAXIMUM_ENERGY, 100000, "J") - .addBaseProperty(MuseCommonStrings.WEIGHT, 2000, "g") - .addTradeoffProperty("Battery Size", ElectricItemUtils.MAXIMUM_ENERGY, 400000) + .addInstallCost(copyAndResize(ItemComponent.mvcapacitor, 1)).addBaseProperty(ElectricItemUtils.MAXIMUM_ENERGY, 100000, "J") + .addBaseProperty(MuseCommonStrings.WEIGHT, 2000, "g").addTradeoffProperty("Battery Size", ElectricItemUtils.MAXIMUM_ENERGY, 400000) .addTradeoffProperty("Battery Size", MuseCommonStrings.WEIGHT, 8000); addModule(module); module = new PowerModule(MuseCommonStrings.MODULE_BATTERY_ELITE, ALLITEMS, MuseIcon.BATTERYCRYSTAL, MuseCommonStrings.CATEGORY_ENERGY) .setDescription("Integrate a the most advanced battery to store an extensive amount of energy.") - .addInstallCost(copyAndResize(ItemComponent.hvcapacitor, 1)) - .addBaseProperty(ElectricItemUtils.MAXIMUM_ENERGY, 750000, "J") - .addBaseProperty(MuseCommonStrings.WEIGHT, 2000, "g") - .addTradeoffProperty("Battery Size", ElectricItemUtils.MAXIMUM_ENERGY, 4250000) + .addInstallCost(copyAndResize(ItemComponent.hvcapacitor, 1)).addBaseProperty(ElectricItemUtils.MAXIMUM_ENERGY, 750000, "J") + .addBaseProperty(MuseCommonStrings.WEIGHT, 2000, "g").addTradeoffProperty("Battery Size", ElectricItemUtils.MAXIMUM_ENERGY, 4250000) .addTradeoffProperty("Battery Size", MuseCommonStrings.WEIGHT, 8000); addModule(module); @@ -368,54 +330,41 @@ public class Config { module = new ToggleablePowerModule(MuseCommonStrings.MODULE_JUMP_ASSIST, LEGSONLY, MuseIcon.JUMP_ASSIST, MuseCommonStrings.CATEGORY_MOVEMENT) .setDescription("Another set of servo motors to help you jump higher.") - .addSimpleTradeoff( - module, "Power", - MuseCommonStrings.JUMP_ENERGY_CONSUMPTION, "J", 0, 25, - MuseCommonStrings.JUMP_MULTIPLIER, "%", 1, 4) - .addSimpleTradeoff( - module, "Compensation", - MuseCommonStrings.JUMP_ENERGY_CONSUMPTION, "J", 0, 5, - MuseCommonStrings.JUMP_FOOD_COMPENSATION, "%", 0, 1) - .addInstallCost(copyAndResize(ItemComponent.servoMotor, 4)); + .addSimpleTradeoff(module, "Power", MuseCommonStrings.JUMP_ENERGY_CONSUMPTION, "J", 0, 25, MuseCommonStrings.JUMP_MULTIPLIER, "%", 1, + 4) + .addSimpleTradeoff(module, "Compensation", MuseCommonStrings.JUMP_ENERGY_CONSUMPTION, "J", 0, 5, + MuseCommonStrings.JUMP_FOOD_COMPENSATION, "%", 0, 1).addInstallCost(copyAndResize(ItemComponent.servoMotor, 4)); addModule(module); module = new ToggleablePowerModule(MuseCommonStrings.MODULE_SHOCK_ABSORBER, FEETONLY, MuseIcon.SHOCK_ABSORBER, MuseCommonStrings.CATEGORY_MOVEMENT) .setDescription("With some servos, springs, and padding, you should be able to negate a portion of fall damage.") - .addSimpleTradeoff( - module, "Power", - MuseCommonStrings.SHOCK_ABSORB_ENERGY_CONSUMPTION, "J/m", 0, 10, - MuseCommonStrings.SHOCK_ABSORB_MULTIPLIER, "%", 0, 1) - .addInstallCost(copyAndResize(ItemComponent.servoMotor, 2)) + .addSimpleTradeoff(module, "Power", MuseCommonStrings.SHOCK_ABSORB_ENERGY_CONSUMPTION, "J/m", 0, 10, + MuseCommonStrings.SHOCK_ABSORB_MULTIPLIER, "%", 0, 1).addInstallCost(copyAndResize(ItemComponent.servoMotor, 2)) .addInstallCost(new ItemStack(Block.cloth, 2)); addModule(module); module = new ToggleablePowerModule(MuseCommonStrings.MODULE_GLIDER, TORSOONLY, MuseIcon.GLIDER, MuseCommonStrings.CATEGORY_MOVEMENT) - .setDescription( - "Tack on some wings to turn downward into forward momentum. Press sneak+forward while falling to activate.") + .setDescription("Tack on some wings to turn downward into forward momentum. Press sneak+forward while falling to activate.") .addInstallCost(copyAndResize(ItemComponent.gliderWing, 2)); addModule(module); module = new PowerModule(MuseCommonStrings.MODULE_PARACHUTE, TORSOONLY, MuseIcon.PARACHUTE_MODULE, MuseCommonStrings.CATEGORY_MOVEMENT) - .setDescription("Add a parachute to slow your descent. Activate by pressing sneak (defaults to Shift) in midair.") - .addInstallCost(copyAndResize(ItemComponent.parachute, 2)); + .setDescription("Add a parachute to slow your descent. Activate by pressing sneak (defaults to Shift) in midair.").addInstallCost( + copyAndResize(ItemComponent.parachute, 2)); addModule(module); module = new ToggleablePowerModule(MuseCommonStrings.MODULE_JETPACK, TORSOONLY, MuseIcon.JETPACK, MuseCommonStrings.CATEGORY_MOVEMENT) .setDescription("A jetpack should allow you to jump indefinitely, or at least until you run out of power.") - .addInstallCost(copyAndResize(ItemComponent.ionThruster, 4)) - .addBaseProperty(MuseCommonStrings.JET_ENERGY_CONSUMPTION, 0, "J/t") - .addBaseProperty(MuseCommonStrings.JET_THRUST, 0, "N") - .addTradeoffProperty("Thrust", MuseCommonStrings.JET_ENERGY_CONSUMPTION, 150) + .addInstallCost(copyAndResize(ItemComponent.ionThruster, 4)).addBaseProperty(MuseCommonStrings.JET_ENERGY_CONSUMPTION, 0, "J/t") + .addBaseProperty(MuseCommonStrings.JET_THRUST, 0, "N").addTradeoffProperty("Thrust", MuseCommonStrings.JET_ENERGY_CONSUMPTION, 150) .addTradeoffProperty("Thrust", MuseCommonStrings.JET_THRUST, 0.16); addModule(module); module = new ToggleablePowerModule(MuseCommonStrings.MODULE_JETBOOTS, FEETONLY, MuseIcon.JETBOOTS, MuseCommonStrings.CATEGORY_MOVEMENT) .setDescription("Jet boots are not as strong as a jetpack, but they should at least be strong enough to counteract gravity.") - .addInstallCost(copyAndResize(ItemComponent.ionThruster, 2)) - .addBaseProperty(MuseCommonStrings.JET_ENERGY_CONSUMPTION, 0) - .addBaseProperty(MuseCommonStrings.JET_THRUST, 0) - .addTradeoffProperty("Thrust", MuseCommonStrings.JET_ENERGY_CONSUMPTION, 75) + .addInstallCost(copyAndResize(ItemComponent.ionThruster, 2)).addBaseProperty(MuseCommonStrings.JET_ENERGY_CONSUMPTION, 0) + .addBaseProperty(MuseCommonStrings.JET_THRUST, 0).addTradeoffProperty("Thrust", MuseCommonStrings.JET_ENERGY_CONSUMPTION, 75) .addTradeoffProperty("Thrust", MuseCommonStrings.JET_THRUST, 0.08); addModule(module); @@ -429,8 +378,7 @@ public class Config { module = new ToggleablePowerModule(MuseCommonStrings.MODULE_SWIM_BOOST, LEGSONLY, MuseIcon.SWIM_BOOST, MuseCommonStrings.CATEGORY_MOVEMENT) .setDescription( "By refitting an ion thruster for underwater use, you may be able to add extra forward (or backward) thrust when underwater.") - .addInstallCost(copyAndResize(ItemComponent.ionThruster, 1)) - .addInstallCost(copyAndResize(ItemComponent.solenoid, 2)) + .addInstallCost(copyAndResize(ItemComponent.ionThruster, 1)).addInstallCost(copyAndResize(ItemComponent.solenoid, 2)) .addTradeoffProperty("Thrust", MuseCommonStrings.SWIM_BOOST_ENERGY_CONSUMPTION, 100, "J") .addTradeoffProperty("Thrust", MuseCommonStrings.SWIM_BOOST_AMOUNT, 1, "m/s"); addModule(module); @@ -446,24 +394,22 @@ public class Config { addModule(module); module = new ToggleablePowerModule(MuseCommonStrings.MODULE_TRANSPARENT_ARMOR, ARMORONLY, MuseIcon.TRANSPARENT_ARMOR, - MuseCommonStrings.CATEGORY_COSMETIC) - .setDescription("Make the item transparent, so you can show off your skin without losing armor.") + MuseCommonStrings.CATEGORY_COSMETIC).setDescription("Make the item transparent, so you can show off your skin without losing armor.") .addInstallCost(copyAndResize(ItemComponent.laserHologram, 1)); addModule(module); module = new PowerModule(MuseCommonStrings.CITIZEN_JOE_STYLE, ARMORONLY, MuseIcon.ORB_1_GREEN, MuseCommonStrings.CATEGORY_COSMETIC) .setDescription("An alternative armor texture, c/o CitizenJoe of IC2 forums."); addModule(module); - + // Make the maximum armor per piece value show up in config file getMaximumArmorPerPiece(); - + // red = 1, green = 2, blue = 4 } /** - * An enum listing all the blocks that this mod adds. Used for assigning IDs - * and various other things. + * An enum listing all the blocks that this mod adds. Used for assigning IDs and various other things. * * @author MachineMuse * @@ -476,9 +422,7 @@ public class Config { public final String idName; public final String englishName; - private Blocks( - int defaultBlockId, int textureIndex, String idName, - String englishName) { + private Blocks(int defaultBlockId, int textureIndex, String idName, String englishName) { this.defaultBlockId = defaultBlockId; this.textureIndex = textureIndex; this.idName = idName; @@ -488,20 +432,16 @@ public class Config { } /** - * An enum listing all the items that this mod adds. Used for assigning IDs - * and various other things. + * An enum listing all the items that this mod adds. Used for assigning IDs and various other things. * * @author MachineMuse * */ public static enum Items { // Icon index, ID name, English name, Armor Type - PowerArmorHead(24770, 0, "powerArmorHead", "Power Armor Head"), - PowerArmorTorso(24771, 1, "powerArmorTorso", "Power Armor Torso"), - PowerArmorLegs(24772, 2, "powerArmorLegs", "Power Armor Legs"), - PowerArmorFeet(24773, 3, "powerArmorFeet", "Power Armor Feet"), - PowerTool(24774, 4, "powerTool", "Power Tool"), - PowerArmorComponent(24775, 5, "powerArmorComponent", "Power Armor Component"), + PowerArmorHead(24770, 0, "powerArmorHead", "Power Armor Head"), PowerArmorTorso(24771, 1, "powerArmorTorso", "Power Armor Torso"), PowerArmorLegs( + 24772, 2, "powerArmorLegs", "Power Armor Legs"), PowerArmorFeet(24773, 3, "powerArmorFeet", "Power Armor Feet"), PowerTool(24774, 4, + "powerTool", "Power Tool"), PowerArmorComponent(24775, 5, "powerArmorComponent", "Power Armor Component"), ; @@ -510,8 +450,7 @@ public class Config { public final String idName; public final String englishName; - Items(int defaultItemID, int iconIndex, - String idName, String englishName) { + Items(int defaultItemID, int iconIndex, String idName, String englishName) { this.defaultItemID = defaultItemID; this.iconIndex = iconIndex; this.idName = idName; @@ -521,16 +460,13 @@ public class Config { } /** - * An enum to describe the various GUI windows which can appear. IDs are - * less important here since this data isn't saved or synced. + * An enum to describe the various GUI windows which can appear. IDs are less important here since this data isn't saved or synced. * * @author MachineMuse * */ public static enum Guis { - GuiTinkerTable, - GuiSuitManager, - GuiPortableCrafting; + GuiTinkerTable, GuiSuitManager, GuiPortableCrafting; } public static Configuration getConfig() { @@ -548,10 +484,7 @@ public class Config { public static Object additionalInfoInstructions() { String message = "Press SHIFT for more information."; - message = MuseStringUtils.wrapMultipleFormatTags( - message, - MuseStringUtils.FormatCodes.Grey, - MuseStringUtils.FormatCodes.Italic); + message = MuseStringUtils.wrapMultipleFormatTags(message, MuseStringUtils.FormatCodes.Grey, MuseStringUtils.FormatCodes.Italic); return message; } } diff --git a/src/minecraft/net/machinemuse/powersuits/common/ModCompatability.java b/src/minecraft/net/machinemuse/powersuits/common/ModCompatability.java index a9d0af0..53ac5d0 100644 --- a/src/minecraft/net/machinemuse/powersuits/common/ModCompatability.java +++ b/src/minecraft/net/machinemuse/powersuits/common/ModCompatability.java @@ -136,11 +136,10 @@ public class ModCompatability { Item goggles = (Item) itemGoggles.get(itemGoggles); gogglesStack = new ItemStack(goggles); IPowerModule module = new PowerModule("Aurameter", Arrays.asList((IModularItem) ModularPowersuits.powerArmorHead), new MuseIcon( - "/thaumcraft/resources/ss_core.png", 144), MuseCommonStrings.CATEGORY_SPECIAL) + "thaumcraft:ss_core"), MuseCommonStrings.CATEGORY_SPECIAL) .setDescription( "Connect up some Thaumic goggles to show the nearby aura values. (Does not reveal aura nodes, only shows the HUD)") - .addInstallCost(ItemComponent.laserHologram.copy()) - .addInstallCost(gogglesStack); + .addInstallCost(ItemComponent.laserHologram.copy()).addInstallCost(gogglesStack); ModuleManager.addModule(module); } catch (Exception e) { e.printStackTrace(); @@ -151,38 +150,35 @@ public class ModCompatability { // Add UE multimeter module if (ModCompatability.isBasicComponentsLoaded()) { IPowerModule module = new RightClickPowerModule(MuseCommonStrings.MODULE_MULTIMETER, - Arrays.asList((IModularItem) ModularPowersuits.powerTool), - MuseIcon.PLATE_2_RED, MuseCommonStrings.CATEGORY_TOOL) + Arrays.asList((IModularItem) ModularPowersuits.powerTool), MuseIcon.PLATE_2_RED, MuseCommonStrings.CATEGORY_TOOL) .setDescription("A tool addon that reads the Universal Electricity power generation in a wire.") - .addInstallCost(Config.copyAndResize(ItemComponent.wiring, 2)) - .addInstallCost(Config.copyAndResize(ItemComponent.solenoid, 1)); + .addInstallCost(Config.copyAndResize(ItemComponent.wiring, 2)).addInstallCost(Config.copyAndResize(ItemComponent.solenoid, 1)); ModuleManager.addModule(module); } if (ModCompatability.isAtomicScienceLoaded()) { - IPowerModule module = new ToggleablePowerModule(MuseCommonStrings.MODULE_HAZMAT, - Arrays.asList((IModularItem) ModularPowersuits.powerArmorHead, (IModularItem) ModularPowersuits.powerArmorTorso, - (IModularItem) ModularPowersuits.powerArmorLegs, (IModularItem) ModularPowersuits.powerArmorFeet), - MuseIcon.FIELD_EMITTER_GREEN, MuseCommonStrings.CATEGORY_ARMOR) + IPowerModule module = new ToggleablePowerModule(MuseCommonStrings.MODULE_HAZMAT, Arrays.asList( + (IModularItem) ModularPowersuits.powerArmorHead, (IModularItem) ModularPowersuits.powerArmorTorso, + (IModularItem) ModularPowersuits.powerArmorLegs, (IModularItem) ModularPowersuits.powerArmorFeet), MuseIcon.FIELD_EMITTER_GREEN, + MuseCommonStrings.CATEGORY_ARMOR) .setDescription("Protect yourself from that pesky radiation poisoning. *Must be on every piece*") - .addInstallCost(Config.copyAndResize(ItemComponent.basicPlating, 3)) - .addBaseProperty(MuseCommonStrings.WEIGHT, 0.5); + .addInstallCost(Config.copyAndResize(ItemComponent.basicPlating, 3)).addBaseProperty(MuseCommonStrings.WEIGHT, 0.5); ModuleManager.addModule(module); } } public static ItemStack getThermexItem(String string, int quantity) { - try { - ItemStack item = thermalexpansion.api.core.ItemRegistry.getItem(string, quantity); - if (item != null) { - return item; - } - } catch (Exception e) { - } - thermalexpansion.api.core.ItemRegistry.printItemNames(); - MuseLogger.logError("Failed to get Thermal Expansion item " + string); + // try { + // ItemStack item = thermalexpansion.api.core.ItemRegistry.getItem(string, quantity); + // if (item != null) { + // return item; + // } + // } catch (Exception e) { + // } + // thermalexpansion.api.core.ItemRegistry.printItemNames(); + // MuseLogger.logError("Failed to get Thermal Expansion item " + string); return null; } } diff --git a/src/minecraft/net/machinemuse/powersuits/common/RecipeManager.java b/src/minecraft/net/machinemuse/powersuits/common/RecipeManager.java index 5bfd74b..d9f26d2 100644 --- a/src/minecraft/net/machinemuse/powersuits/common/RecipeManager.java +++ b/src/minecraft/net/machinemuse/powersuits/common/RecipeManager.java @@ -1,6 +1,5 @@ package net.machinemuse.powersuits.common; -import ic2.api.Ic2Recipes; import net.machinemuse.powersuits.item.ItemComponent; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -39,147 +38,53 @@ public class RecipeManager { ItemStack stone = new ItemStack(Block.stone); if (ModCompatability.vanillaRecipesEnabled()) { - GameRegistry.addRecipe(ItemComponent.basicPlating, - "II", - "CI", - "II", - 'C', ItemComponent.wiring, - 'I', iron); + GameRegistry.addRecipe(ItemComponent.basicPlating, "II", "CI", "II", 'C', ItemComponent.wiring, 'I', iron); - GameRegistry.addRecipe(ItemComponent.advancedPlating, - "II", - "CI", - "II", - 'C', ItemComponent.solenoid, - 'I', diamond); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.controlCircuit, true, - "WCI", - "RGC", - "IRW", - 'W', ItemComponent.wiring, - 'C', cactusgreen, - 'I', ingotGold, - 'G', glowstone, - 'R', redstone)); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(iron, 5), true, - "P", 'P', ItemComponent.basicPlating)); + GameRegistry.addRecipe(ItemComponent.advancedPlating, "II", "CI", "II", 'C', ItemComponent.solenoid, 'I', diamond); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.controlCircuit, true, "WCI", "RGC", "IRW", 'W', ItemComponent.wiring, 'C', + cactusgreen, 'I', ingotGold, 'G', glowstone, 'R', redstone)); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(iron, 5), true, "P", 'P', ItemComponent.basicPlating)); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(diamond, 5), true, - "P", 'P', ItemComponent.advancedPlating)); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(diamond, 5), true, "P", 'P', ItemComponent.advancedPlating)); - GameRegistry.addRecipe(ItemComponent.laserHologram, - "YTG", - "TWT", - "BTR", - 'W', ItemComponent.wiring, - 'T', glass, - 'Y', glowstone, - 'G', cactusgreen, - 'B', lapis, - 'R', rosered); + GameRegistry.addRecipe(ItemComponent.laserHologram, "YTG", "TWT", "BTR", 'W', ItemComponent.wiring, 'T', glass, 'Y', glowstone, 'G', + cactusgreen, 'B', lapis, 'R', rosered); - GameRegistry.addRecipe(new ItemStack(ModularPowersuits.tinkerTable), - "ILI", - "LEL", - "ILI", - 'I', iron, 'L', lapis, 'E', emerald); + GameRegistry.addRecipe(new ItemStack(ModularPowersuits.tinkerTable), "ILI", "LEL", "ILI", 'I', iron, 'L', lapis, 'E', emerald); - GameRegistry.addRecipe(new ItemStack(ModularPowersuits.powerArmorHead), - "III", - "C C", - 'I', iron, 'C', circuit); + GameRegistry.addRecipe(new ItemStack(ModularPowersuits.powerArmorHead), "III", "C C", 'I', iron, 'C', circuit); - GameRegistry.addRecipe(new ItemStack(ModularPowersuits.powerArmorTorso), - "I I", - "CIC", - "III", - 'I', iron, 'C', circuit); + GameRegistry.addRecipe(new ItemStack(ModularPowersuits.powerArmorTorso), "I I", "CIC", "III", 'I', iron, 'C', circuit); - GameRegistry.addRecipe(new ItemStack(ModularPowersuits.powerArmorLegs), - "III", - "C C", - "I I", - 'I', iron, 'C', circuit); + GameRegistry.addRecipe(new ItemStack(ModularPowersuits.powerArmorLegs), "III", "C C", "I I", 'I', iron, 'C', circuit); - GameRegistry.addRecipe(new ItemStack(ModularPowersuits.powerArmorFeet), - "C C", - "I I", - 'I', iron, 'C', circuit); + GameRegistry.addRecipe(new ItemStack(ModularPowersuits.powerArmorFeet), "C C", "I I", 'I', iron, 'C', circuit); - GameRegistry.addRecipe(new ItemStack(ModularPowersuits.powerTool), - " C ", - "CI ", - " IC", - 'I', iron, 'C', circuit); + GameRegistry.addRecipe(new ItemStack(ModularPowersuits.powerTool), " C ", "CI ", " IC", 'I', iron, 'C', circuit); - GameRegistry.addRecipe(copyAndResize(ItemComponent.wiring, 8), - "GRG", 'G', goldNugget, 'R', redstone); + GameRegistry.addRecipe(copyAndResize(ItemComponent.wiring, 8), "GRG", 'G', goldNugget, 'R', redstone); - GameRegistry.addRecipe(ItemComponent.parachute, - "WWW", "S S", 'W', wool, 'S', string); + GameRegistry.addRecipe(ItemComponent.parachute, "WWW", "S S", 'W', wool, 'S', string); - GameRegistry.addRecipe(ItemComponent.lvcapacitor, - "WPI", - "W W", - 'W', ItemComponent.wiring, - 'I', iron, - 'P', paper, - 'L', lapis); + GameRegistry.addRecipe(ItemComponent.lvcapacitor, "WPI", "W W", 'W', ItemComponent.wiring, 'I', iron, 'P', paper, 'L', lapis); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.mvcapacitor, - "GPL", - "W W", - 'W', ItemComponent.wiring, - 'G', goldNugget, - 'P', paper, - 'L', lapis)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.hvcapacitor, - "EPG", - "W W", - 'W', ItemComponent.wiring, - 'E', enderPearl, - 'P', glass, - 'G', glowstone)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.mvcapacitor, "GPL", "W W", 'W', ItemComponent.wiring, 'G', goldNugget, 'P', + paper, 'L', lapis)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.hvcapacitor, "EPG", "W W", 'W', ItemComponent.wiring, 'E', enderPearl, 'P', + glass, 'G', glowstone)); - GameRegistry.addRecipe(ItemComponent.solenoid, - "WIW", - "WIW", - "WIW", - 'W', ItemComponent.wiring, - 'I', iron); + GameRegistry.addRecipe(ItemComponent.solenoid, "WIW", "WIW", "WIW", 'W', ItemComponent.wiring, 'I', iron); - GameRegistry.addRecipe(ItemComponent.gliderWing, - " II", - "II ", - "I ", - 'I', iron); + GameRegistry.addRecipe(ItemComponent.gliderWing, " II", "II ", "I ", 'I', iron); - GameRegistry.addRecipe(ItemComponent.servoMotor, - " W ", - "EIE", - 'I', iron, 'E', ItemComponent.solenoid, 'W', ItemComponent.wiring); + GameRegistry.addRecipe(ItemComponent.servoMotor, " W ", "EIE", 'I', iron, 'E', ItemComponent.solenoid, 'W', ItemComponent.wiring); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.fieldEmitter, true, - "SES", - "ESE", - "SES", - 'S', ItemComponent.solenoid, - 'E', enderPearl)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.fieldEmitter, true, "SES", "ESE", "SES", 'S', ItemComponent.solenoid, 'E', + enderPearl)); - GameRegistry.addRecipe(ItemComponent.ionThruster, - " FE", - "IG ", - "IFE", - 'I', iron, - 'E', ItemComponent.solenoid, - 'G', glowstone, - 'F', ItemComponent.fieldEmitter); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solarPanel, - "PPP", - "PLP", - "PPP", - 'P', glassPane, - 'L', lapis)); + GameRegistry.addRecipe(ItemComponent.ionThruster, " FE", "IG ", "IFE", 'I', iron, 'E', ItemComponent.solenoid, 'G', glowstone, 'F', + ItemComponent.fieldEmitter); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solarPanel, "PPP", "PLP", "PPP", 'P', glassPane, 'L', lapis)); } if (ModCompatability.UERecipesEnabled() && ModCompatability.isBasicComponentsLoaded()) { @@ -190,145 +95,63 @@ public class RecipeManager { try { ItemStack steelIngot = OreDictionary.getOres("ingotSteel").get(0); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(steelIngot, 5), true, - "P", 'P', ItemComponent.basicPlating)); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(steelIngot, 5), true, "P", 'P', ItemComponent.basicPlating)); } catch (Exception e) { MuseLogger.logError("Unable to load steel plate"); } - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.controlCircuit, true, - "WC ", - "RGC", - " RW", - 'W', ItemComponent.wiring, - 'C', basicCircuit, - 'G', glowstone, - 'R', redstone)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.laserHologram, true, - "YTG", - "TWT", - "BTR", - 'W', ItemComponent.wiring, - 'T', glass, - 'Y', glowstone, - 'G', cactusgreen, - 'B', lapis, - 'R', rosered)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.basicPlating, true, - "II", - "CI", - "II", - 'C', ItemComponent.wiring, - 'I', "ingotSteel")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.controlCircuit, true, "WC ", "RGC", " RW", 'W', ItemComponent.wiring, 'C', + basicCircuit, 'G', glowstone, 'R', redstone)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.laserHologram, true, "YTG", "TWT", "BTR", 'W', ItemComponent.wiring, 'T', glass, + 'Y', glowstone, 'G', cactusgreen, 'B', lapis, 'R', rosered)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.basicPlating, true, "II", "CI", "II", 'C', ItemComponent.wiring, 'I', + "ingotSteel")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.advancedPlating, true, - "II", - "CI", - "II", - 'C', "basicCircuit", - 'I', diamond)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.advancedPlating, true, "II", "CI", "II", 'C', "basicCircuit", 'I', diamond)); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(diamond, 5), true, - "P", 'P', ItemComponent.advancedPlating)); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(diamond, 5), true, "P", 'P', ItemComponent.advancedPlating)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.tinkerTable), true, - "ILI", - "LEL", - "ILI", - 'I', "plateSteel", 'L', lapisBlock, 'E', emerald)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.tinkerTable), true, "ILI", "LEL", "ILI", 'I', "plateSteel", + 'L', lapisBlock, 'E', emerald)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorHead), true, - "III", - "C C", - 'I', "plateSteel", 'C', "basicCircuit")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorHead), true, "III", "C C", 'I', "plateSteel", 'C', + "basicCircuit")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorTorso), true, - "I I", - "CIC", - "III", - 'I', "plateSteel", 'C', "basicCircuit")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorTorso), true, "I I", "CIC", "III", 'I', + "plateSteel", 'C', "basicCircuit")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorLegs), true, - "III", - "C C", - "I I", - 'I', "plateSteel", 'C', "basicCircuit")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorLegs), true, "III", "C C", "I I", 'I', "plateSteel", + 'C', "basicCircuit")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorFeet), true, - "C C", - "I I", - 'I', "plateSteel", 'C', "basicCircuit")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorFeet), true, "C C", "I I", 'I', "plateSteel", 'C', + "basicCircuit")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerTool), true, - " C ", - "CI ", - " IC", - 'I', "plateSteel", 'C', "basicCircuit")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerTool), true, " C ", "CI ", " IC", 'I', "plateSteel", 'C', + "basicCircuit")); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(ItemComponent.wiring, 4), true, - "GWG", 'G', goldNugget, 'W', "copperWire")); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(ItemComponent.wiring, 4), true, "GWG", 'G', goldNugget, 'W', "copperWire")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.parachute, true, - "WWW", - "S S", 'W', wool, 'S', string)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.parachute, true, "WWW", "S S", 'W', wool, 'S', string)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.lvcapacitor, - "WBW", - 'W', ItemComponent.wiring, - 'B', "battery")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.mvcapacitor, - "WBW", - 'W', ItemComponent.wiring, - 'B', "advancedBattery")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.hvcapacitor, - "WBW", - 'W', ItemComponent.wiring, - 'B', "eliteBattery")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.lvcapacitor, "WBW", 'W', ItemComponent.wiring, 'B', "battery")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.mvcapacitor, "WBW", 'W', ItemComponent.wiring, 'B', "advancedBattery")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.hvcapacitor, "WBW", 'W', ItemComponent.wiring, 'B', "eliteBattery")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solenoid, true, - "WIW", - "WIW", - "WIW", - 'W', ItemComponent.wiring, - 'I', iron)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solenoid, true, "WIW", "WIW", "WIW", 'W', ItemComponent.wiring, 'I', iron)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.gliderWing, true, - " SI", - "SI ", - "S ", - 'I', iron, 'S', "plateSteel")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.gliderWing, true, " SI", "SI ", "S ", 'I', iron, 'S', "plateSteel")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.servoMotor, true, - " C ", - "EIE", 'I', iron, 'E', ItemComponent.solenoid, 'C', "basicCircuit")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.servoMotor, true, " C ", "EIE", 'I', iron, 'E', ItemComponent.solenoid, 'C', + "basicCircuit")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.fieldEmitter, true, - "SES", - "ECE", - "SES", - 'S', ItemComponent.solenoid, - 'E', enderPearl, - 'C', "advancedCircuit")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.fieldEmitter, true, "SES", "ECE", "SES", 'S', ItemComponent.solenoid, 'E', + enderPearl, 'C', "advancedCircuit")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.ionThruster, true, - " FE", - "CG ", - "IFE", - 'I', - "plateSteel", - 'E', ItemComponent.solenoid, - 'G', glowstone, - 'C', "advancedCircuit", - 'F', ItemComponent.fieldEmitter)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.ionThruster, true, " FE", "CG ", "IFE", 'I', "plateSteel", 'E', + ItemComponent.solenoid, 'G', glowstone, 'C', "advancedCircuit", 'F', ItemComponent.fieldEmitter)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solarPanel, true, - "GGG", - "CLC", - "SSS", - 'G', glass, - 'C', basicCircuit, - 'L', lapisBlock, - 'S', "plateSteel")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solarPanel, true, "GGG", "CLC", "SSS", 'G', glass, 'C', basicCircuit, 'L', + lapisBlock, 'S', "plateSteel")); } if (ModCompatability.IC2RecipesEnabled() && ModCompatability.isIndustrialCraftLoaded()) { circuit = ModCompatability.getIC2Item("electronicCircuit"); @@ -349,154 +172,67 @@ public class RecipeManager { try { ItemStack refinedIron = OreDictionary.getOres("ingotRefinedIron").get(0); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(refinedIron, 5), true, - "P", 'P', ItemComponent.basicPlating)); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(refinedIron, 5), true, "P", 'P', ItemComponent.basicPlating)); } catch (Exception e) { MuseLogger.logError("Unable to load Refined Iron"); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(iron, 5), true, - "P", 'P', ItemComponent.basicPlating)); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(iron, 5), true, "P", 'P', ItemComponent.basicPlating)); } - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.controlCircuit, true, - "WC ", - "RGC", - " RW", - 'W', ItemComponent.wiring, - 'C', circuit, - 'G', glowstone, - 'R', redstone)); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(diamond, 5), true, - "P", 'P', ItemComponent.advancedPlating)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.controlCircuit, true, "WC ", "RGC", " RW", 'W', ItemComponent.wiring, 'C', + circuit, 'G', glowstone, 'R', redstone)); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(diamond, 5), true, "P", 'P', ItemComponent.advancedPlating)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.laserHologram, true, - "YTG", - "TWT", - "BTR", - 'W', ItemComponent.wiring, - 'T', glass, - 'Y', glowstone, - 'G', cactusgreen, - 'B', lapis, - 'R', rosered)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.laserHologram, true, "YTG", "TWT", "BTR", 'W', ItemComponent.wiring, 'T', glass, + 'Y', glowstone, 'G', cactusgreen, 'B', lapis, 'R', rosered)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.basicPlating, true, - "II", - "CI", - "II", - 'C', circuit, - 'I', "ingotRefinedIron")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.basicPlating, true, "II", "CI", "II", 'C', circuit, 'I', "ingotRefinedIron")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.advancedPlating, true, - "II", - "CI", - "II", - 'C', advCircuit, - 'I', diamond)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.advancedPlating, true, "II", "CI", "II", 'C', advCircuit, 'I', diamond)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.tinkerTable), true, - "E", - "C", - "M", - 'E', emerald, 'C', circuit.copy(), 'M', machine)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.tinkerTable), true, "E", "C", "M", 'E', emerald, 'C', circuit + .copy(), 'M', machine)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorHead), true, - "III", - "C C", - 'I', refIron, 'C', circuit.copy())); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorHead), true, "III", "C C", 'I', refIron, 'C', + circuit.copy())); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorTorso), true, - "I I", - "CIC", - "III", - 'I', refIron, 'C', circuit.copy())); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorTorso), true, "I I", "CIC", "III", 'I', refIron, + 'C', circuit.copy())); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorLegs), true, - "III", - "C C", - "I I", - 'I', refIron, 'C', circuit.copy())); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorLegs), true, "III", "C C", "I I", 'I', refIron, 'C', + circuit.copy())); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorFeet), true, - "C C", - "I I", - 'I', refIron, 'C', circuit.copy())); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorFeet), true, "C C", "I I", 'I', refIron, 'C', + circuit.copy())); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerTool), true, - " C ", - "CI ", - " IC", - 'I', refIron, 'C', circuit.copy())); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerTool), true, " C ", "CI ", " IC", 'I', refIron, 'C', + circuit.copy())); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(ItemComponent.wiring, 2), true, - "GRG", 'G', goldNugget.copy(), 'R', redstone)); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(ItemComponent.wiring, 2), true, "GRG", 'G', goldNugget.copy(), 'R', redstone)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.parachute, true, - "WWW", "S S", 'W', wool, 'S', string)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.parachute, true, "WWW", "S S", 'W', wool, 'S', string)); + // + // Ic2Recipes.addCraftingRecipe(ItemComponent.lvcapacitor, "WBW", 'W', ItemComponent.wiring.copy(), 'B', reBattery); + // + // Ic2Recipes.addCraftingRecipe(ItemComponent.lvcapacitor, "WBW", 'W', ItemComponent.wiring.copy(), 'B', fullBattery); + // + // Ic2Recipes.addCraftingRecipe(ItemComponent.mvcapacitor, "WBW", 'W', ItemComponent.wiring.copy(), 'B', energyCrystal); + // + // Ic2Recipes.addCraftingRecipe(ItemComponent.hvcapacitor, "WBW", 'W', ItemComponent.wiring.copy(), 'B', lapotronCrystal); - Ic2Recipes.addCraftingRecipe(ItemComponent.lvcapacitor, - "WBW", - 'W', ItemComponent.wiring.copy(), - 'B', reBattery); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solenoid, true, " W ", "WIW", " W ", 'W', ItemComponent.wiring, 'I', machine)); - Ic2Recipes.addCraftingRecipe(ItemComponent.lvcapacitor, - "WBW", - 'W', ItemComponent.wiring.copy(), - 'B', fullBattery); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.gliderWing, true, " CC", "CCI", "C ", 'C', carbonPlate.copy(), 'I', + ItemComponent.solenoid)); - Ic2Recipes.addCraftingRecipe(ItemComponent.mvcapacitor, - "WBW", - 'W', ItemComponent.wiring.copy(), - 'B', energyCrystal); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.servoMotor, true, " W ", "EME", 'M', machine.copy(), 'E', + ItemComponent.solenoid, 'W', circuit.copy())); - Ic2Recipes.addCraftingRecipe(ItemComponent.hvcapacitor, - "WBW", - 'W', ItemComponent.wiring.copy(), - 'B', lapotronCrystal); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.fieldEmitter, true, "SES", "ECE", "SES", 'S', ItemComponent.solenoid, 'E', + enderPearl, 'C', advCircuit)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solenoid, true, - " W ", - "WIW", - " W ", - 'W', ItemComponent.wiring, - 'I', machine)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.ionThruster, true, " FE", "MG ", "CFE", 'I', iron, 'E', ItemComponent.solenoid, + 'F', ItemComponent.fieldEmitter, 'G', glowstone, 'C', advCircuit.copy(), 'M', advMachine.copy())); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.gliderWing, true, - " CC", - "CCI", - "C ", - 'C', carbonPlate.copy(), - 'I', ItemComponent.solenoid)); - - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.servoMotor, true, - " W ", - "EME", - 'M', machine.copy(), 'E', ItemComponent.solenoid, 'W', circuit.copy())); - - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.fieldEmitter, true, - "SES", - "ECE", - "SES", - 'S', ItemComponent.solenoid, - 'E', enderPearl, - 'C', advCircuit)); - - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.ionThruster, true, - " FE", - "MG ", - "CFE", - 'I', iron, - 'E', ItemComponent.solenoid, - 'F', ItemComponent.fieldEmitter, - 'G', glowstone, - 'C', advCircuit.copy(), - 'M', advMachine.copy())); - - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solarPanel, true, - "LGL", - "GLG", - "CBC", - 'L', lapis, - 'G', glass, - 'C', circuit, + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solarPanel, true, "LGL", "GLG", "CBC", 'L', lapis, 'G', glass, 'C', circuit, 'B', gen)); } if (ModCompatability.GregTechRecipesEnabled() && ModCompatability.isIndustrialCraftLoaded() && ModCompatability.isGregTechLoaded()) { @@ -521,191 +257,93 @@ public class RecipeManager { try { ItemStack titanium = OreDictionary.getOres("ingotSteel").get(0); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(titanium, 5), true, - "P", 'P', ItemComponent.basicPlating)); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(titanium, 5), true, "P", 'P', ItemComponent.basicPlating)); } catch (Exception e) { MuseLogger.logError("Unable to load ingotSteel"); } try { ItemStack iridium = OreDictionary.getOres("ingotTitanium").get(0); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(iridium, 5), true, - "P", 'P', ItemComponent.advancedPlating)); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(iridium, 5), true, "P", 'P', ItemComponent.advancedPlating)); } catch (Exception e) { MuseLogger.logError("Unable to load ingotTitanium"); } - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.controlCircuit, true, - "WCI", - "RGC", - "IRW", - 'W', ItemComponent.wiring, - 'C', advancedCircuit, - 'G', energyFlowCircuit, - 'R', dataStorageCircuit, - 'I', "ingotElectrum")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.controlCircuit, true, "WCI", "RGC", "IRW", 'W', ItemComponent.wiring, 'C', + advancedCircuit, 'G', energyFlowCircuit, 'R', dataStorageCircuit, 'I', "ingotElectrum")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.laserHologram, true, - "LLL", - "RGB", - "LLL", - 'L', luminator, - 'R', "gemRuby", - 'G', "gemGreenSapphire", - 'B', "gemSapphire")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.laserHologram, true, "LLL", "RGB", "LLL", 'L', luminator, 'R', "gemRuby", 'G', + "gemGreenSapphire", 'B', "gemSapphire")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.basicPlating, true, - "II", - "CI", - "II", - 'C', "circuitTier02", - 'I', "ingotSteel")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.basicPlating, true, "II", "CI", "II", 'C', "circuitTier02", 'I', "ingotSteel")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.advancedPlating, true, - "II", - "CI", - "II", - 'C', "circuitTier04", - 'I', "ingotTitanium")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.advancedPlating, true, "II", "CI", "II", 'C', "circuitTier04", 'I', + "ingotTitanium")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.tinkerTable), true, - "CVC", - "IEI", - "IMI", - 'C', advancedCircuit, - 'E', emerald, - 'V', computerMonitor, - 'I', refinedIron, - 'M', advancedMachine)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.tinkerTable), true, "CVC", "IEI", "IMI", 'C', advancedCircuit, + 'E', emerald, 'V', computerMonitor, 'I', refinedIron, 'M', advancedMachine)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorHead), true, - "ACA", - "MVM", - 'A', "ingotAluminium", - 'C', dataStorageCircuit, - 'M', machineParts, - 'V', computerMonitor)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorHead), true, "ACA", "MVM", 'A', "ingotAluminium", + 'C', dataStorageCircuit, 'M', machineParts, 'V', computerMonitor)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorTorso), true, - "AMA", - "ACA", - "AAA", - 'A', "ingotAluminium", - 'C', dataStorageCircuit, - 'M', machineParts)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorTorso), true, "AMA", "ACA", "AAA", 'A', + "ingotAluminium", 'C', dataStorageCircuit, 'M', machineParts)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorLegs), true, - "MCM", - "A A", - "A A", - 'A', "ingotAluminium", - 'C', dataStorageCircuit, - 'M', machineParts)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorLegs), true, "MCM", "A A", "A A", 'A', + "ingotAluminium", 'C', dataStorageCircuit, 'M', machineParts)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorFeet), true, - "M M", - "ACA", - 'A', "ingotAluminium", - 'C', dataStorageCircuit, - 'M', machineParts)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorFeet), true, "M M", "ACA", 'A', "ingotAluminium", + 'C', dataStorageCircuit, 'M', machineParts)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerTool), true, - "A A", - "AMA", - " C ", - 'A', "ingotAluminium", - 'C', dataStorageCircuit, - 'M', machineParts)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerTool), true, "A A", "AMA", " C ", 'A', "ingotAluminium", + 'C', dataStorageCircuit, 'M', machineParts)); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(ItemComponent.wiring, 2), true, - "CCC", - "SSS", - "CCC", - 'C', uninsulatedCopper, + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(ItemComponent.wiring, 2), true, "CCC", "SSS", "CCC", 'C', uninsulatedCopper, 'S', "ingotSilver")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.parachute, true, - "WWW", - "S S", - "CNC", - 'W', wool, - 'S', string, - 'C', carbonPlate, + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.parachute, true, "WWW", "S S", "CNC", 'W', wool, 'S', string, 'C', carbonPlate, 'N', nitrogen)); + // + // Ic2Recipes.addCraftingRecipe(ItemComponent.lvcapacitor, + // "IWI", + // "IBI", + // "IBI", + // 'W', ItemComponent.wiring, + // 'I', refinedIron, + // 'B', "100kEUStore"); // Lithium battery + // + // Ic2Recipes.addCraftingRecipe(ItemComponent.mvcapacitor, + // "IWI", + // "IBI", + // "IBI", + // 'W', ItemComponent.wiring, + // 'I', "ingotTitanium", + // 'B', "1kkEUStore"); // Lapotron crystal + // + // Ic2Recipes.addCraftingRecipe(ItemComponent.hvcapacitor, + // "IWI", + // "IBI", + // "IBI", + // 'W', ItemComponent.wiring, + // 'I', "ingotChrome", + // 'B', "10kkEUStore"); // Lapotronic EnergyOrb - Ic2Recipes.addCraftingRecipe(ItemComponent.lvcapacitor, - "IWI", - "IBI", - "IBI", - 'W', ItemComponent.wiring, - 'I', refinedIron, - 'B', "100kEUStore"); // Lithium battery + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solenoid, true, "WSW", "WSW", "WSW", 'W', ItemComponent.wiring, 'S', + "ingotSteel")); - Ic2Recipes.addCraftingRecipe(ItemComponent.mvcapacitor, - "IWI", - "IBI", - "IBI", - 'W', ItemComponent.wiring, - 'I', "ingotTitanium", - 'B', "1kkEUStore"); // Lapotron crystal + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.gliderWing, true, " MC", "MPI", "M ", 'P', carbonPlate, 'M', "plateMagnalium", + 'I', ItemComponent.solenoid, 'C', advancedCircuit)); - Ic2Recipes.addCraftingRecipe(ItemComponent.hvcapacitor, - "IWI", - "IBI", - "IBI", - 'W', ItemComponent.wiring, - 'I', "ingotChrome", - 'B', "10kkEUStore"); // Lapotronic EnergyOrb + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.servoMotor, true, "IBI", "CSC", "IBI", 'I', "ingotSteel", 'B', "ingotBrass", + 'C', advancedCircuit, 'S', ItemComponent.solenoid)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solenoid, true, - "WSW", - "WSW", - "WSW", - 'W', ItemComponent.wiring, - 'S', "ingotSteel")); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.fieldEmitter, true, "ISI", "CUC", "ISI", 'I', "ingotTungstenSteel", 'S', + ItemComponent.solenoid, 'U', energyFlowCircuit, 'C', "itemSuperconductor")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.gliderWing, true, - " MC", - "MPI", - "M ", - 'P', carbonPlate, - 'M', "plateMagnalium", - 'I', ItemComponent.solenoid, - 'C', advancedCircuit)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.ionThruster, true, "ISI", "FCF", "N N", 'I', "plateIridium", 'S', + "itemSuperconductor", 'N', neutronReflector, 'C', ItemComponent.hvcapacitor, 'F', ItemComponent.fieldEmitter)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.servoMotor, true, - "IBI", - "CSC", - "IBI", - 'I', "ingotSteel", - 'B', "ingotBrass", - 'C', advancedCircuit, - 'S', ItemComponent.solenoid)); - - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.fieldEmitter, true, - "ISI", - "CUC", - "ISI", - 'I', "ingotTungstenSteel", - 'S', ItemComponent.solenoid, - 'U', energyFlowCircuit, - 'C', "itemSuperconductor")); - - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.ionThruster, true, - "ISI", - "FCF", - "N N", - 'I', "plateIridium", - 'S', "itemSuperconductor", - 'N', neutronReflector, - 'C', ItemComponent.hvcapacitor, - 'F', ItemComponent.fieldEmitter)); - - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solarPanel, true, - "GGG", - "PCP", - 'G', reinforcedGlass, - 'P', "plateIridium", - 'C', energyFlowCircuit)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solarPanel, true, "GGG", "PCP", 'G', reinforcedGlass, 'P', "plateIridium", 'C', + energyFlowCircuit)); } if (ModCompatability.ThermalExpansionRecipesEnabled() && ModCompatability.isThermalExpansionLoaded()) { ItemStack pneumaticServo = ModCompatability.getThermexItem("pneumaticServo", 1); @@ -743,163 +381,63 @@ public class RecipeManager { // MuseLogger.logError("Unable to load Iridium Plate"); // } - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.controlCircuit, true, - "EGW", - "RWG", - "WRE", - 'E', "ingotElectrum", - 'W', ItemComponent.wiring, - 'G', glowstone, - 'R', redstone)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.controlCircuit, true, "EGW", "RWG", "WRE", 'E', "ingotElectrum", 'W', + ItemComponent.wiring, 'G', glowstone, 'R', redstone)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.laserHologram, true, - "RGB", - " H ", - "WLW", - 'W', ItemComponent.wiring, - 'L', powerCoilGold, - 'H', glass, - 'R', rosered, - 'G', cactusgreen, - 'B', lapis)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.laserHologram, true, "RGB", " H ", "WLW", 'W', ItemComponent.wiring, 'L', + powerCoilGold, 'H', glass, 'R', rosered, 'G', cactusgreen, 'B', lapis)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.basicPlating, true, - "II", - "CI", - "II", - 'C', gearTin, - 'I', iron)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.basicPlating, true, "II", "CI", "II", 'C', gearTin, 'I', iron)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.advancedPlating, true, - "II", - "CI", - "II", - 'C', gearInvar, - 'I', diamond)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.advancedPlating, true, "II", "CI", "II", 'C', gearInvar, 'I', diamond)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.tinkerTable), true, - " E ", - "IMI", - " R ", - 'R', powerCoilSilver, - 'M', machineFrame, - 'E', emerald, - 'I', "ingotElectrum")); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.tinkerTable), true, " E ", "IMI", " R ", 'R', powerCoilSilver, + 'M', machineFrame, 'E', emerald, 'I', "ingotElectrum")); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorHead), true, - "III", - "W W", - 'I', iron, - 'W', ItemComponent.wiring)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorHead), true, "III", "W W", 'I', iron, 'W', + ItemComponent.wiring)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorTorso), true, - "I I", - "WIW", - "III", - 'I', iron, - 'W', ItemComponent.wiring)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorTorso), true, "I I", "WIW", "III", 'I', iron, 'W', + ItemComponent.wiring)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorLegs), true, - "III", - "W W", - "I I", - 'I', iron, - 'W', ItemComponent.wiring)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorLegs), true, "III", "W W", "I I", 'I', iron, 'W', + ItemComponent.wiring)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorFeet), true, - "W W", - "I I", - 'I', iron, - 'W', ItemComponent.wiring)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerArmorFeet), true, "W W", "I I", 'I', iron, 'W', + ItemComponent.wiring)); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerTool), true, - " I ", - "IEI", - " W ", - 'W', ItemComponent.wiring, - 'E', "ingotElectrum", - 'I', iron)); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModularPowersuits.powerTool), true, " I ", "IEI", " W ", 'W', + ItemComponent.wiring, 'E', "ingotElectrum", 'I', iron)); - GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(ItemComponent.wiring, 8), true, - "CCC", - "SSS", - "CCC", - 'C', "ingotCopper", - 'S', "ingotSilver")); + GameRegistry.addRecipe(new ShapedOreRecipe(copyAndResize(ItemComponent.wiring, 8), true, "CCC", "SSS", "CCC", 'C', "ingotCopper", 'S', + "ingotSilver")); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.parachute, true, - "WWW", - "S S", - " O ", - 'W', wool, - 'S', string, - 'O', pneumaticServo)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.parachute, true, "WWW", "S S", " O ", 'W', wool, 'S', string, 'O', + pneumaticServo)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.lvcapacitor, - "CPT", - "W W", - 'W', ItemComponent.wiring, - 'C', "ingotSilver", - 'T', "ingotGold", - 'P', paper)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.lvcapacitor, "CPT", "W W", 'W', ItemComponent.wiring, 'C', "ingotSilver", 'T', + "ingotGold", 'P', paper)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.mvcapacitor, - "WRW", - 'W', ItemComponent.wiring, - 'R', conduitEnergy)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.mvcapacitor, "WRW", 'W', ItemComponent.wiring, 'R', conduitEnergy)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.hvcapacitor, - "WRW", - 'W', ItemComponent.wiring, - 'R', energyFrameFull)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.hvcapacitor, "WRW", 'W', ItemComponent.wiring, 'R', energyFrameFull)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solenoid, true, - "WSW", - "WSW", - "WSW", - 'W', ItemComponent.wiring, - 'S', iron)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solenoid, true, "WSW", "WSW", "WSW", 'W', ItemComponent.wiring, 'S', iron)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.gliderWing, true, - " GG", - "GGI", - "G ", - 'G', compressedSawdust, - 'I', ItemComponent.solenoid)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.gliderWing, true, " GG", "GGI", "G ", 'G', compressedSawdust, 'I', + ItemComponent.solenoid)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.servoMotor, true, - " O ", - "WSW", - " O ", - 'O', ItemComponent.solenoid, - 'S', pneumaticServo, - 'W', ItemComponent.wiring)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.servoMotor, true, " O ", "WSW", " O ", 'O', ItemComponent.solenoid, 'S', + pneumaticServo, 'W', ItemComponent.wiring)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.fieldEmitter, true, - " W ", - "OUO", - " W ", - 'W', ItemComponent.wiring, - 'O', ItemComponent.solenoid, - 'U', teleportFrameFull)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.fieldEmitter, true, " W ", "OUO", " W ", 'W', ItemComponent.wiring, 'O', + ItemComponent.solenoid, 'U', teleportFrameFull)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.ionThruster, true, - " FI", - "IG ", - "WFI", - 'I', "ingotInvar", - 'G', glowstone, - 'W', ItemComponent.wiring, - 'F', ItemComponent.fieldEmitter)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.ionThruster, true, " FI", "IG ", "WFI", 'I', "ingotInvar", 'G', glowstone, 'W', + ItemComponent.wiring, 'F', ItemComponent.fieldEmitter)); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solarPanel, true, - "GGG", - "CLC", - " E ", - 'G', glass, - 'L', new ItemStack(Block.blockLapis), - 'C', conduitEnergy, - 'E', powerCoilSilver)); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemComponent.solarPanel, true, "GGG", "CLC", " E ", 'G', glass, 'L', new ItemStack( + Block.blockLapis), 'C', conduitEnergy, 'E', powerCoilSilver)); } } } diff --git a/src/minecraft/net/machinemuse/powersuits/item/ItemComponent.java b/src/minecraft/net/machinemuse/powersuits/item/ItemComponent.java index 58bcc33..2a404f3 100644 --- a/src/minecraft/net/machinemuse/powersuits/item/ItemComponent.java +++ b/src/minecraft/net/machinemuse/powersuits/item/ItemComponent.java @@ -6,15 +6,19 @@ import java.util.List; import net.machinemuse.general.MuseStringUtils; import net.machinemuse.general.gui.MuseIcon; import net.machinemuse.powersuits.common.Config; +import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.Icon; import net.minecraft.util.MathHelper; import cpw.mods.fml.common.registry.LanguageRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class ItemComponent extends Item { - public static List icons; + public static List icons; public static List names; public static List descriptions; @@ -43,16 +47,15 @@ public class ItemComponent extends Item { this.setHasSubtypes(true); this.setMaxDamage(0); this.setCreativeTab(Config.getCreativeTab()); - icons = new ArrayList(); - names = new ArrayList(); - descriptions = new ArrayList(); + icons = new ArrayList(); + names = new ArrayList(); + descriptions = new ArrayList(); } public ItemStack addComponent(String oredictName, String englishName, String description, MuseIcon icon) { names.add(oredictName); - icons.add(icon.getIconIndex()); + icons.add(icon); descriptions.add(description); - this.setTextureFile(icon.getTexturefile()); ItemStack stack = new ItemStack(this, 1, names.size() - 1); LanguageRegistry.addName(stack, englishName); return stack; @@ -61,10 +64,7 @@ public class ItemComponent extends Item { public void addInformation(ItemStack stack, EntityPlayer player, List currentTipList, boolean advancedToolTips) { if (Config.doAdditionalInfo()) { String message = "For use in Tinker Table."; - message = MuseStringUtils.wrapMultipleFormatTags( - message, - MuseStringUtils.FormatCodes.Grey, - MuseStringUtils.FormatCodes.Italic); + message = MuseStringUtils.wrapMultipleFormatTags(message, MuseStringUtils.FormatCodes.Grey, MuseStringUtils.FormatCodes.Italic); currentTipList.add(message); int damage = stack.getItemDamage(); if (damage < descriptions.size()) { @@ -114,32 +114,35 @@ public class ItemComponent extends Item { artificialMuscle = addComponent("componentArtificialMuscle", "Artificial Muscle", "An electrical, artificial muscle, with less range of movement than human muscle but orders of magnitude more strength.", MuseIcon.ARTIFICIAL_MUSCLE); - solarPanel = addComponent("componentSolarPanel", "Solar Panel", - "A light sensitive device that will generate electricity from the sun.", new MuseIcon(MuseIcon.WC_ICON_PATH, 229)); + solarPanel = addComponent("componentSolarPanel", "Solar Panel", "A light sensitive device that will generate electricity from the sun.", + new MuseIcon("blueplate")); } /** * Gets an icon index based on an item's damage value */ - public int getIconFromDamage(int index) - { - return icons.get(index); + public Icon getIconFromDamage(int index) { + return icons.get(index).getIconRegistration(); } - public String getItemNameIS(ItemStack par1ItemStack) - { + @Override + @SideOnly(Side.CLIENT) + public void updateIcons(IconRegister iconRegister) { + for (MuseIcon icon : icons) { + icon.register(iconRegister); + } + } + + public String getItemNameIS(ItemStack par1ItemStack) { int index = MathHelper.clamp_int(par1ItemStack.getItemDamage(), 0, names.size() - 1); return "powerArmorComponent." + names.get(index).replaceAll("\\s", ""); } /** - * returns a list of items with the same ID, but different meta (eg: dye - * returns 16 items). For creative tab. + * returns a list of items with the same ID, but different meta (eg: dye returns 16 items). For creative tab. */ - public void getSubItems(int itemID, CreativeTabs tab, List listToAddTo) - { - for (int i = 0; i < names.size(); ++i) - { + public void getSubItems(int itemID, CreativeTabs tab, List listToAddTo) { + for (int i = 0; i < names.size(); ++i) { listToAddTo.add(new ItemStack(itemID, 1, i)); } } diff --git a/src/minecraft/net/machinemuse/powersuits/item/ItemElectricArmor.java b/src/minecraft/net/machinemuse/powersuits/item/ItemElectricArmor.java new file mode 100644 index 0000000..68d99e6 --- /dev/null +++ b/src/minecraft/net/machinemuse/powersuits/item/ItemElectricArmor.java @@ -0,0 +1,176 @@ +package net.machinemuse.powersuits.item; + +import net.machinemuse.api.ElectricItemUtils; +import net.machinemuse.powersuits.common.ModCompatability; +import net.minecraft.item.EnumArmorMaterial; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; + +public class ItemElectricArmor extends ItemArmor +/** + * implements IItemElectric, // Universal Electricity ICustomElectricItem, // Industrial Craft 2 IEMPItem, // for ICBM EMP interfacing + * IAntiPoisonArmor, // for atomic science hazmat suits IChargeableItem // for Thermal Expansion + **/ + +{ + public ItemElectricArmor(int par1, EnumArmorMaterial par2EnumArmorMaterial, int par3, int par4) { + super(par1, par2EnumArmorMaterial, par3, par4); + } + + // ////////////////////////////////////////////// + // --- UNIVERSAL ELECTRICITY COMPATABILITY ---// + // ////////////////////////////////////////////// + public double onReceive(double amps, double voltage, ItemStack itemStack) { + double amount = 1;// ElectricInfo.getJoules(amps, voltage, 1); + return ElectricItemUtils.charge(amount, itemStack); + } + + public double onUse(double joulesNeeded, ItemStack itemStack) { + return ElectricItemUtils.discharge(joulesNeeded, itemStack); + } + + public double getJoules(Object... data) { + return ElectricItemUtils.getJoules(getAsStack(data)); + } + + public void setJoules(double joules, Object... data) { + ElectricItemUtils.setJoules(joules, getAsStack(data)); + } + + public double getMaxJoules(Object... data) { + return ElectricItemUtils.getMaxJoules(getAsStack(data)); + } + + public double getVoltage(Object... data) { + return ElectricItemUtils.getVoltage(getAsStack(data)); + } + + public boolean canReceiveElectricity() { + return true; + } + + public boolean canProduceElectricity() { + return true; + } + + /** + * Helper function to deal with UE's use of varargs + */ + private ItemStack getAsStack(Object[] data) { + if (data[0] instanceof ItemStack) { + return (ItemStack) data[0]; + } else { + throw new IllegalArgumentException("MusePowerSuits: Invalid ItemStack passed via UE interface"); + } + } + + // //////////////////////////////////////// // + // --- INDUSTRIAL CRAFT 2 COMPATABILITY --- // + // //////////////////////////////////////// // + public int charge(ItemStack stack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) { + double joulesProvided = ModCompatability.joulesFromEU(amount); + double maxJoules = ElectricItemUtils.getMaxJoules(stack); + if (!ignoreTransferLimit && (joulesProvided > maxJoules / 200.0)) { + joulesProvided = maxJoules / 200.0; + } + double currentJoules = ElectricItemUtils.getJoules(stack); + double surplus = ElectricItemUtils.charge(joulesProvided, stack); + if (simulate) { + ElectricItemUtils.setJoules(currentJoules, stack); + } + + return ModCompatability.joulesToEU(joulesProvided - surplus); + } + + public int discharge(ItemStack stack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) { + double joulesRequested = ModCompatability.joulesFromEU(amount); + double maxJoules = ElectricItemUtils.getMaxJoules(stack); + if (!ignoreTransferLimit && (joulesRequested > maxJoules / 200.0)) { + joulesRequested = maxJoules / 200.0; + } + double currentJoules = ElectricItemUtils.getJoules(stack); + double givenJoules = ElectricItemUtils.discharge(joulesRequested, stack); + if (simulate) { + ElectricItemUtils.setJoules(currentJoules, stack); + } + return ModCompatability.joulesToEU(givenJoules); + } + + public boolean canUse(ItemStack stack, int amount) { + double joulesRequested = ModCompatability.joulesFromEU(amount); + double currentJoules = ElectricItemUtils.getJoules(stack); + if (currentJoules > joulesRequested) { + return true; + } else { + return false; + } + } + + public boolean canShowChargeToolTip(ItemStack itemStack) { + return false; + } + + public boolean canProvideEnergy() { + return true; + } + + public int getChargedItemId() { + return this.itemID; + } + + public int getEmptyItemId() { + return this.itemID; + } + + public int getMaxCharge() { + return 1; + } + + public int getTier() { + return 1; + } + + public int getTransferLimit() { + return 0; + } + + // //////////// // + // --- ICBM --- // + // //////////// // + // public void onEMP(ItemStack itemStack, Entity entity, IExplosive empExplosive) { + // ElectricItemUtils.onEMP(itemStack, entity, empExplosive); + // } + + // ////////////////////// // + // --- Atomic Science --- // + // ////////////////////// // + // public boolean isProtectedFromPoison(ItemStack itemStack, EntityLiving entityLiving, Poison type) { + // return MuseItemUtils.itemHasModule(itemStack, MuseCommonStrings.MODULE_HAZMAT); + // } + + // public void onProtectFromPoison(ItemStack itemStack, EntityLiving entityLiving, Poison type) { + // } + + // ///////////////////////// // + // --- Thermal Expansion --- // + // ///////////////////////// // + public float receiveEnergy(ItemStack theItem, float energy, boolean doReceive) { + // TODO Auto-generated method stub + return 0; + } + + public float transferEnergy(ItemStack theItem, float energy, boolean doTransfer) { + // TODO Auto-generated method stub + return 0; + } + + public float getEnergyStored(ItemStack theItem) { + // TODO Auto-generated method stub + return 0; + } + + public float getMaxEnergyStored(ItemStack theItem) { + // TODO Auto-generated method stub + return 0; + } +} diff --git a/src/minecraft/net/machinemuse/powersuits/item/ItemElectricTool.java b/src/minecraft/net/machinemuse/powersuits/item/ItemElectricTool.java new file mode 100644 index 0000000..82d892d --- /dev/null +++ b/src/minecraft/net/machinemuse/powersuits/item/ItemElectricTool.java @@ -0,0 +1,232 @@ +package net.machinemuse.powersuits.item; + +import net.machinemuse.api.ElectricItemUtils; +import net.machinemuse.powersuits.common.ModCompatability; +import net.minecraft.block.Block; +import net.minecraft.item.EnumToolMaterial; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemTool; +import universalelectricity.core.electricity.ElectricityPack; +import universalelectricity.core.item.IItemElectric; + +public class ItemElectricTool extends ItemTool + +implements IItemElectric // Universal Electricity + +// ICustomElectricItem, // Industrial Craft 2 + +// IEMPItem, // for ICBM EMP interfacing + +// IChargeableItem // for Thermal Expansion +{ + + protected ItemElectricTool(int par1, int par2, EnumToolMaterial par3EnumToolMaterial, Block[] par4ArrayOfBlock) { + super(par1, par2, par3EnumToolMaterial, par4ArrayOfBlock); + } + + // //////////// // + // --- ICBM --- // + // //////////// // + // @Override + // public void onEMP(ItemStack itemStack, Entity entity, IExplosive empExplosive) { + // ElectricItemUtils.onEMP(itemStack, entity, empExplosive); + // } + + // ///////////////////////// // + // --- Thermal Expansion --- // + // ///////////////////////// // + + /** + * Adds energy to an item. Returns the quantity of energy that was accepted. This should always return 0 if the item cannot be externally charged. + * + * @param theItem + * ItemStack to be charged. + * @param energy + * Maximum amount of energy to be sent into the item. + * @param doReceive + * If false, the charge will only be simulated. + * @return Amount of energy that was accepted by the item. + */ + public float receiveEnergy(ItemStack stack, float energy, boolean doReceive) { + double offeredJoules = energy * ModCompatability.getBCRatio(); + double missingJoules = ElectricItemUtils.getMaxJoules(stack) - ElectricItemUtils.getJoules(stack); + double transferredJoules = Math.min(offeredJoules, missingJoules); + ElectricItemUtils.charge(transferredJoules, stack); + return (float) (transferredJoules / ModCompatability.getBCRatio()); + } + + /** + * Removes energy from an item. Returns the quantity of energy that was removed. This should always return 0 if the item cannot be externally + * discharged. + * + * @param theItem + * ItemStack to be discharged. + * @param energy + * Maximum amount of energy to be removed from the item. + * @param doTransfer + * If false, the discharge will only be simulated. + * @return Amount of energy that was removed from the item. + */ + public float transferEnergy(ItemStack stack, float energy, boolean doTransfer) { + double requestedJoules = energy * ModCompatability.getBCRatio(); + double availableJoules = ElectricItemUtils.getJoules(stack); + double transferredJoules = Math.min(requestedJoules, availableJoules); + ElectricItemUtils.discharge(transferredJoules, stack); + return (float) (transferredJoules / ModCompatability.getBCRatio()); + } + + /** + * Get the amount of energy currently stored in the item. + */ + public float getEnergyStored(ItemStack stack) { + return (float) (ModCompatability.getBCRatio() * ElectricItemUtils.getJoules(stack)); + } + + /** + * Get the max amount of energy that can be stored in the item. + */ + public float getMaxEnergyStored(ItemStack stack) { + return (float) (ModCompatability.getBCRatio() * ElectricItemUtils.getMaxJoules(stack)); + } + + // //////////////////////////////////////// // + // --- INDUSTRIAL CRAFT 2 COMPATABILITY --- // + // //////////////////////////////////////// // + public int charge(ItemStack stack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) { + double joulesProvided = ModCompatability.joulesFromEU(amount); + double currentJoules = ElectricItemUtils.getJoules(stack); + double surplus = ElectricItemUtils.charge(joulesProvided, stack); + if (simulate) { + ElectricItemUtils.setJoules(currentJoules, stack); + } + return ModCompatability.joulesToEU(joulesProvided - surplus); + } + + public int discharge(ItemStack stack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) { + + double joulesRequested = ModCompatability.joulesFromEU(amount); + double currentJoules = ElectricItemUtils.getJoules(stack); + double givenJoules = ElectricItemUtils.discharge(joulesRequested, stack); + if (simulate) { + ElectricItemUtils.setJoules(currentJoules, stack); + } + return ModCompatability.joulesToEU(givenJoules); + } + + public boolean canUse(ItemStack stack, int amount) { + double joulesRequested = ModCompatability.joulesFromEU(amount); + double currentJoules = ElectricItemUtils.getJoules(stack); + if (currentJoules > joulesRequested) { + return true; + } else { + return false; + } + } + + public boolean canShowChargeToolTip(ItemStack itemStack) { + return false; + } + + public boolean canProvideEnergy() { + return true; + } + + public int getChargedItemId() { + return this.itemID; + } + + public int getEmptyItemId() { + return this.itemID; + } + + public int getMaxCharge() { + return 1; + } + + public int getTier() { + return 1; + } + + public int getTransferLimit() { + return 0; + } + + // /////////////////////////////////////////// // + // --- UNIVERSAL ELECTRICITY COMPATABILITY --- // + // /////////////////////////////////////////// // + /** + * Called when this item receives electricity; being charged. + * + * @return The amount of electricity that was added to the electric item. + */ + public ElectricityPack onReceive(ElectricityPack electricityPack, ItemStack itemStack) { + return null; + } + + /** + * Called when something requests electricity from this item; being decharged. + * + * @return - The amount of electricity that was removed from the electric item. + */ + public ElectricityPack onProvide(ElectricityPack ep, ItemStack itemStack) { + return null; + } + + /** + * @return How much electricity does this item want to receive/take? This will affect the speed in which items get charged per tick. + */ + public ElectricityPack getReceiveRequest(ItemStack itemStack) { + return new ElectricityPack(Math.sqrt(getMaxJoules(itemStack)), getVoltage(itemStack)); + } + + /** + * + * @return How much electricity does this item want to provide/give out? This will affect the speed in which items get decharged per tick. + */ + public ElectricityPack getProvideRequest(ItemStack itemStack) { + return new ElectricityPack(Math.sqrt(getMaxJoules(itemStack)), getVoltage(itemStack)); + } + + @Override + public double getJoules(ItemStack itemStack) { + return ElectricItemUtils.getJoules(itemStack); + } + + @Override + public void setJoules(double joules, ItemStack itemStack) { + ElectricItemUtils.setJoules(joules, itemStack); + } + + @Override + public double getMaxJoules(ItemStack itemStack) { + return ElectricItemUtils.getMaxJoules(itemStack); + } + + @Override + public double getVoltage(ItemStack itemStack) { + return ElectricItemUtils.getVoltage(itemStack); + } + + public void setJoules(double joules, Object... data) { + } + + // public boolean canReceiveElectricity() { + // return true; + // } + // + // public boolean canProduceElectricity() { + // return true; + // } + + /** + * Helper function to deal with UE's use of varargs + */ + private ItemStack getAsStack(Object[] data) { + if (data[0] instanceof ItemStack) { + return (ItemStack) data[0]; + } else { + throw new IllegalArgumentException("MusePowerSuits: Invalid ItemStack passed via UE interface"); + } + } + +} diff --git a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmor.java b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmor.java index 75c8782..e54525a 100644 --- a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmor.java +++ b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmor.java @@ -1,9 +1,5 @@ package net.machinemuse.powersuits.item; -import ic2.api.ICustomElectricItem; -import icbm.api.explosion.IEMPItem; -import icbm.api.explosion.IExplosive; - import java.util.ArrayList; import java.util.List; @@ -14,25 +10,16 @@ import net.machinemuse.api.MuseCommonStrings; import net.machinemuse.api.MuseItemUtils; import net.machinemuse.general.MuseStringUtils; import net.machinemuse.general.geometry.Colour; -import net.machinemuse.general.gui.MuseIcon; import net.machinemuse.powersuits.common.Config; import net.machinemuse.powersuits.common.Config.Items; -import net.machinemuse.powersuits.common.ModCompatability; -import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumArmorMaterial; -import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.DamageSource; import net.minecraftforge.common.IArmorTextureProvider; import net.minecraftforge.common.ISpecialArmor; -import thermalexpansion.api.core.IChargeableItem; -import universalelectricity.core.electricity.ElectricInfo; -import universalelectricity.core.implement.IItemElectric; -import atomicscience.api.IAntiPoisonArmor; -import atomicscience.api.Poison; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -41,17 +28,8 @@ import cpw.mods.fml.relauncher.SideOnly; * * @author MachineMuse */ -public abstract class ItemPowerArmor extends ItemArmor - implements - ISpecialArmor, // - IModularItem, - IArmorTextureProvider, - IItemElectric, // Universal Electricity - ICustomElectricItem, // Industrial Craft 2 - IEMPItem, // for ICBM EMP interfacing - IAntiPoisonArmor, // for atomic science hazmat suits - IChargeableItem // for Thermal Expansion -{ +public abstract class ItemPowerArmor extends ItemElectricArmor implements ISpecialArmor, // + IModularItem, IArmorTextureProvider { Config.Items itemType; /** @@ -61,10 +39,8 @@ public abstract class ItemPowerArmor extends ItemArmor * @param armorType * 0 = head; 1 = torso; 2 = legs; 3 = feet */ - public ItemPowerArmor(int id, - int renderIndex, int armorType) { + public ItemPowerArmor(int id, int renderIndex, int armorType) { super(id, EnumArmorMaterial.CLOTH, renderIndex, armorType); - setTextureFile(MuseIcon.SEBK_ICON_PATH); setMaxStackSize(1); setCreativeTab(Config.getCreativeTab()); } @@ -99,12 +75,10 @@ public abstract class ItemPowerArmor extends ItemArmor } /** - * Inherited from ISpecialArmor, allows significant customization of damage - * calculations. + * Inherited from ISpecialArmor, allows significant customization of damage calculations. */ @Override - public ArmorProperties getProperties(EntityLiving player, ItemStack armor, - DamageSource source, double damage, int slot) { + public ArmorProperties getProperties(EntityLiving player, ItemStack armor, DamageSource source, double damage, int slot) { // Order in which this armor is assessed for damage. Higher(?) priority // items take damage first, and if none spills over, the other items // take no damage. @@ -140,8 +114,7 @@ public abstract class ItemPowerArmor extends ItemArmor return value; } - public int getItemEnchantability() - { + public int getItemEnchantability() { return 0; } @@ -149,17 +122,13 @@ public abstract class ItemPowerArmor extends ItemArmor double computedred = ModuleManager.computeModularProperty(stack, MuseCommonStrings.RED_TINT); double computedgreen = ModuleManager.computeModularProperty(stack, MuseCommonStrings.GREEN_TINT); double computedblue = ModuleManager.computeModularProperty(stack, MuseCommonStrings.BLUE_TINT); - Colour colour = new Colour( - clampDouble(1 + computedred - (computedblue + computedgreen), 0, 1), - clampDouble(1 + computedgreen - (computedblue + computedred), 0, 1), - clampDouble(1 + computedblue - (computedred + computedgreen), 0, 1), - 1.0F); + Colour colour = new Colour(clampDouble(1 + computedred - (computedblue + computedgreen), 0, 1), clampDouble(1 + computedgreen + - (computedblue + computedred), 0, 1), clampDouble(1 + computedblue - (computedred + computedgreen), 0, 1), 1.0F); return colour; } @SideOnly(Side.CLIENT) - public int getColorFromItemStack(ItemStack stack, int par2) - { + public int getColorFromItemStack(ItemStack stack, int par2) { Colour c = getColorFromItemStack(stack); return c.getInt(); } @@ -174,19 +143,16 @@ public abstract class ItemPowerArmor extends ItemArmor } @SideOnly(Side.CLIENT) - public boolean requiresMultipleRenderPasses() - { + public boolean requiresMultipleRenderPasses() { return false; } /** * Return whether the specified armor ItemStack has a color. */ - public boolean hasColor(ItemStack stack) - { + public boolean hasColor(ItemStack stack) { NBTTagCompound itemTag = MuseItemUtils.getMuseItemTag(stack); - if (MuseItemUtils.tagHasModule(itemTag, MuseCommonStrings.RED_TINT) - || MuseItemUtils.tagHasModule(itemTag, MuseCommonStrings.GREEN_TINT) + if (MuseItemUtils.tagHasModule(itemTag, MuseCommonStrings.RED_TINT) || MuseItemUtils.tagHasModule(itemTag, MuseCommonStrings.GREEN_TINT) || MuseItemUtils.tagHasModule(itemTag, MuseCommonStrings.BLUE_TINT)) { return true; } else { @@ -195,8 +161,7 @@ public abstract class ItemPowerArmor extends ItemArmor } /** - * Inherited from ISpecialArmor, allows us to customize the calculations for - * how much armor will display on the player's HUD. + * Inherited from ISpecialArmor, allows us to customize the calculations for how much armor will display on the player's HUD. */ @Override public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) { @@ -224,12 +189,10 @@ public abstract class ItemPowerArmor extends ItemArmor } /** - * Inherited from ISpecialArmor, allows us to customize how the armor - * handles being damaged. + * Inherited from ISpecialArmor, allows us to customize how the armor handles being damaged. */ @Override - public void damageArmor(EntityLiving entity, ItemStack stack, - DamageSource source, int damage, int slot) { + public void damageArmor(EntityLiving entity, ItemStack stack, DamageSource source, int damage, int slot) { NBTTagCompound itemProperties = MuseItemUtils.getMuseItemTag(stack); double enerConsum = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_ENERGY_CONSUMPTION); double drain = enerConsum * damage; @@ -253,18 +216,14 @@ public abstract class ItemPowerArmor extends ItemArmor * @param player * The player (client) viewing the tooltip * @param currentTipList - * A list of strings containing the existing tooltip. When - * passed, it will just contain the name of the item; - * enchantments and lore are appended afterwards. + * A list of strings containing the existing tooltip. When passed, it will just contain the name of the item; enchantments and lore are + * appended afterwards. * @param advancedToolTips - * Whether or not the player has 'advanced tooltips' turned on in - * their settings. + * Whether or not the player has 'advanced tooltips' turned on in their settings. */ @Override - public void addInformation(ItemStack stack, - EntityPlayer player, List currentTipList, boolean advancedToolTips) { - MuseCommonStrings.addInformation(stack, player, currentTipList, - advancedToolTips); + public void addInformation(ItemStack stack, EntityPlayer player, List currentTipList, boolean advancedToolTips) { + MuseCommonStrings.addInformation(stack, player, currentTipList, advancedToolTips); } public static String formatInfo(String string, double value) { @@ -274,8 +233,7 @@ public abstract class ItemPowerArmor extends ItemArmor @Override public List getLongInfo(EntityPlayer player, ItemStack stack) { List info = new ArrayList(); - NBTTagCompound itemProperties = MuseItemUtils - .getMuseItemTag(stack); + NBTTagCompound itemProperties = MuseItemUtils.getMuseItemTag(stack); info.add("Detailed Summary"); info.add(formatInfo("Armor", getArmorDouble(player, stack))); info.add(formatInfo("Energy Storage", getMaxJoules(stack)) + "J"); @@ -283,186 +241,4 @@ public abstract class ItemPowerArmor extends ItemArmor return info; } - // ////////////////////////////////////////////// - // --- UNIVERSAL ELECTRICITY COMPATABILITY ---// - // ////////////////////////////////////////////// - @Override - public double onReceive(double amps, double voltage, ItemStack itemStack) { - double amount = ElectricInfo.getJoules(amps, voltage, 1); - return ElectricItemUtils.charge(amount, itemStack); - } - - @Override - public double onUse(double joulesNeeded, ItemStack itemStack) { - return ElectricItemUtils.discharge(joulesNeeded, itemStack); - } - - @Override - public double getJoules(Object... data) { - return ElectricItemUtils.getJoules(getAsStack(data)); - } - - @Override - public void setJoules(double joules, Object... data) { - ElectricItemUtils.setJoules(joules, getAsStack(data)); - } - - @Override - public double getMaxJoules(Object... data) { - return ElectricItemUtils.getMaxJoules(getAsStack(data)); - } - - @Override - public double getVoltage(Object... data) { - return ElectricItemUtils.getVoltage(getAsStack(data)); - } - - @Override - public boolean canReceiveElectricity() { - return true; - } - - @Override - public boolean canProduceElectricity() { - return true; - } - - /** - * Helper function to deal with UE's use of varargs - */ - private ItemStack getAsStack(Object[] data) { - if (data[0] instanceof ItemStack) { - return (ItemStack) data[0]; - } else { - throw new IllegalArgumentException( - "MusePowerSuits: Invalid ItemStack passed via UE interface"); - } - } - - // //////////////////////////////////////// // - // --- INDUSTRIAL CRAFT 2 COMPATABILITY --- // - // //////////////////////////////////////// // - @Override - public int charge(ItemStack stack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) { - double joulesProvided = ModCompatability.joulesFromEU(amount); - double maxJoules = ElectricItemUtils.getMaxJoules(stack); - if (!ignoreTransferLimit && (joulesProvided > maxJoules / 200.0)) { - joulesProvided = maxJoules / 200.0; - } - double currentJoules = ElectricItemUtils.getJoules(stack); - double surplus = ElectricItemUtils.charge(joulesProvided, stack); - if (simulate) { - ElectricItemUtils.setJoules(currentJoules, stack); - } - - return ModCompatability.joulesToEU(joulesProvided - surplus); - } - - @Override - public int discharge(ItemStack stack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) { - double joulesRequested = ModCompatability.joulesFromEU(amount); - double maxJoules = ElectricItemUtils.getMaxJoules(stack); - if (!ignoreTransferLimit && (joulesRequested > maxJoules / 200.0)) { - joulesRequested = maxJoules / 200.0; - } - double currentJoules = ElectricItemUtils.getJoules(stack); - double givenJoules = ElectricItemUtils.discharge(joulesRequested, stack); - if (simulate) { - ElectricItemUtils.setJoules(currentJoules, stack); - } - return ModCompatability.joulesToEU(givenJoules); - } - - @Override - public boolean canUse(ItemStack stack, int amount) { - double joulesRequested = ModCompatability.joulesFromEU(amount); - double currentJoules = ElectricItemUtils.getJoules(stack); - if (currentJoules > joulesRequested) { - return true; - } else { - return false; - } - } - - @Override - public boolean canShowChargeToolTip(ItemStack itemStack) { - return false; - } - - @Override - public boolean canProvideEnergy() { - return true; - } - - @Override - public int getChargedItemId() { - return this.itemID; - } - - @Override - public int getEmptyItemId() { - return this.itemID; - } - - @Override - public int getMaxCharge() { - return 1; - } - - @Override - public int getTier() { - return 1; - } - - @Override - public int getTransferLimit() { - return 0; - } - - // //////////// // - // --- ICBM --- // - // //////////// // - @Override - public void onEMP(ItemStack itemStack, Entity entity, IExplosive empExplosive) { - ElectricItemUtils.onEMP(itemStack, entity, empExplosive); - } - - // ////////////////////// // - // --- Atomic Science --- // - // ////////////////////// // - @Override - public boolean isProtectedFromPoison(ItemStack itemStack, EntityLiving entityLiving, Poison type) { - return MuseItemUtils.itemHasModule(itemStack, MuseCommonStrings.MODULE_HAZMAT); - } - - @Override - public void onProtectFromPoison(ItemStack itemStack, EntityLiving entityLiving, Poison type) { - } - - // ///////////////////////// // - // --- Thermal Expansion --- // - // ///////////////////////// // - @Override - public float receiveEnergy(ItemStack theItem, float energy, boolean doReceive) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public float transferEnergy(ItemStack theItem, float energy, boolean doTransfer) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public float getEnergyStored(ItemStack theItem) { - // TODO Auto-generated method stub - return 0; - } - - @Override - public float getMaxEnergyStored(ItemStack theItem) { - // TODO Auto-generated method stub - return 0; - } } diff --git a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorFeet.java b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorFeet.java index 762c271..aad2798 100644 --- a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorFeet.java +++ b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorFeet.java @@ -3,9 +3,12 @@ */ package net.machinemuse.powersuits.item; +import net.machinemuse.general.gui.MuseIcon; import net.machinemuse.powersuits.common.Config; -import atomicscience.api.Poison.ArmorType; +import net.minecraft.client.renderer.texture.IconRegister; import cpw.mods.fml.common.registry.LanguageRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; /** * @author MachineMuse @@ -20,13 +23,14 @@ public class ItemPowerArmorFeet extends ItemPowerArmor { 0, // Texture index for rendering armor on the player 3); // armor type. 0=head, 1=torso, 2=legs, 3=feet itemType = Config.Items.PowerArmorFeet; - setItemName(itemType.idName); - setIconIndex(63); LanguageRegistry.addName(this, itemType.englishName); } @Override - public ArmorType getArmorType() { - return ArmorType.BOOTS; + @SideOnly(Side.CLIENT) + public void updateIcons(IconRegister iconRegister) { + MuseIcon.ARMOR_FEET.register(iconRegister); + iconIndex = MuseIcon.ARMOR_FEET.getIconRegistration(); } + } diff --git a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorHead.java b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorHead.java index 38e8669..97b822d 100644 --- a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorHead.java +++ b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorHead.java @@ -1,8 +1,11 @@ package net.machinemuse.powersuits.item; +import net.machinemuse.general.gui.MuseIcon; import net.machinemuse.powersuits.common.Config; -import atomicscience.api.Poison.ArmorType; +import net.minecraft.client.renderer.texture.IconRegister; import cpw.mods.fml.common.registry.LanguageRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class ItemPowerArmorHead extends ItemPowerArmor { public ItemPowerArmorHead() { @@ -10,13 +13,13 @@ public class ItemPowerArmorHead extends ItemPowerArmor { 0, // Texture index for rendering armor on the player 0); // armor type. 0=head, 1=torso, 2=legs, 3=feet itemType = Config.Items.PowerArmorHead; - setItemName(itemType.idName); - setIconIndex(15); LanguageRegistry.addName(this, itemType.englishName); } @Override - public ArmorType getArmorType() { - return ArmorType.HELM; + @SideOnly(Side.CLIENT) + public void updateIcons(IconRegister iconRegister) { + MuseIcon.ARMOR_HEAD.register(iconRegister); + iconIndex = MuseIcon.ARMOR_HEAD.getIconRegistration(); } } diff --git a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorLegs.java b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorLegs.java index a92d7a3..6f96f7b 100644 --- a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorLegs.java +++ b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorLegs.java @@ -1,8 +1,11 @@ package net.machinemuse.powersuits.item; +import net.machinemuse.general.gui.MuseIcon; import net.machinemuse.powersuits.common.Config; -import atomicscience.api.Poison.ArmorType; +import net.minecraft.client.renderer.texture.IconRegister; import cpw.mods.fml.common.registry.LanguageRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class ItemPowerArmorLegs extends ItemPowerArmor { public ItemPowerArmorLegs() { @@ -10,13 +13,13 @@ public class ItemPowerArmorLegs extends ItemPowerArmor { 0, // Texture index for rendering armor on the player 2); // armor type. 0=head, 1=torso, 2=legs, 3=feet itemType = Config.Items.PowerArmorLegs; - setItemName(itemType.idName); - setIconIndex(47); LanguageRegistry.addName(this, itemType.englishName); } @Override - public ArmorType getArmorType() { - return ArmorType.LEGGINGS; + @SideOnly(Side.CLIENT) + public void updateIcons(IconRegister iconRegister) { + MuseIcon.ARMOR_LEGS.register(iconRegister); + iconIndex = MuseIcon.ARMOR_LEGS.getIconRegistration(); } } diff --git a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorTorso.java b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorTorso.java index 2da46e8..821bb63 100644 --- a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorTorso.java +++ b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerArmorTorso.java @@ -1,8 +1,11 @@ package net.machinemuse.powersuits.item; +import net.machinemuse.general.gui.MuseIcon; import net.machinemuse.powersuits.common.Config; -import atomicscience.api.Poison.ArmorType; +import net.minecraft.client.renderer.texture.IconRegister; import cpw.mods.fml.common.registry.LanguageRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class ItemPowerArmorTorso extends ItemPowerArmor { public ItemPowerArmorTorso() { @@ -10,13 +13,13 @@ public class ItemPowerArmorTorso extends ItemPowerArmor { 0, // Texture index for rendering armor on the player 1); // armor type. 0=head, 1=torso, 2=legs, 3=feet itemType = Config.Items.PowerArmorTorso; - setItemName(itemType.idName); - setIconIndex(31); LanguageRegistry.addName(this, itemType.englishName); } @Override - public ArmorType getArmorType() { - return ArmorType.BODY; + @SideOnly(Side.CLIENT) + public void updateIcons(IconRegister iconRegister) { + MuseIcon.ARMOR_TORSO.register(iconRegister); + iconIndex = MuseIcon.ARMOR_TORSO.getIconRegistration(); } } diff --git a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerTool.java b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerTool.java index 702ad16..7bc4684 100644 --- a/src/minecraft/net/machinemuse/powersuits/item/ItemPowerTool.java +++ b/src/minecraft/net/machinemuse/powersuits/item/ItemPowerTool.java @@ -1,9 +1,5 @@ package net.machinemuse.powersuits.item; -import ic2.api.ICustomElectricItem; -import icbm.api.explosion.IEMPItem; -import icbm.api.explosion.IExplosive; - import java.util.ArrayList; import java.util.List; @@ -18,11 +14,11 @@ import net.machinemuse.general.geometry.Colour; import net.machinemuse.general.gui.MuseIcon; import net.machinemuse.powersuits.common.Config; import net.machinemuse.powersuits.common.Config.Items; -import net.machinemuse.powersuits.common.ModCompatability; import net.machinemuse.powersuits.entity.EntityPlasmaBolt; import net.machinemuse.powersuits.network.packets.MusePacketPlasmaBolt; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.player.EntityPlayer; @@ -30,19 +26,11 @@ import net.minecraft.item.EnumAction; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemTool; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; import net.minecraft.util.DamageSource; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.ForgeHooks; -import thermalexpansion.api.core.IChargeableItem; -import universalelectricity.core.electricity.ElectricInfo; -import universalelectricity.core.electricity.ElectricInfo.ElectricUnit; -import universalelectricity.core.electricity.ElectricityPack; -import universalelectricity.core.implement.IConductor; -import universalelectricity.core.implement.IItemElectric; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.network.PacketDispatcher; import cpw.mods.fml.common.network.Player; @@ -55,14 +43,7 @@ import cpw.mods.fml.relauncher.SideOnly; * * @author MachineMuse */ -public class ItemPowerTool extends ItemTool - implements - IModularItem, - IItemElectric, // Universal Electricity - ICustomElectricItem, // Industrial Craft 2 - IEMPItem, // for ICBM EMP interfacing - IChargeableItem // for Thermal Expansion -{ +public class ItemPowerTool extends ItemElectricTool implements IModularItem { public static final ItemStack ironPickaxe = new ItemStack(Item.pickaxeSteel); public static final ItemStack ironAxe = new ItemStack(Item.axeSteel); public static final ItemStack ironShovel = new ItemStack(Item.shovelSteel); @@ -86,20 +67,23 @@ public class ItemPowerTool extends ItemTool setMaxDamage(0); this.damageVsEntity = 1; setCreativeTab(Config.getCreativeTab()); - setIconIndex(59); - setTextureFile(MuseIcon.WC_ICON_PATH); - setItemName(Config.Items.PowerTool.idName); LanguageRegistry.addName(this, Config.Items.PowerTool.englishName); } + @Override + @SideOnly(Side.CLIENT) + public void updateIcons(IconRegister iconRegister) { + MuseIcon.POWERTOOL.register(iconRegister); + iconIndex = MuseIcon.POWERTOOL.getIconRegistration(); + } + @Override public Items getItemType() { return Config.Items.PowerTool; } /** - * Returns the strength of the stack against a given block. 1.0F base, - * (Quality+1)*2 if correct blocktype, 1.5F if sword + * Returns the strength of the stack against a given block. 1.0F base, (Quality+1)*2 if correct blocktype, 1.5F if sword */ @Override public float getStrVsBlock(ItemStack stack, Block block) { @@ -110,11 +94,8 @@ public class ItemPowerTool extends ItemTool double computedred = ModuleManager.computeModularProperty(stack, MuseCommonStrings.RED_TINT); double computedgreen = ModuleManager.computeModularProperty(stack, MuseCommonStrings.GREEN_TINT); double computedblue = ModuleManager.computeModularProperty(stack, MuseCommonStrings.BLUE_TINT); - Colour colour = new Colour( - clampDouble(1 + computedred - (computedblue + computedgreen), 0, 1), - clampDouble(1 + computedgreen - (computedblue + computedred), 0, 1), - clampDouble(1 + computedblue - (computedred + computedgreen), 0, 1), - 1.0F); + Colour colour = new Colour(clampDouble(1 + computedred - (computedblue + computedgreen), 0, 1), clampDouble(1 + computedgreen + - (computedblue + computedred), 0, 1), clampDouble(1 + computedblue - (computedred + computedgreen), 0, 1), 1.0F); return colour; } @@ -155,8 +136,7 @@ public class ItemPowerTool extends ItemTool } /** - * Current implementations of this method in child classes do not use the - * entry argument beside stack. They just raise the damage on the stack. + * Current implementations of this method in child classes do not use the entry argument beside stack. They just raise the damage on the stack. */ @Override public boolean hitEntity(ItemStack stack, EntityLiving entityBeingHit, EntityLiving entityDoingHitting) { @@ -181,9 +161,7 @@ public class ItemPowerTool extends ItemTool * Called when a block is destroyed using this tool. */ @Override - public boolean onBlockDestroyed(ItemStack stack, World world, - int blockID, int x, int y, int z, - EntityLiving entity) { + public boolean onBlockDestroyed(ItemStack stack, World world, int blockID, int x, int y, int z, EntityLiving entity) { double drain = 1; Block block = Block.blocksList[blockID]; int meta = 0; @@ -207,7 +185,7 @@ public class ItemPowerTool extends ItemTool EntityPlayer player = (EntityPlayer) entity; ElectricItemUtils.drainPlayerEnergy(player, drain); } else { - onUse(drain, stack); + // onUse(drain, stack); } return true; } @@ -216,9 +194,8 @@ public class ItemPowerTool extends ItemTool if (MuseItemUtils.itemHasActiveModule(stack, MuseCommonStrings.MODULE_PICKAXE)) { if (ForgeHooks.isToolEffective(ironPickaxe, block, meta)) { return true; - } else if ((!ForgeHooks.isToolEffective(diamondPick, block, meta)) && (block.blockMaterial == Material.iron - || block.blockMaterial == Material.anvil - || block.blockMaterial == Material.rock)) { + } else if ((!ForgeHooks.isToolEffective(diamondPick, block, meta)) + && (block.blockMaterial == Material.iron || block.blockMaterial == Material.anvil || block.blockMaterial == Material.rock)) { return true; } } @@ -240,9 +217,7 @@ public class ItemPowerTool extends ItemTool if (MuseItemUtils.itemHasActiveModule(stack, MuseCommonStrings.MODULE_AXE)) { if (ForgeHooks.isToolEffective(ironAxe, block, meta)) { return true; - } else if (block.blockMaterial == Material.wood - || block.blockMaterial == Material.plants - || block.blockMaterial == Material.vine) { + } else if (block.blockMaterial == Material.wood || block.blockMaterial == Material.plants || block.blockMaterial == Material.vine) { return true; } } @@ -253,9 +228,7 @@ public class ItemPowerTool extends ItemTool if (MuseItemUtils.itemHasActiveModule(stack, MuseCommonStrings.MODULE_DIAMOND_PICK_UPGRADE)) { if (ForgeHooks.isToolEffective(diamondPick, block, meta)) { return true; - } else if (block.blockMaterial == Material.iron - || block.blockMaterial == Material.anvil - || block.blockMaterial == Material.rock) { + } else if (block.blockMaterial == Material.iron || block.blockMaterial == Material.anvil || block.blockMaterial == Material.rock) { return true; } } @@ -280,8 +253,7 @@ public class ItemPowerTool extends ItemTool } /** - * Return the enchantability factor of the item. In this case, 0. Might add - * an enchantability module later :P + * Return the enchantability factor of the item. In this case, 0. Might add an enchantability module later :P */ @Override public int getItemEnchantability() { @@ -300,8 +272,7 @@ public class ItemPowerTool extends ItemTool * Return whether this item is repairable in an anvil. */ @Override - public boolean getIsRepairable(ItemStack par1ItemStack, - ItemStack par2ItemStack) { + public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) { return false; } @@ -312,8 +283,7 @@ public class ItemPowerTool extends ItemTool @Override public List getLongInfo(EntityPlayer player, ItemStack stack) { List info = new ArrayList(); - NBTTagCompound itemProperties = MuseItemUtils - .getMuseItemTag(stack); + NBTTagCompound itemProperties = MuseItemUtils.getMuseItemTag(stack); info.add("Detailed Summary"); info.add(formatInfo("Energy Storage", getMaxJoules(stack)) + "J"); info.add(formatInfo("Weight", MuseCommonStrings.getTotalWeight(stack)) + "g"); @@ -328,41 +298,34 @@ public class ItemPowerTool extends ItemTool * @param player * The player (client) viewing the tooltip * @param currentTipList - * A list of strings containing the existing tooltip. When - * passed, it will just contain the name of the item; - * enchantments and lore are appended afterwards. + * A list of strings containing the existing tooltip. When passed, it will just contain the name of the item; enchantments and lore are + * appended afterwards. * @param advancedToolTips - * Whether or not the player has 'advanced tooltips' turned on in - * their settings. + * Whether or not the player has 'advanced tooltips' turned on in their settings. */ @Override - public void addInformation(ItemStack stack, - EntityPlayer player, List currentTipList, boolean advancedToolTips) { - MuseCommonStrings.addInformation(stack, player, currentTipList, - advancedToolTips); + public void addInformation(ItemStack stack, EntityPlayer player, List currentTipList, boolean advancedToolTips) { + MuseCommonStrings.addInformation(stack, player, currentTipList, advancedToolTips); } /** * How long it takes to use or consume an item */ - public int getMaxItemUseDuration(ItemStack par1ItemStack) - { + public int getMaxItemUseDuration(ItemStack par1ItemStack) { return 72000; } /** * What happens when the duration runs out */ - public ItemStack onFoodEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) - { + public ItemStack onFoodEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { return par1ItemStack; } /** * Called when the right click button is pressed */ - public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) - { + public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) { for (IRightClickModule module : ModuleManager.getRightClickModules()) { if (module.isValidForItem(itemStack, player) && MuseItemUtils.itemHasActiveModule(itemStack, module.getName())) { ((IRightClickModule) module).onRightClick(player, world, itemStack); @@ -372,23 +335,19 @@ public class ItemPowerTool extends ItemTool } /** - * returns the action that specifies what animation to play when the items - * is being used + * returns the action that specifies what animation to play when the items is being used */ - public EnumAction getItemUseAction(ItemStack stack) - { + public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.bow; } /** * Called when the right click button is released */ - public void onPlayerStoppedUsing(ItemStack itemStack, World world, EntityPlayer player, int par4) - { + public void onPlayerStoppedUsing(ItemStack itemStack, World world, EntityPlayer player, int par4) { int chargeTicks = Math.max(this.getMaxItemUseDuration(itemStack) - par4, 10); - if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) - { + if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) { double energyConsumption = ModuleManager.computeModularProperty(itemStack, MuseCommonStrings.PLASMA_CANNON_ENERGY_PER_TICK) * chargeTicks; if (ElectricItemUtils.getPlayerEnergy(player) > energyConsumption) { ElectricItemUtils.drainPlayerEnergy(player, energyConsumption); @@ -397,231 +356,35 @@ public class ItemPowerTool extends ItemTool EntityPlasmaBolt plasmaBolt = new EntityPlasmaBolt(world, player, explosiveness, damagingness, chargeTicks); world.spawnEntityInWorld(plasmaBolt); - MusePacketPlasmaBolt packet = new MusePacketPlasmaBolt((Player) player, plasmaBolt.entityId, - plasmaBolt.size); + MusePacketPlasmaBolt packet = new MusePacketPlasmaBolt((Player) player, plasmaBolt.entityId, plasmaBolt.size); PacketDispatcher.sendPacketToAllPlayers(packet.getPacket250()); } } } - // /////////////////////////////////////////// // - // --- UNIVERSAL ELECTRICITY COMPATABILITY --- // - // /////////////////////////////////////////// // - @Override - public double onReceive(double amps, double voltage, ItemStack itemStack) { - double amount = ElectricInfo.getJoules(amps, voltage, 1); - return ElectricItemUtils.charge(amount, itemStack); - } - - @Override - public double onUse(double joulesNeeded, ItemStack itemStack) { - return ElectricItemUtils.discharge(joulesNeeded, itemStack); - } - - @Override - public double getJoules(Object... data) { - return ElectricItemUtils.getJoules(getAsStack(data)); - } - - @Override - public void setJoules(double joules, Object... data) { - ElectricItemUtils.setJoules(joules, getAsStack(data)); - } - - @Override - public double getMaxJoules(Object... data) { - return ElectricItemUtils.getMaxJoules(getAsStack(data)); - } - - @Override - public double getVoltage(Object... data) { - return ElectricItemUtils.getVoltage(getAsStack(data)); - } - - @Override - public boolean canReceiveElectricity() { - return true; - } - - @Override - public boolean canProduceElectricity() { - return true; - } - - /** - * Helper function to deal with UE's use of varargs - */ - private ItemStack getAsStack(Object[] data) { - if (data[0] instanceof ItemStack) { - return (ItemStack) data[0]; - } else { - throw new IllegalArgumentException( - "MusePowerSuits: Invalid ItemStack passed via UE interface"); - } - } - - // //////////////////////////////////////// // - // --- INDUSTRIAL CRAFT 2 COMPATABILITY --- // - // //////////////////////////////////////// // - @Override - public int charge(ItemStack stack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) { - double joulesProvided = ModCompatability.joulesFromEU(amount); - double currentJoules = ElectricItemUtils.getJoules(stack); - double surplus = ElectricItemUtils.charge(joulesProvided, stack); - if (simulate) { - ElectricItemUtils.setJoules(currentJoules, stack); - } - return ModCompatability.joulesToEU(joulesProvided - surplus); - } - - @Override - public int discharge(ItemStack stack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) { - - double joulesRequested = ModCompatability.joulesFromEU(amount); - double currentJoules = ElectricItemUtils.getJoules(stack); - double givenJoules = ElectricItemUtils.discharge(joulesRequested, stack); - if (simulate) { - ElectricItemUtils.setJoules(currentJoules, stack); - } - return ModCompatability.joulesToEU(givenJoules); - } - - @Override - public boolean canUse(ItemStack stack, int amount) { - double joulesRequested = ModCompatability.joulesFromEU(amount); - double currentJoules = ElectricItemUtils.getJoules(stack); - if (currentJoules > joulesRequested) { - return true; - } else { - return false; - } - } - - @Override - public boolean canShowChargeToolTip(ItemStack itemStack) { - return false; - } - - @Override - public boolean canProvideEnergy() { - return true; - } - - @Override - public int getChargedItemId() { - return this.itemID; - } - - @Override - public int getEmptyItemId() { - return this.itemID; - } - - @Override - public int getMaxCharge() { - return 1; - } - - @Override - public int getTier() { - return 1; - } - - @Override - public int getTransferLimit() { - return 0; - } - public static MuseIcon getCurrentIconFor(ItemStack itemStack) { return MuseIcon.POWERTOOL; } - @Override - public boolean onItemUseFirst(ItemStack itemStack, EntityPlayer player, World worldObj, int x, int y, int z, int side, float hitX, float hitY, - float hitZ) { - - if (ModCompatability.isBasicComponentsLoaded() && MuseItemUtils.itemHasActiveModule(itemStack, MuseCommonStrings.MODULE_MULTIMETER)) { - if (!worldObj.isRemote) { - TileEntity tileEntity = worldObj.getBlockTileEntity(x, y, z); - if (tileEntity instanceof IConductor) { - IConductor wireTile = (IConductor) tileEntity; - ElectricityPack getProduced = wireTile.getNetwork().getProduced(); - player.addChatMessage("Reading: " + ElectricInfo.getDisplay(getProduced.amperes, ElectricUnit.AMPERE) + ", " - + ElectricInfo.getDisplay(getProduced.voltage, ElectricUnit.VOLTAGE) + ", " - + ElectricInfo.getDisplay(getProduced.getWatts() * 20, ElectricUnit.WATT)); - return true; - } - } - } - - return false; - } - - // //////////// // - // --- ICBM --- // - // //////////// // - @Override - public void onEMP(ItemStack itemStack, Entity entity, IExplosive empExplosive) { - ElectricItemUtils.onEMP(itemStack, entity, empExplosive); - } - - // ///////////////////////// // - // --- Thermal Expansion --- // - // ///////////////////////// // - - /** - * Adds energy to an item. Returns the quantity of energy that was accepted. - * This should always return 0 if the item cannot be externally charged. - * - * @param theItem - * ItemStack to be charged. - * @param energy - * Maximum amount of energy to be sent into the item. - * @param doReceive - * If false, the charge will only be simulated. - * @return Amount of energy that was accepted by the item. - */ - public float receiveEnergy(ItemStack stack, float energy, boolean doReceive) { - double offeredJoules = energy * ModCompatability.getBCRatio(); - double missingJoules = ElectricItemUtils.getMaxJoules(stack) - ElectricItemUtils.getJoules(stack); - double transferredJoules = Math.min(offeredJoules, missingJoules); - ElectricItemUtils.charge(transferredJoules, stack); - return (float) (transferredJoules / ModCompatability.getBCRatio()); - } - - /** - * Removes energy from an item. Returns the quantity of energy that was - * removed. This should always return 0 if the item cannot be externally - * discharged. - * - * @param theItem - * ItemStack to be discharged. - * @param energy - * Maximum amount of energy to be removed from the item. - * @param doTransfer - * If false, the discharge will only be simulated. - * @return Amount of energy that was removed from the item. - */ - public float transferEnergy(ItemStack stack, float energy, boolean doTransfer) { - double requestedJoules = energy * ModCompatability.getBCRatio(); - double availableJoules = ElectricItemUtils.getJoules(stack); - double transferredJoules = Math.min(requestedJoules, availableJoules); - ElectricItemUtils.discharge(transferredJoules, stack); - return (float) (transferredJoules / ModCompatability.getBCRatio()); - } - - /** - * Get the amount of energy currently stored in the item. - */ - public float getEnergyStored(ItemStack stack) { - return (float) (ModCompatability.getBCRatio() * ElectricItemUtils.getJoules(stack)); - } - - /** - * Get the max amount of energy that can be stored in the item. - */ - public float getMaxEnergyStored(ItemStack stack) { - return (float) (ModCompatability.getBCRatio() * ElectricItemUtils.getMaxJoules(stack)); - } + // @Override + // public boolean onItemUseFirst(ItemStack itemStack, EntityPlayer player, World worldObj, int x, int y, int z, int side, float hitX, float hitY, + // float hitZ) { + // + // if (ModCompatability.isBasicComponentsLoaded() && MuseItemUtils.itemHasActiveModule(itemStack, MuseCommonStrings.MODULE_MULTIMETER)) { + // if (!worldObj.isRemote) { + // TileEntity tileEntity = worldObj.getBlockTileEntity(x, y, z); + // if (tileEntity instanceof IConductor) { + // IConductor wireTile = (IConductor) tileEntity; + // ElectricityPack getProduced = wireTile.getNetwork().getProduced(); + // player.addChatMessage("Reading: " + ElectricInfo.getDisplay(getProduced.amperes, ElectricUnit.AMPERE) + ", " + // + ElectricInfo.getDisplay(getProduced.voltage, ElectricUnit.VOLTAGE) + ", " + // + ElectricInfo.getDisplay(getProduced.getWatts() * 20, ElectricUnit.WATT)); + // return true; + // } + // } + // } + // + // return false; + // } } diff --git a/src/minecraft/net/machinemuse/powersuits/network/packets/MusePacketInstallModuleRequest.java b/src/minecraft/net/machinemuse/powersuits/network/packets/MusePacketInstallModuleRequest.java index 52ad1b1..ddcbfdd 100644 --- a/src/minecraft/net/machinemuse/powersuits/network/packets/MusePacketInstallModuleRequest.java +++ b/src/minecraft/net/machinemuse/powersuits/network/packets/MusePacketInstallModuleRequest.java @@ -11,21 +11,18 @@ import java.util.List; import net.machinemuse.api.IPowerModule; import net.machinemuse.api.ModuleManager; import net.machinemuse.api.MuseItemUtils; -import net.machinemuse.powersuits.item.ItemComponent; import net.machinemuse.powersuits.network.MusePacket; import net.minecraft.client.entity.EntityClientPlayerMP; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; -import universalelectricity.core.implement.IItemElectric; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.network.PacketDispatcher; import cpw.mods.fml.common.network.Player; import cpw.mods.fml.relauncher.Side; /** - * Packet for requesting to purchase an upgrade. Player-to-server. Server - * decides whether it is a valid upgrade or not and replies with an associated + * Packet for requesting to purchase an upgrade. Player-to-server. Server decides whether it is a valid upgrade or not and replies with an associated * inventoryrefresh packet. * * @author MachineMuse @@ -45,8 +42,7 @@ public class MusePacketInstallModuleRequest extends MusePacket { * Slot containing the item for which the upgrade is requested * @param moduleName */ - public MusePacketInstallModuleRequest(Player player, int itemSlot, - String moduleName) { + public MusePacketInstallModuleRequest(Player player, int itemSlot, String moduleName) { super(player); writeInt(itemSlot); writeString(moduleName); @@ -86,32 +82,14 @@ public class MusePacketInstallModuleRequest extends MusePacket { || playerEntity.capabilities.isCreativeMode) { MuseItemUtils.itemAddModule(stack, moduleType); - for (ItemStack itemCost : cost) { - if (stack.getItem() instanceof IItemElectric) { - IItemElectric elecItem = (IItemElectric) stack.getItem(); - double joules = elecItem.getJoules(stack); - if (MuseItemUtils.isSameItem(itemCost, ItemComponent.lvcapacitor)) { - elecItem.setJoules(joules + 20000, stack); - } - if (MuseItemUtils.isSameItem(itemCost, ItemComponent.mvcapacitor)) { - elecItem.setJoules(joules + 100000, stack); - } - if (MuseItemUtils.isSameItem(itemCost, ItemComponent.hvcapacitor)) { - elecItem.setJoules(joules + 750000, stack); - } - } - } List slotsToUpdate = new ArrayList(); if (!playerEntity.capabilities.isCreativeMode) { slotsToUpdate = MuseItemUtils.deleteFromInventory(cost, inventory); } slotsToUpdate.add(itemSlot); for (Integer slotiter : slotsToUpdate) { - MusePacket reply = new MusePacketInventoryRefresh( - player, - slotiter, inventory.getStackInSlot(slotiter)); - PacketDispatcher.sendPacketToPlayer(reply.getPacket250(), - player); + MusePacket reply = new MusePacketInventoryRefresh(player, slotiter, inventory.getStackInSlot(slotiter)); + PacketDispatcher.sendPacketToPlayer(reply.getPacket250(), player); } } } diff --git a/src/minecraft/net/machinemuse/powersuits/powermodule/modules/InPlaceAssemblerModule.java b/src/minecraft/net/machinemuse/powersuits/powermodule/modules/InPlaceAssemblerModule.java index d9540ea..c2f3fb8 100644 --- a/src/minecraft/net/machinemuse/powersuits/powermodule/modules/InPlaceAssemblerModule.java +++ b/src/minecraft/net/machinemuse/powersuits/powermodule/modules/InPlaceAssemblerModule.java @@ -23,7 +23,8 @@ public class InPlaceAssemblerModule extends PowerModuleBase implements IRightCli @Override public MuseIcon getIcon(ItemStack item) { - return new MuseIcon(Block.workbench.getTextureFile(), 60); + // return new MuseIcon(Block.workbench., 60); + return null; } @Override diff --git a/src/minecraft/net/machinemuse/powersuits/tick/ClientTickHandler.java b/src/minecraft/net/machinemuse/powersuits/tick/ClientTickHandler.java index e982141..443adac 100644 --- a/src/minecraft/net/machinemuse/powersuits/tick/ClientTickHandler.java +++ b/src/minecraft/net/machinemuse/powersuits/tick/ClientTickHandler.java @@ -7,6 +7,7 @@ import net.machinemuse.api.IModularItem; import net.machinemuse.api.MuseItemUtils; import net.machinemuse.general.gui.clickable.ClickableKeybinding; import net.machinemuse.powersuits.client.KeybindManager; +import net.machinemuse.powersuits.common.MuseLogger; import net.machinemuse.powersuits.common.PlayerInputMap; import net.machinemuse.powersuits.network.MusePacket; import net.machinemuse.powersuits.network.packets.MusePacketModeChangeRequest; @@ -24,8 +25,7 @@ import cpw.mods.fml.common.TickType; import cpw.mods.fml.common.network.Player; /** - * This handler is called before/after the game processes input events and - * updates the gui state mainly. *independent of rendering, so sometimes there + * This handler is called before/after the game processes input events and updates the gui state mainly. *independent of rendering, so sometimes there * might be visual artifacts* -is also the parent class of KeyBindingHandler * * @author MachineMuse @@ -33,19 +33,19 @@ import cpw.mods.fml.common.network.Player; public class ClientTickHandler implements ITickHandler { protected int slotSelected = -1; protected int dWheel; + public static long lastTickTime = System.currentTimeMillis(); @Override public void tickStart(EnumSet type, Object... tickData) { + + MuseLogger.logDebug("Tick time: " + (System.currentTimeMillis() - lastTickTime)); + lastTickTime = System.currentTimeMillis(); for (ClickableKeybinding kb : KeybindManager.getKeybindings()) { kb.doToggleTick(); } try { EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; - // if (dWheel != 0) { - // MuseLogger.logDebug("dWheel: " + dWheel); - // } - if (player.getCurrentEquippedItem().getItem() instanceof IModularItem - && player.isSneaking()) { + if (player.getCurrentEquippedItem().getItem() instanceof IModularItem && player.isSneaking()) { slotSelected = player.inventory.currentItem; dWheel = Mouse.getDWheel() / 120; } else { @@ -82,14 +82,11 @@ public class ClientTickHandler implements ITickHandler { } if (modes.size() > 0 && dWheel != 0) { int modeIndex = modes.indexOf(mode); - String newMode = modes.get(clampMode(modeIndex + dWheel, - modes.size())); + String newMode = modes.get(clampMode(modeIndex + dWheel, modes.size())); itemTag.setString("Mode", newMode); RenderTickHandler.lastSwapTime = System.currentTimeMillis(); RenderTickHandler.lastSwapDirection = (int) Math.signum(dWheel); - MusePacket modeChangePacket = new - MusePacketModeChangeRequest((Player) player, newMode, - player.inventory.currentItem); + MusePacket modeChangePacket = new MusePacketModeChangeRequest((Player) player, newMode, player.inventory.currentItem); player.sendQueue.addToSendQueue(modeChangePacket.getPacket250()); dWheel = 0; } diff --git a/src/minecraft/net/machinemuse/powersuits/tick/PlayerTickHandler.java b/src/minecraft/net/machinemuse/powersuits/tick/PlayerTickHandler.java index d43a9c3..87ba059 100644 --- a/src/minecraft/net/machinemuse/powersuits/tick/PlayerTickHandler.java +++ b/src/minecraft/net/machinemuse/powersuits/tick/PlayerTickHandler.java @@ -396,7 +396,7 @@ public class PlayerTickHandler implements ITickHandler { for (; stack.stackSize > 0 && foodNeeded > foodLevel; stack.stackSize--) { foodLevel += food.getHealAmount() * efficiency / 100.0; saturationLevel += food.getSaturationModifier() * efficiency / 100.0; - player.sendChatToPlayer("Feeder module: Ate a " + food.getItemNameIS(stack)); + player.sendChatToPlayer("Feeder module: Ate a " + food.getItemDisplayName(stack)); } if (stack.stackSize == 0) { player.inventory.setInventorySlotContents(i, null); diff --git a/src/minecraft/net/machinemuse/powersuits/tick/RenderTickHandler.java b/src/minecraft/net/machinemuse/powersuits/tick/RenderTickHandler.java index 8c22691..1c48df6 100644 --- a/src/minecraft/net/machinemuse/powersuits/tick/RenderTickHandler.java +++ b/src/minecraft/net/machinemuse/powersuits/tick/RenderTickHandler.java @@ -25,8 +25,7 @@ import cpw.mods.fml.common.ITickHandler; import cpw.mods.fml.common.TickType; /** - * Called before and after the 3D world is rendered (tickEnd is called BEFORE - * the 2D gui is drawn... I think?). + * Called before and after the 3D world is rendered (tickEnd is called BEFORE the 2D gui is drawn... I think?). * * @param float tickData[0] the amount of time (0.0f-1.0f) since the last tick. * @@ -56,15 +55,13 @@ public class RenderTickHandler implements ITickHandler { } if (Minecraft.getMinecraft().currentScreen == null) { Minecraft mc = Minecraft.getMinecraft(); - ScaledResolution screen = new ScaledResolution(mc.gameSettings, - mc.displayWidth, mc.displayHeight); + ScaledResolution screen = new ScaledResolution(mc.gameSettings, mc.displayWidth, mc.displayHeight); int i = player.inventory.currentItem; ItemStack stack = player.inventory.mainInventory[i]; if (stack != null && stack.getItem() instanceof IModularItem) { MuseRenderer.blendingOn(); NBTTagCompound itemTag = MuseItemUtils.getMuseItemTag(stack); - int swapTime = (int) Math.min(System.currentTimeMillis() - - lastSwapTime, SWAPTIME); + int swapTime = (int) Math.min(System.currentTimeMillis() - lastSwapTime, SWAPTIME); MuseIcon currentMode = null; MuseIcon nextMode = null; MuseIcon prevMode = null; @@ -72,8 +69,7 @@ public class RenderTickHandler implements ITickHandler { String mode = itemTag.getString("Mode"); int modeIndex = modes.indexOf(mode); if (modeIndex > -1) { - String prevModeName = modes.get((modeIndex + modes.size() - 1) % - modes.size()); + String prevModeName = modes.get((modeIndex + modes.size() - 1) % modes.size()); String nextModeName = modes.get((modeIndex + 1) % modes.size()); IPowerModule module = ModuleManager.getModule(mode); IPowerModule nextModule = ModuleManager.getModule(nextModeName); @@ -109,15 +105,9 @@ public class RenderTickHandler implements ITickHandler { prevAlpha = 0.4; currAlpha = 0.8; nextAlpha = 0.4; - MuseRenderer.drawIconPartial(prevX, prevY, prevMode, - Colour.WHITE.withAlpha(prevAlpha), 0, 0, 16, sh + baroffset - prevY + - 16); - MuseRenderer.drawIconPartial(currX, currY, currentMode, - Colour.WHITE.withAlpha(currAlpha), 0, 0, 16, sh + baroffset - currY + - 16); - MuseRenderer.drawIconPartial(nextX, nextY, nextMode, - Colour.WHITE.withAlpha(nextAlpha), 0, 0, 16, sh + baroffset - nextY + - 16); + MuseRenderer.drawIconPartial(prevX, prevY, prevMode, Colour.WHITE.withAlpha(prevAlpha), 0, 0, 16, sh + baroffset - prevY + 16); + MuseRenderer.drawIconPartial(currX, currY, currentMode, Colour.WHITE.withAlpha(currAlpha), 0, 0, 16, sh + baroffset - currY + 16); + MuseRenderer.drawIconPartial(nextX, nextY, nextMode, Colour.WHITE.withAlpha(nextAlpha), 0, 0, 16, sh + baroffset - nextY + 16); } else { prevAlpha = 0.8; currAlpha = 0.8; @@ -129,28 +119,20 @@ public class RenderTickHandler implements ITickHandler { nextY = (currY * r1 + nextY * r2); currX = (prevX * r1 + currX * r2); currY = (prevY * r1 + currY * r2); - MuseRenderer.drawIconPartial( - currX, currY, currentMode, - Colour.WHITE.withAlpha(currAlpha), - 0, 0, 16, sh + baroffset - currY + 16); - MuseRenderer.drawIconPartial( - nextX, nextY, nextMode, - Colour.WHITE.withAlpha(nextAlpha), - 0, 0, 16, sh + baroffset - nextY + 16); + MuseRenderer.drawIconPartial(currX, currY, currentMode, Colour.WHITE.withAlpha(currAlpha), 0, 0, 16, sh + baroffset - currY + + 16); + MuseRenderer + .drawIconPartial(nextX, nextY, nextMode, Colour.WHITE.withAlpha(nextAlpha), 0, 0, 16, sh + baroffset - nextY + 16); } else { prevX = (currX * r1 + prevX * r2); prevY = (currY * r1 + prevY * r2); currX = (nextX * r1 + currX * r2); currY = (nextY * r1 + currY * r2); - MuseRenderer.drawIconPartial( - prevX, prevY, prevMode, - Colour.WHITE.withAlpha(prevAlpha), - 0, 0, 16, sh + baroffset - prevY + 16); - MuseRenderer.drawIconPartial( - currX, currY, currentMode, - Colour.WHITE.withAlpha(currAlpha), - 0, 0, 16, sh + baroffset - currY + 16); + MuseRenderer + .drawIconPartial(prevX, prevY, prevMode, Colour.WHITE.withAlpha(prevAlpha), 0, 0, 16, sh + baroffset - prevY + 16); + MuseRenderer.drawIconPartial(currX, currY, currentMode, Colour.WHITE.withAlpha(currAlpha), 0, 0, 16, sh + baroffset - currY + + 16); } }