summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.classpath73
-rw-r--r--.gitignore3
-rw-r--r--.gradle/2.0/taskArtifacts/cache.properties1
-rw-r--r--.gradle/2.0/taskArtifacts/cache.properties.lockbin0 -> 17 bytes
-rw-r--r--.gradle/2.0/taskArtifacts/fileHashes.binbin0 -> 1342108 bytes
-rw-r--r--.gradle/2.0/taskArtifacts/fileSnapshots.binbin0 -> 6500335 bytes
-rw-r--r--.gradle/2.0/taskArtifacts/outputFileStates.binbin0 -> 19592 bytes
-rw-r--r--.gradle/2.0/taskArtifacts/taskArtifacts.binbin0 -> 45577 bytes
-rw-r--r--.gradle/gradle.log37
-rw-r--r--.project16
-rw-r--r--.settings/org.eclipse.jdt.core.prefs13
-rw-r--r--CREDITS-fml.txt28
-rw-r--r--CrestMount.pngbin0 -> 533 bytes
-rw-r--r--CrestMount.tcnbin0 -> 1456 bytes
-rw-r--r--LICENSE-fml.txt491
-rw-r--r--MinecraftForge-Credits.txt26
-rw-r--r--MinecraftForge-License.txt70
-rw-r--r--ModelCrestMount.java83
-rw-r--r--README.txt37
-rw-r--r--bin/assets/tinker/lang/en_US.lang3
-rw-r--r--bin/assets/tinker/textures/items/AeonSteelIngot.pngbin0 -> 545 bytes
-rw-r--r--bin/assets/tinker/textures/items/QueensGoldIngot.pngbin0 -> 334 bytes
-rw-r--r--bin/assets/tinker/textures/items/broadsword/queensgold_broadsword_accessory.pngbin0 -> 226 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/_shield_binding.pngbin0 -> 311 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/_shield_edge.pngbin0 -> 327 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/_shield_face.pngbin0 -> 230 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/_shield_face_broken.pngbin0 -> 273 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/_shield_face_other.pngbin0 -> 234 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/beheading_shield_effect.pngbin0 -> 317 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/blaze_shield_effect.pngbin0 -> 224 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/diamond_shield_effect.pngbin0 -> 301 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/emerald_shield_effect.pngbin0 -> 229 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/flux_shield_effect.pngbin0 -> 226 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/lapis_shield_effect.pngbin0 -> 224 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/lava_shield_effect.pngbin0 -> 224 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/moss_shield_effect.pngbin0 -> 353 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/necrotic_shield_effect.pngbin0 -> 219 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/piston_shield_effect.pngbin0 -> 294 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/quartz_shield_effect.pngbin0 -> 252 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/redstone_shield_effect.pngbin0 -> 217 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/reinforced_shield_effect.pngbin0 -> 357 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/silk_shield_effect.pngbin0 -> 336 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/smite_shield_effect.pngbin0 -> 202 bytes
-rw-r--r--bin/assets/tinker/textures/items/heatershield/spider_shield_effect.pngbin0 -> 216 bytes
-rw-r--r--bin/assets/tinker/textures/items/longsword/queensgold_longsword_accessory.pngbin0 -> 374 bytes
-rw-r--r--bin/assets/tinker/textures/items/rapier/queensgold_rapier_accessory.pngbin0 -> 265 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/_shield_boss.pngbin0 -> 208 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/_shield_edge.pngbin0 -> 338 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/_shield_face.pngbin0 -> 286 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/_shield_face_broken.pngbin0 -> 331 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/beheading_shield_effect.pngbin0 -> 291 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/diamond_shield_effect.pngbin0 -> 265 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/emerald_shield_effect.pngbin0 -> 234 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/flux_shield_effect.pngbin0 -> 264 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/lapis_shield_effect.pngbin0 -> 280 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/lava_shield_effect.pngbin0 -> 230 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/moss_shield_effect.pngbin0 -> 376 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/necrotic_shield_effect.pngbin0 -> 283 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/piston_shield_effect.pngbin0 -> 298 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/quartz_shield_effect.pngbin0 -> 214 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/redstone_shield_effect.pngbin0 -> 219 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/reinforced_shield_effect.pngbin0 -> 294 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/silk_shield_effect.pngbin0 -> 300 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/smite_shield_effect.pngbin0 -> 230 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/spider_shield_effect.pngbin0 -> 217 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/steel_shield_boss.pngbin0 -> 261 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/steel_shield_edge.pngbin0 -> 396 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/wood_shield_boss.pngbin0 -> 236 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/wood_shield_edge.pngbin0 -> 745 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/wood_shield_face.pngbin0 -> 485 bytes
-rw-r--r--bin/assets/tinker/textures/items/shield/wood_shield_face_broken.pngbin0 -> 515 bytes
-rw-r--r--bin/assets/tinkersdefense/lang/en_US.lang20
-rw-r--r--bin/assets/tinkersdefense/textures/armor/TinkerArmor.pngbin0 -> 923 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/armor/TinkerArmor.tcnbin0 -> 2094 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/armor/TinkerArmor2.pngbin0 -> 823 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/armor/TinkerHelm.pngbin0 -> 492 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/AeonSteelBlock.pngbin0 -> 633 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/CrestMount.pngbin0 -> 533 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/DogbeariumBlock.pngbin0 -> 767 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/QueensGoldBlock.pngbin0 -> 259 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.pngbin0 -> 10409 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png.mcmeta45
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.pngbin0 -> 9681 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png.mcmeta5
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium.pngbin0 -> 8270 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png.mcmeta45
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.pngbin0 -> 8833 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png.mcmeta5
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_QueensGold.pngbin0 -> 10664 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_QueensGold.png.mcmeta45
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.pngbin0 -> 10141 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png.mcmeta5
-rw-r--r--bin/assets/tinkersdefense/textures/gui/icons.pngbin0 -> 8692 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/items/AeonSteelIngot.pngbin0 -> 545 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/items/DogbeariumIngot.pngbin0 -> 374 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/items/QueensGoldIngot.pngbin0 -> 334 bytes
-rw-r--r--bin/assets/tinkersdefense/textures/items/longsword/queensgold_longsword_accessory.pngbin0 -> 364 bytes
-rw-r--r--bin/gmail/Lance5057/items/TinkerHelm.tcnbin0 -> 1556 bytes
-rw-r--r--bin/mcmod.info14
-rw-r--r--build.gradle39
-rw-r--r--gradle/wrapper/gradle-wrapper.properties6
-rw-r--r--gradlew164
-rw-r--r--gradlew.bat90
-rw-r--r--src/api/java/cofh/api/energy/IEnergyContainerItem.java52
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaBlock.java34
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaBlockDecorator.java9
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaConfigHandler.java28
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaDataAccessor.java33
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaDataProvider.java33
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaEntityAccessor.java24
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaEntityProvider.java16
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaFMPAccessor.java27
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaFMPDecorator.java7
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaFMPProvider.java12
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaRegistrar.java44
-rw-r--r--src/api/java/mcp/mobius/waila/api/IWailaSummaryProvider.java21
-rw-r--r--src/api/java/mcp/mobius/waila/api/SpecialChars.java40
-rw-r--r--src/api/java/mcp/mobius/waila/api/package-info.java3
-rw-r--r--src/api/java/morph/api/Ability.java208
-rw-r--r--src/api/java/morph/api/Api.java170
-rw-r--r--src/api/java/powercrystals/minefactoryreloaded/api/FactoryRegistry.java113
-rw-r--r--src/api/java/powercrystals/minefactoryreloaded/api/HarvestType.java44
-rw-r--r--src/api/java/powercrystals/minefactoryreloaded/api/IFactoryGrindable.java35
-rw-r--r--src/api/java/powercrystals/minefactoryreloaded/api/IFactoryHarvestable.java71
-rw-r--r--src/api/java/powercrystals/minefactoryreloaded/api/ILiquidDrinkHandler.java8
-rw-r--r--src/api/java/powercrystals/minefactoryreloaded/api/MobDrop.java21
-rw-r--r--src/api/java/powercrystals/minefactoryreloaded/api/ValuedItem.java72
-rw-r--r--src/api/java/thaumcraft/api/IGoggles.java22
-rw-r--r--src/main/java/gmail/Lance5057/blocks/AeonSteelBlock.java15
-rw-r--r--src/main/java/gmail/Lance5057/blocks/CrestMount.java43
-rw-r--r--src/main/java/gmail/Lance5057/blocks/DogbeariumBlock.java15
-rw-r--r--src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java87
-rw-r--r--src/main/java/gmail/Lance5057/blocks/QueensGoldBlock.java15
-rw-r--r--src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java60
-rw-r--r--src/main/java/gmail/Lance5057/blocks/TileEntity_CrestMount.java7
-rw-r--r--src/main/java/gmail/Lance5057/com/HeaterShield.java256
-rw-r--r--src/main/java/gmail/Lance5057/com/RoundShield.java249
-rw-r--r--src/main/java/gmail/Lance5057/com/RoyalGuard.java42
-rw-r--r--src/main/java/gmail/Lance5057/com/Shield.java121
-rw-r--r--src/main/java/gmail/Lance5057/com/mod_TinkersDefense.java312
-rw-r--r--src/main/java/gmail/Lance5057/com/moltenAeonsteelFluid.java59
-rw-r--r--src/main/java/gmail/Lance5057/com/moltenDogbeariumFluid.java59
-rw-r--r--src/main/java/gmail/Lance5057/com/moltenQueensGoldFluid.java59
-rw-r--r--src/main/java/gmail/Lance5057/items/AeonSteelIngot.java12
-rw-r--r--src/main/java/gmail/Lance5057/items/DogbeariumIngot.java11
-rw-r--r--src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java109
-rw-r--r--src/main/java/gmail/Lance5057/items/QueensGoldIngot.java11
-rw-r--r--src/main/java/gmail/Lance5057/items/TinkerArmor.java76
-rw-r--r--src/main/java/gmail/Lance5057/items/TinkerHelm.tcnbin0 -> 1556 bytes
-rw-r--r--src/main/java/gmail/Lance5057/proxy/ClientProxy.java36
-rw-r--r--src/main/java/gmail/Lance5057/proxy/CommonProxy.java21
-rw-r--r--src/main/resources/assets/tinker/lang/en_US.lang3
-rw-r--r--src/main/resources/assets/tinker/textures/items/AeonSteelIngot.pngbin0 -> 545 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/QueensGoldIngot.pngbin0 -> 334 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/broadsword/queensgold_broadsword_accessory.pngbin0 -> 226 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/_shield_binding.pngbin0 -> 311 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/_shield_edge.pngbin0 -> 327 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/_shield_face.pngbin0 -> 230 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/_shield_face_broken.pngbin0 -> 273 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/_shield_face_other.pngbin0 -> 234 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/beheading_shield_effect.pngbin0 -> 317 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/blaze_shield_effect.pngbin0 -> 224 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/diamond_shield_effect.pngbin0 -> 301 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/emerald_shield_effect.pngbin0 -> 229 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/flux_shield_effect.pngbin0 -> 226 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/lapis_shield_effect.pngbin0 -> 224 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/lava_shield_effect.pngbin0 -> 224 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/moss_shield_effect.pngbin0 -> 353 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/necrotic_shield_effect.pngbin0 -> 219 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/piston_shield_effect.pngbin0 -> 294 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/quartz_shield_effect.pngbin0 -> 252 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/redstone_shield_effect.pngbin0 -> 217 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/reinforced_shield_effect.pngbin0 -> 357 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/silk_shield_effect.pngbin0 -> 336 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/smite_shield_effect.pngbin0 -> 202 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/heatershield/spider_shield_effect.pngbin0 -> 216 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/longsword/queensgold_longsword_accessory.pngbin0 -> 374 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/rapier/queensgold_rapier_accessory.pngbin0 -> 265 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/_shield_boss.pngbin0 -> 208 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/_shield_edge.pngbin0 -> 338 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/_shield_face.pngbin0 -> 286 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/_shield_face_broken.pngbin0 -> 331 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/beheading_shield_effect.pngbin0 -> 291 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/diamond_shield_effect.pngbin0 -> 265 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/emerald_shield_effect.pngbin0 -> 234 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/flux_shield_effect.pngbin0 -> 264 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/lapis_shield_effect.pngbin0 -> 280 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/lava_shield_effect.pngbin0 -> 230 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/moss_shield_effect.pngbin0 -> 376 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/necrotic_shield_effect.pngbin0 -> 283 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/piston_shield_effect.pngbin0 -> 298 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/quartz_shield_effect.pngbin0 -> 214 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/redstone_shield_effect.pngbin0 -> 219 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/reinforced_shield_effect.pngbin0 -> 294 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/silk_shield_effect.pngbin0 -> 300 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/smite_shield_effect.pngbin0 -> 230 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/spider_shield_effect.pngbin0 -> 217 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/steel_shield_boss.pngbin0 -> 261 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/steel_shield_edge.pngbin0 -> 396 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/wood_shield_boss.pngbin0 -> 236 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/wood_shield_edge.pngbin0 -> 745 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/wood_shield_face.pngbin0 -> 485 bytes
-rw-r--r--src/main/resources/assets/tinker/textures/items/shield/wood_shield_face_broken.pngbin0 -> 515 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/lang/en_US.lang20
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor.pngbin0 -> 923 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor.tcnbin0 -> 2094 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor2.pngbin0 -> 823 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/armor/TinkerHelm.pngbin0 -> 492 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/AeonSteelBlock.pngbin0 -> 633 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/CrestMount.pngbin0 -> 533 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/DogbeariumBlock.pngbin0 -> 767 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/QueensGoldBlock.pngbin0 -> 259 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.pngbin0 -> 10409 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png.mcmeta45
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.pngbin0 -> 9681 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png.mcmeta5
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium.pngbin0 -> 8270 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png.mcmeta45
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.pngbin0 -> 8833 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png.mcmeta5
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold.pngbin0 -> 10664 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold.png.mcmeta45
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.pngbin0 -> 10141 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png.mcmeta5
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/gui/icons.pngbin0 -> 8692 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/items/AeonSteelIngot.pngbin0 -> 545 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/items/DogbeariumIngot.pngbin0 -> 374 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/items/QueensGoldIngot.pngbin0 -> 334 bytes
-rw-r--r--src/main/resources/assets/tinkersdefense/textures/items/longsword/queensgold_longsword_accessory.pngbin0 -> 364 bytes
-rw-r--r--src/main/resources/mcmod.info14
230 files changed, 4373 insertions, 0 deletions
diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..420f506
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="src" path="src/main/resources"/>
+ <classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="src" path="src/api/java"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/Desktop/Minecraft Modding/1.7.10/build/dirtyArtifacts/forgeSrc-1.7.10-10.13.2.1240.jar" sourcepath="C:/Users/T/Desktop/Minecraft Modding/1.7.10/build/dirtyArtifacts/forgeSrc-1.7.10-10.13.2.1240-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.minecraft/launchwrapper/1.11/9c0592c6e1e9ea296a70948081bd4cc84dda1289/launchwrapper-1.11.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.minecraft/launchwrapper/1.11/ea64c0bce5e9f465cd56566530133331568d2157/launchwrapper-1.11-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/1.3.9/40719ea6961c0cb6afaeb6a921eaa1f6afd4cfdf/jsr305-1.3.9.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-debug-all/5.0.3/f9e364ae2a66ce2a543012a4668856e84e5dab74/asm-debug-all-5.0.3.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-debug-all/5.0.3/f0f24f6666c1a15c7e202e91610476bd4ce59368/asm-debug-all-5.0.3-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.typesafe.akka/akka-actor_2.11/2.3.3/ed62e9fc709ca0f2ff1a3220daa8b70a2870078e/akka-actor_2.11-2.3.3.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.typesafe.akka/akka-actor_2.11/2.3.3/9dbceb71c4fd943b4eb4607847261075a989d47f/akka-actor_2.11-2.3.3-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.typesafe/config/1.2.1/f771f71fdae3df231bcd54d5ca2d57f0bf93f467/config-1.2.1.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.typesafe/config/1.2.1/bdacf4f82ce9b29cd474bfde2e91eeb0ca623d28/config-1.2.1-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors-migration_2.11/1.1.0/dfa8bc42b181d5b9f1a5dd147f8ae308b893eb6f/scala-actors-migration_2.11-1.1.0.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors-migration_2.11/1.1.0/6bccac72dae4d369537e313d12087c1ca295e84f/scala-actors-migration_2.11-1.1.0-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.11.1/56ea2e6c025e0821f28d73ca271218b8dd04926a/scala-compiler-2.11.1.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-compiler/2.11.1/b031d401aabbf7f5f725db500575da3dff90065f/scala-compiler-2.11.1-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-library_2.11/1.0.2/e517c53a7e9acd6b1668c5a35eccbaa3bab9aac/scala-continuations-library_2.11-1.0.2.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-library_2.11/1.0.2/495afc106eeaa1b3367f6be0bc3768c398e4d360/scala-continuations-library_2.11-1.0.2-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-plugin_2.11.1/1.0.2/f361a3283452c57fa30c1ee69448995de23c60f7/scala-continuations-plugin_2.11.1-1.0.2.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.plugins/scala-continuations-plugin_2.11.1/1.0.2/c6f3c092ab731f3cf83fdb376ebc465a243c1f4c/scala-continuations-plugin_2.11.1-1.0.2-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.11.1/e11da23da3eabab9f4777b9220e60d44c1aab6a/scala-library-2.11.1.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.11.1/8355e4b6841f772a287167666bad6e9860ac4d3c/scala-library-2.11.1-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-parser-combinators_2.11/1.0.1/f05d7345bf5a58924f2837c6c1f4d73a938e1ff0/scala-parser-combinators_2.11-1.0.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.11.1/6580347e61cc7f8e802941e7fde40fa83b8badeb/scala-reflect-2.11.1.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-reflect/2.11.1/d4c5628e197a0d6af8e9b93a9be32190c547bc8a/scala-reflect-2.11.1-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-swing_2.11/1.0.1/b1cdd92bd47b1e1837139c1c53020e86bb9112ae/scala-swing_2.11-1.0.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-xml_2.11/1.0.2/7a80ec00aec122fba7cd4e0d4cdd87ff7e4cb6d0/scala-xml_2.11-1.0.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/4.5/6065cc95c661255349c1d0756657be17c29a4fd3/jopt-simple-4.5.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/4.5/3cf4c3c1a6f565419bfd53a0e564d6fb128deeea/jopt-simple-4.5-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/lzma/lzma/0.0.1/521616dc7487b42bef0e803bd2fa3faf668101d7/lzma-0.0.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.mojang/realms/1.3.5/807ae355ee63583becd7ea60e76aab1532bb42e/realms-1.3.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.8.1/a698750c16740fd5b3871425f4cb3bbaa87f529d/commons-compress-1.8.1.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.8.1/3caea4421428752206c7a94c3e3097f0c47f1bb8/commons-compress-1.8.1-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.3.3/18f4247ff4572a074444572cee34647c43e7c9c7/httpclient-4.3.3.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.3.3/65cba03c4f6207f2885f88206fcf52c53f8d111b/httpclient-4.3.3-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.1.3/f6f66e966c70a83ffbdb6f17a0919eaf7c8aca7f/commons-logging-1.1.3.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-logging/commons-logging/1.1.3/28bb0405fddaf04f15058fbfbe01fe2780d7d3b6/commons-logging-1.1.3-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/31fbbff1ddbf98f3aa7377c94d33b0447c646b6e/httpcore-4.3.2.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/4809f38359edeea9487f747e09aa58ec8d3a54c5/httpcore-4.3.2-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/java3d/vecmath/1.3.1/a0ae4f51da409fa0c20fa0ca59e6bbc9413ae71d/vecmath-1.3.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.sf.trove4j/trove4j/3.0.3/42ccaf4761f0dfdfa805c9e340d99a755907e2dd/trove4j-3.0.3.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.sf.trove4j/trove4j/3.0.3/109c5be93362e6e651e417c51d1863477a22969c/trove4j-3.0.3-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.ibm.icu/icu4j-core-mojang/51.2/63d216a9311cca6be337c1e458e587f99d382b84/icu4j-core-mojang-51.2.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.ibm.icu/icu4j-core-mojang/51.2/814397ccbafff1132758e551c37396c528d7f2d7/icu4j-core-mojang-51.2-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/codecjorbis/20101023/c73b5636faf089d9f00e8732a829577de25237ee/codecjorbis-20101023.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/codecjorbis/20101023/4ca2436396bc14ebd78b7db1d4e11ca607c8705e/codecjorbis-20101023-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/codecwav/20101023/12f031cfe88fef5c1dd36c563c0a3a69bd7261da/codecwav-20101023.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/codecwav/20101023/71ec00b9b9c1a6a2c3a8a25f481a23ddb5b21ddb/codecwav-20101023-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/libraryjavasound/20101123/5c5e304366f75f9eaa2e8cca546a1fb6109348b3/libraryjavasound-20101123.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/libraryjavasound/20101123/945ff5711de27751cf699641d1ea316ba6cf7589/libraryjavasound-20101123-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/librarylwjglopenal/20100824/73e80d0794c39665aec3f62eee88ca91676674ef/librarylwjglopenal-20100824.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/librarylwjglopenal/20100824/ecfc8dac1d41bef748997e4edf563d486923ee1e/librarylwjglopenal-20100824-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/soundsystem/20120107/419c05fe9be71f792b2d76cfc9b67f1ed0fec7f6/soundsystem-20120107.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.paulscode/soundsystem/20120107/1b9f4eb11ef11fede7fd76a2e5e8203c2a8adcd/soundsystem-20120107-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/io.netty/netty-all/4.0.10.Final/9e50bd52ffe257a0e2cd8d971688d6ce7d174325/netty-all-4.0.10.Final.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/io.netty/netty-all/4.0.10.Final/9a214bc1e6350ead5234e4dd5eb3a2a802d1c658/netty-all-4.0.10.Final-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.4/b1b6ea3b7e4aa4f492509a4952029cd8e48019ad/commons-io-2.4.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.4/f2d8698c46d1167ff24b06a840a87d91a02db891/commons-io-2.4-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.9/9ce04e34240f674bc72680f8b843b1457383161a/commons-codec-1.9.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.9/3f15fff45d57656685abfee9e8302bf14580044c/commons-codec-1.9-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput/2.0.5/39c7796b469a600f72380316f6b1f11db6c2c7c4/jinput-2.0.5.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput/2.0.5/82604cfeb87b9ab70ed70aa19a137de8ceb21504/jinput-2.0.5-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jutils/jutils/1.0.0/e12fe1fda814bd348c1579329c86943d2cd3c6a6/jutils-1.0.0.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jutils/jutils/1.0.0/d18678a00b216863206a1bb6190507e02a32971b/jutils-1.0.0-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.2.4/a60a5e993c98c864010053cb901b7eab25306568/gson-2.2.4.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.2.4/a6dc5db8a12928e583bd3f23e72d3ab611ecd58f/gson-2.2.4-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.mojang/authlib/1.5.16/ef1582b11fd0943d069cdcb72e99008ac209a283/authlib-1.5.16.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.mojang/authlib/1.5.16/f7d1af1fd1232bb4f2e7898f059b536ad5bc950/authlib-1.5.16-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.0-beta9/1dd66e68cccd907880229f9e2de1314bd13ff785/log4j-api-2.0-beta9.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.0-beta9/c6682b8a47ddd9f29108838aed0dc8e0ffdedf68/log4j-api-2.0-beta9-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.0-beta9/678861ba1b2e1fccb594bb0ca03114bb05da9695/log4j-core-2.0-beta9.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.0-beta9/c7da50fd52d6ee6991a0e16e2df1431f7656a7f4/log4j-core-2.0-beta9-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl/2.9.1/f58c5aabcef0e41718a564be9f8e412fff8db847/lwjgl-2.9.1.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl/2.9.1/ccedb5b6f96913c6f78bc10249e747ded90baa51/lwjgl-2.9.1-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl_util/2.9.1/290d7ba8a1bd9566f5ddf16ad06f09af5ec9b20e/lwjgl_util-2.9.1.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl_util/2.9.1/9f350d8a760247f2ae88e996b55f8f7121346c79/lwjgl_util-2.9.1-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/tv.twitch/twitch/5.16/1f55f009c61637c10c0acfb8b5ffc600f30044b4/twitch-5.16.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors/2.11.0/8ccfb6541de179bb1c4d45cf414acee069b7f78b/scala-actors-2.11.0.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-actors/2.11.0/e1dfa274766d5278166b0d660294fe96396693b2/scala-actors-2.11.0-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.11/1.0.2/820fbca7e524b530fdadc594c39d49a21ea0337e/scala-xml_2.11-1.0.2.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-xml_2.11/1.0.2/312c3557d1ca0b34820f3b3fc5404a47936ceb26/scala-xml_2.11-1.0.2-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-parser-combinators_2.11/1.0.1/f05d7345bf5a58924f2837c6c1f4d73a938e1ff0/scala-parser-combinators_2.11-1.0.1.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.scala-lang.modules/scala-parser-combinators_2.11/1.0.1/34d013c02d0b73794ba2911552896dd9c00f34c3/scala-parser-combinators_2.11-1.0.1-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput-platform/2.0.5/7ff832a6eb9ab6a767f1ade2b548092d0fa64795/jinput-platform-2.0.5-natives-linux.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput-platform/2.0.5/385ee093e01f587f30ee1c8a2ee7d408fd732e16/jinput-platform-2.0.5-natives-windows.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/net.java.jinput/jinput-platform/2.0.5/53f9c919f34d2ca9de8c51fc4e1e8282029a9232/jinput-platform-2.0.5-natives-osx.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/tv.twitch/twitch-platform/5.16/7c6affe439099806a4f552da14c42f9d643d8b23/twitch-platform-5.16-natives-windows-32.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/tv.twitch/twitch-platform/5.16/39d0c3d363735b4785598e0e7fbf8297c706a9f9/twitch-platform-5.16-natives-windows-64.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/tv.twitch/twitch-platform/5.16/62503ee712766cf77f97252e5902786fd834b8c5/twitch-platform-5.16-natives-osx.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/tv.twitch/twitch-external-platform/4.5/18215140f010c05b9f86ef6f0f8871954d2ccebf/twitch-external-platform-4.5-natives-windows-32.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/tv.twitch/twitch-external-platform/4.5/c3cde57891b935d41b6680a9c5e1502eeab76d86/twitch-external-platform-4.5-natives-windows-64.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl-platform/2.9.1/4c517eca808522457dd95ee8fc1fbcdbb602efbe/lwjgl-platform-2.9.1-natives-windows.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl-platform/2.9.1/aa9aae879af8eb378e22cfc64db56ec2ca9a44d1/lwjgl-platform-2.9.1-natives-linux.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.lwjgl.lwjgl/lwjgl-platform/2.9.1/2d12c83fdfbc04ecabf02c7bc8cc54d034f0daac/lwjgl-platform-2.9.1-natives-osx.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/17.0/9c6ef172e8de35fd8d4d8783e4821e57cdef7445/guava-17.0.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/17.0/7ca0efbeb87ca845b5d7a0ac9c21a4b7b95f7b28/guava-17.0-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.3.2/90a3822c38ec8c996e84c16a3477ef632cbc87a3/commons-lang3-3.3.2.jar" sourcepath="C:/Users/T/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.3.2/d2a489573c0ed2c4942b3660decad5d65087b406/commons-lang3-3.3.2-sources.jar"/>
+ <classpathentry exported="true" kind="lib" path="C:/Users/T/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.10-10.13.2.1240/start"/>
+ <classpathentry kind="lib" path="C:/Users/T/Desktop/Minecraft Modding/1.7.10/jars/TConstruct-1.7.10-1.7.1.DEV.GITBORK-deobf.jar"/>
+ <classpathentry kind="lib" path="C:/Users/T/Desktop/Minecraft Modding/1.7.10/jars/mods/CodeChickenLib-1.7.10-1.1.1.106-dev.jar"/>
+ <classpathentry kind="lib" path="C:/Users/T/Desktop/Minecraft Modding/1.7.10/jars/mods/ForgeMultipart-1.7.10-1.1.0.314-dev.jar"/>
+ <classpathentry kind="lib" path="C:/Users/T/Desktop/Minecraft Modding/1.7.10/jars/mods/Mantle-1.7.10-0.3.2.DEV.GITBORK-deobf.jar"/>
+ <classpathentry kind="lib" path="C:/Users/T/Desktop/Minecraft Modding/1.7.10/jars/mods/NotEnoughItems-1.7.10-1.0.3.72-dev.jar"/>
+ <classpathentry kind="lib" path="C:/Users/T/Desktop/Minecraft Modding/1.7.10/eclipse/mods/1.7.10-Battlegear-Bin-1.0.6.3.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/.gitignore b/.gitignore
index 3ad1de1..99f3fa5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -57,3 +57,6 @@ $RECYCLE.BIN/
# Windows shortcuts
*.lnk
+
+# Exclude eclipse build folder
+/eclipse/*
diff --git a/.gradle/2.0/taskArtifacts/cache.properties b/.gradle/2.0/taskArtifacts/cache.properties
new file mode 100644
index 0000000..24cf227
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/cache.properties
@@ -0,0 +1 @@
+#Sat Dec 06 15:27:47 CST 2014
diff --git a/.gradle/2.0/taskArtifacts/cache.properties.lock b/.gradle/2.0/taskArtifacts/cache.properties.lock
new file mode 100644
index 0000000..42aec80
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/cache.properties.lock
Binary files differ
diff --git a/.gradle/2.0/taskArtifacts/fileHashes.bin b/.gradle/2.0/taskArtifacts/fileHashes.bin
new file mode 100644
index 0000000..a8bdcdf
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/fileHashes.bin
Binary files differ
diff --git a/.gradle/2.0/taskArtifacts/fileSnapshots.bin b/.gradle/2.0/taskArtifacts/fileSnapshots.bin
new file mode 100644
index 0000000..7d61e41
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/fileSnapshots.bin
Binary files differ
diff --git a/.gradle/2.0/taskArtifacts/outputFileStates.bin b/.gradle/2.0/taskArtifacts/outputFileStates.bin
new file mode 100644
index 0000000..3eb9eab
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/outputFileStates.bin
Binary files differ
diff --git a/.gradle/2.0/taskArtifacts/taskArtifacts.bin b/.gradle/2.0/taskArtifacts/taskArtifacts.bin
new file mode 100644
index 0000000..67c1f17
--- /dev/null
+++ b/.gradle/2.0/taskArtifacts/taskArtifacts.bin
Binary files differ
diff --git a/.gradle/gradle.log b/.gradle/gradle.log
new file mode 100644
index 0000000..870d65f
--- /dev/null
+++ b/.gradle/gradle.log
@@ -0,0 +1,37 @@
+****************************
+ Powered By MCP:
+ http://mcp.ocean-labs.de/
+ Searge, ProfMobius, Fesh0r,
+ R4wk, ZeuX, IngisKahn, bspkrs
+ MCP Data version : unknown
+****************************
+:downloadClient SKIPPED
+:downloadServer SKIPPED
+:getVersionJson
+:extractUserDev UP-TO-DATE
+:mergeJars SKIPPED
+:applyBinPatches SKIPPED
+:downloadMcpTools SKIPPED
+:extractMcpData UP-TO-DATE
+:genSrgs SKIPPED
+:deobfBinJar SKIPPED
+:compileApiJava UP-TO-DATE
+:processApiResources UP-TO-DATE
+:apiClasses UP-TO-DATE
+:sourceMainJava UP-TO-DATE
+:compileJava UP-TO-DATE
+:processResources
+:classes
+:jar
+:compileTestJava UP-TO-DATE
+:processTestResources UP-TO-DATE
+:testClasses UP-TO-DATE
+:test UP-TO-DATE
+:reobf
+:assemble
+:check UP-TO-DATE
+:build
+
+BUILD SUCCESSFUL
+
+Total time: 1 mins 19.447 secs
diff --git a/.project b/.project
new file mode 100644
index 0000000..23d71c3
--- /dev/null
+++ b/.project
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>1.7.10</name>
+ <comment/>
+ <projects/>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments/>
+ </buildCommand>
+ </buildSpec>
+ <linkedResources/>
+</projectDescription>
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..2f721f8
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,13 @@
+#
+#Fri Jan 02 08:22:49 CST 2015
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
diff --git a/CREDITS-fml.txt b/CREDITS-fml.txt
new file mode 100644
index 0000000..97122f5
--- /dev/null
+++ b/CREDITS-fml.txt
@@ -0,0 +1,28 @@
+This is Forge Mod Loader.
+
+You can find the source code at all times at https://github.com/MinecraftForge/FML
+
+This minecraft mod is a clean open source implementation of a mod loader for minecraft servers
+and minecraft clients.
+
+The code is authored by cpw.
+
+It began by partially implementing an API defined by the client side ModLoader, authored by Risugami.
+http://www.minecraftforum.net/topic/75440-
+This support has been dropped as of Minecraft release 1.7, as Risugami no longer maintains ModLoader.
+
+It also contains suggestions and hints and generous helpings of code from LexManos, author of MinecraftForge.
+http://www.minecraftforge.net/
+
+Additionally, it contains an implementation of topological sort based on that
+published at http://keithschwarz.com/interesting/code/?dir=topological-sort
+
+It also contains code from the Maven project for performing versioned dependency
+resolution. http://maven.apache.org/
+
+It also contains a partial repackaging of the javaxdelta library from http://sourceforge.net/projects/javaxdelta/
+with credit to it's authors.
+
+Forge Mod Loader downloads components from the Minecraft Coder Pack
+(http://mcp.ocean-labs.de/index.php/Main_Page) with kind permission from the MCP team.
+
diff --git a/CrestMount.png b/CrestMount.png
new file mode 100644
index 0000000..61d6936
--- /dev/null
+++ b/CrestMount.png
Binary files differ
diff --git a/CrestMount.tcn b/CrestMount.tcn
new file mode 100644
index 0000000..77f597a
--- /dev/null
+++ b/CrestMount.tcn
Binary files differ
diff --git a/LICENSE-fml.txt b/LICENSE-fml.txt
new file mode 100644
index 0000000..26cca07
--- /dev/null
+++ b/LICENSE-fml.txt
@@ -0,0 +1,491 @@
+This minecraft mod, Forge Mod Loader, including all parts herein except as noted below,
+is licensed under the GNU LGPL v2.1 or later.
+
+Homepage: https://github.com/MinecraftForge/FML
+
+This software includes portions from the Apache Maven project at
+http://maven.apache.org/ specifically the ComparableVersion.java code. It is
+included based on guidelines at
+http://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html
+with notices intact. The only change is a non-functional change of package name.
+
+This software contains a partial repackaging of javaxdelta, a BSD licensed program for generating
+binary differences and applying them, sourced from the subversion at http://sourceforge.net/projects/javaxdelta/
+authored by genman, heikok, pivot.
+The only changes are to replace some Trove collection types with standard Java collections, and repackaged.
+
+
+=== MCP Data ===
+This software includes data from the Minecraft Coder Pack (MCP), with kind permission
+from them. The license to MCP data is not transitive - distribution of this data by
+third parties requires independent licensing from the MCP team. This data is not
+redistributable without permission from the MCP team.
+
+=== Sharing ===
+I grant permission for some parts of FML to be redistributed outside the terms of the LGPL, for the benefit of
+the minecraft modding community. All contributions to these parts should be licensed under the same additional grant.
+
+-- Runtime patcher --
+License is granted to redistribute the runtime patcher code (common/cpw/mods/fml/patcher and subdirectories) under
+any alternative open source license as classified by the OSI (http://opensource.org/licenses)
+
+-- ASM transformers --
+License is granted to redistribute the ASM transformer code (common/cpw/mods/fml/common/asm/ and subdirectories)
+under any alternative open source license as classified by the OSI (http://opensource.org/licenses)
+
+========
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
diff --git a/MinecraftForge-Credits.txt b/MinecraftForge-Credits.txt
new file mode 100644
index 0000000..d0de5a5
--- /dev/null
+++ b/MinecraftForge-Credits.txt
@@ -0,0 +1,26 @@
+* Eloraam *
+
+* FlowerChild *
+
+* Hawkye *
+
+* MALfunction84 *
+
+Submitted the sleep handler code for his mod (Somnia) and others to use.
+
+* Scokeev9 *
+
+Gave permission for ScotTools API to be integrated into MCF, and also supported the Forge by converting his mods to use it.
+
+ScotTools Background: ScotTools was an API that enabled modders to add blocks to harvesting levels (and many other ease-of-use features to create new tools), and the first tool API that used block material for block breaking efficiency which allowed blocks from mods that didn't use ScotTools API to break with the correct speed.
+
+* SpaceToad *
+
+* LexManos *
+
+* cpw *
+
+* Minecraft Coder Pack (MCP) *
+Forge Mod Loader and Minecraft Forge have permission to distribute and automatically download components of MCP and distribute MCP data files.
+This permission is not transitive and others wishing to redistribute the Minecraft Forge source independently should seek permission of MCP or
+remove the MCP data files and request their users to download MCP separately.
diff --git a/MinecraftForge-License.txt b/MinecraftForge-License.txt
new file mode 100644
index 0000000..1cc2a3e
--- /dev/null
+++ b/MinecraftForge-License.txt
@@ -0,0 +1,70 @@
+Minecraft Forge Public Licence
+==============================
+
+Version 1.0
+
+0. Definitions
+--------------
+
+Minecraft: Denotes a copy of the Minecraft game licensed by Mojang AB
+
+User: Anybody that interract with the software in one of the following ways:
+ - play
+ - decompile
+ - recompile or compile
+ - modify
+
+Minecraft Forge: The Minecraft Forge code, in source form, class file form, as
+obtained in a standalone fashion or as part of a wider distribution.
+
+Dependency: Code required to have Minecraft Forge working properly. That can
+include dependencies required to compile the code as well as modifications in
+the Minecraft sources that are required to have Minecraft Forge working.
+
+1. Scope
+--------
+
+The present license is granted to any user of Minecraft Forge, for all files included
+unless stated otherwise in the file itself. As a prerequisite, a user of Minecraft
+Forge must own a legally aquired copy of Minecraft.
+
+2. Play rights
+--------------
+
+The user of Minecraft Forge is allowed to install the software on a client or
+a server and to play it without restriction.
+
+3. Modification rights
+----------------------
+
+The user has the right to decompile the source code, look at either the
+decompiled version or the original source code, and to modify it.
+
+4. Derivation rights
+--------------------
+
+The user has the rights to derive code from Minecraft Forge, that is to say to
+write code that either extends Minecraft Forge class and interfaces,
+instantiate the objects declared or calls the functions. This code is known as
+"derived" code, and can be licensed with conditions different from Minecraft
+Forge.
+
+
+5. Distribution rights
+----------------------
+
+The user of Minecraft Forge is allowed to redistribute Minecraft Forge in
+partially, in totallity, or included in a distribution. When distributing
+binaries or class files, the user must provide means to obtain the sources of
+the distributed version of Minecraft Forge at no costs. This includes the
+files as well as any dependency that the code may rely on, including patches to
+minecraft original sources.
+
+Modification of Minecraft Forge as well as dependencies, including patches to
+minecraft original sources, has to remain under the terms of the present
+license.
+
+The right to distribute Minecraft Forge does not extend to the right to distribute
+MCP data files included within Minecraft Forge. These are the property of the MCP
+project and should be removed from any customized distribution of Minecraft Forge
+or permission sought separately from the MCP team.
diff --git a/ModelCrestMount.java b/ModelCrestMount.java
new file mode 100644
index 0000000..53f8244
--- /dev/null
+++ b/ModelCrestMount.java
@@ -0,0 +1,83 @@
+// Date: 1/18/2015 9:46:49 PM
+// Template version 1.1
+// Java generated by Techne
+// Keep in mind that you still need to fill in some blanks
+// - ZeuX
+
+
+
+
+
+
+package net.minecraft.src;
+
+public class ModelCrestMount extends ModelBase
+{
+ //fields
+ ModelRenderer ShieldMount;
+ ModelRenderer Base;
+ ModelRenderer SwordMount1;
+ ModelRenderer SwordMount2;
+ ModelRenderer SwordMount3;
+
+ public ModelCrestMount()
+ {
+ textureWidth = 32;
+ textureHeight = 32;
+
+ ShieldMount = new ModelRenderer(this, 20, 6);
+ ShieldMount.addBox(0F, 0F, 0F, 2, 7, 2);
+ ShieldMount.setRotationPoint(-1F, 17F, -1F);
+ ShieldMount.setTextureSize(32, 32);
+ ShieldMount.mirror = true;
+ setRotation(ShieldMount, 0F, 0F, 0F);
+ Base = new ModelRenderer(this, 0, 6);
+ Base.addBox(0F, 0F, 0F, 4, 4, 4);
+ Base.setRotationPoint(-2F, 20F, -2F);
+ Base.setTextureSize(32, 32);
+ Base.mirror = true;
+ setRotation(Base, 0F, 0F, 0F);
+ SwordMount1 = new ModelRenderer(this, 0, 0);
+ SwordMount1.addBox(-5F, 0F, -2F, 10, 2, 4);
+ SwordMount1.setRotationPoint(0F, 22F, 0F);
+ SwordMount1.setTextureSize(32, 32);
+ SwordMount1.mirror = true;
+ setRotation(SwordMount1, 0F, 0.7853982F, 0F);
+ SwordMount2 = new ModelRenderer(this, 0, 0);
+ SwordMount2.addBox(-5F, 0F, -2F, 10, 2, 4);
+ SwordMount2.setRotationPoint(0F, 22F, 0F);
+ SwordMount2.setTextureSize(32, 32);
+ SwordMount2.mirror = true;
+ setRotation(SwordMount2, 0F, -0.7853982F, 0F);
+ SwordMount3 = new ModelRenderer(this, 0, 0);
+ SwordMount3.addBox(-5F, 0F, -2F, 10, 2, 4);
+ SwordMount3.setRotationPoint(0F, 21.9F, 0F);
+ SwordMount3.setTextureSize(32, 32);
+ SwordMount3.mirror = true;
+ setRotation(SwordMount3, 0F, 1.570796F, 0F);
+ }
+
+ public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
+ {
+ super.render(entity, f, f1, f2, f3, f4, f5);
+ setRotationAngles(f, f1, f2, f3, f4, f5);
+ ShieldMount.render(f5);
+ Base.render(f5);
+ SwordMount1.render(f5);
+ SwordMount2.render(f5);
+ SwordMount3.render(f5);
+ }
+
+ private void setRotation(ModelRenderer model, float x, float y, float z)
+ {
+ model.rotateAngleX = x;
+ model.rotateAngleY = y;
+ model.rotateAngleZ = z;
+ }
+
+ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5)
+ {
+ super.setRotationAngles(f, f1, f2, f3, f4, f5);
+ }
+
+}
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000..744ba3b
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,37 @@
+-------------------------------------------
+Source installation information for modders
+-------------------------------------------
+This code follows the Minecraft Forge installation methodology. It will apply
+some small patches to the vanilla MCP source code, giving you and it access
+to some of the data and functions you need to build a successful mod.
+
+Note also that the patches are built against "unrenamed" MCP source code (aka
+srgnames) - this means that you will not be able to read them directly against
+normal code.
+
+Source pack installation information:
+
+Standalone source installation
+==============================
+
+To install this source code for development purposes, extract this zip file.
+It ships with a demonstration mod. Run 'gradlew setupDevWorkspace' to create
+a gradle environment primed with FML. Run 'gradlew eclipse' or 'gradlew idea' to
+create an IDE workspace of your choice.
+Refer to ForgeGradle for more information about the gradle environment
+Note: On macs or linux you run the './gradlew.sh' instead of 'gradlew'
+
+Forge source installation
+=========================
+MinecraftForge ships with this code and installs it as part of the forge
+installation process, no further action is required on your part.
+
+For reference this is version @MAJOR@.@MINOR@.@REV@.@BUILD@ of FML
+for Minecraft version @MCVERSION@.
+
+LexManos' Install Video
+=======================
+https://www.youtube.com/watch?v=8VEdtQLuLO0&feature=youtu.be
+
+For more details update more often refer to the Forge Forums:
+http://www.minecraftforge.net/forum/index.php/topic,14048.0.html
diff --git a/bin/assets/tinker/lang/en_US.lang b/bin/assets/tinker/lang/en_US.lang
new file mode 100644
index 0000000..2dff8a7
--- /dev/null
+++ b/bin/assets/tinker/lang/en_US.lang
@@ -0,0 +1,3 @@
+itemGroup.tabName=Tinkers' Defense
+item.InfiTool.roundshield.name=Round Shield
+tool.roundshield = Round Shield \ No newline at end of file
diff --git a/bin/assets/tinker/textures/items/AeonSteelIngot.png b/bin/assets/tinker/textures/items/AeonSteelIngot.png
new file mode 100644
index 0000000..950ef67
--- /dev/null
+++ b/bin/assets/tinker/textures/items/AeonSteelIngot.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/QueensGoldIngot.png b/bin/assets/tinker/textures/items/QueensGoldIngot.png
new file mode 100644
index 0000000..ccd3054
--- /dev/null
+++ b/bin/assets/tinker/textures/items/QueensGoldIngot.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/broadsword/queensgold_broadsword_accessory.png b/bin/assets/tinker/textures/items/broadsword/queensgold_broadsword_accessory.png
new file mode 100644
index 0000000..142e3a6
--- /dev/null
+++ b/bin/assets/tinker/textures/items/broadsword/queensgold_broadsword_accessory.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/_shield_binding.png b/bin/assets/tinker/textures/items/heatershield/_shield_binding.png
new file mode 100644
index 0000000..97438b8
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/_shield_binding.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/_shield_edge.png b/bin/assets/tinker/textures/items/heatershield/_shield_edge.png
new file mode 100644
index 0000000..49f633b
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/_shield_edge.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/_shield_face.png b/bin/assets/tinker/textures/items/heatershield/_shield_face.png
new file mode 100644
index 0000000..e002312
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/_shield_face.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/_shield_face_broken.png b/bin/assets/tinker/textures/items/heatershield/_shield_face_broken.png
new file mode 100644
index 0000000..7e24728
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/_shield_face_broken.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/_shield_face_other.png b/bin/assets/tinker/textures/items/heatershield/_shield_face_other.png
new file mode 100644
index 0000000..aa2c757
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/_shield_face_other.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/beheading_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/beheading_shield_effect.png
new file mode 100644
index 0000000..e75b706
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/beheading_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/blaze_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/blaze_shield_effect.png
new file mode 100644
index 0000000..8941f8a
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/blaze_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/diamond_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/diamond_shield_effect.png
new file mode 100644
index 0000000..bbd6bf1
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/diamond_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/emerald_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/emerald_shield_effect.png
new file mode 100644
index 0000000..d62a5be
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/emerald_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/flux_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/flux_shield_effect.png
new file mode 100644
index 0000000..8547016
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/flux_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/lapis_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/lapis_shield_effect.png
new file mode 100644
index 0000000..7bce7eb
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/lapis_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/lava_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/lava_shield_effect.png
new file mode 100644
index 0000000..5bf9183
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/lava_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/moss_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/moss_shield_effect.png
new file mode 100644
index 0000000..ba30b4c
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/moss_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/necrotic_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/necrotic_shield_effect.png
new file mode 100644
index 0000000..bcec218
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/necrotic_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/piston_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/piston_shield_effect.png
new file mode 100644
index 0000000..8520d54
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/piston_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/quartz_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/quartz_shield_effect.png
new file mode 100644
index 0000000..10087c2
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/quartz_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/redstone_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/redstone_shield_effect.png
new file mode 100644
index 0000000..34a53d1
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/redstone_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/reinforced_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/reinforced_shield_effect.png
new file mode 100644
index 0000000..9efbbe0
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/reinforced_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/silk_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/silk_shield_effect.png
new file mode 100644
index 0000000..1e8bc7e
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/silk_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/smite_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/smite_shield_effect.png
new file mode 100644
index 0000000..62b34a2
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/smite_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/heatershield/spider_shield_effect.png b/bin/assets/tinker/textures/items/heatershield/spider_shield_effect.png
new file mode 100644
index 0000000..7c779f1
--- /dev/null
+++ b/bin/assets/tinker/textures/items/heatershield/spider_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/longsword/queensgold_longsword_accessory.png b/bin/assets/tinker/textures/items/longsword/queensgold_longsword_accessory.png
new file mode 100644
index 0000000..6a28d07
--- /dev/null
+++ b/bin/assets/tinker/textures/items/longsword/queensgold_longsword_accessory.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/rapier/queensgold_rapier_accessory.png b/bin/assets/tinker/textures/items/rapier/queensgold_rapier_accessory.png
new file mode 100644
index 0000000..db4073a
--- /dev/null
+++ b/bin/assets/tinker/textures/items/rapier/queensgold_rapier_accessory.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/_shield_boss.png b/bin/assets/tinker/textures/items/shield/_shield_boss.png
new file mode 100644
index 0000000..d9dc41b
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/_shield_boss.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/_shield_edge.png b/bin/assets/tinker/textures/items/shield/_shield_edge.png
new file mode 100644
index 0000000..9d39ddd
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/_shield_edge.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/_shield_face.png b/bin/assets/tinker/textures/items/shield/_shield_face.png
new file mode 100644
index 0000000..7a55c4f
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/_shield_face.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/_shield_face_broken.png b/bin/assets/tinker/textures/items/shield/_shield_face_broken.png
new file mode 100644
index 0000000..f506b2c
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/_shield_face_broken.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/beheading_shield_effect.png b/bin/assets/tinker/textures/items/shield/beheading_shield_effect.png
new file mode 100644
index 0000000..5b58489
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/beheading_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/diamond_shield_effect.png b/bin/assets/tinker/textures/items/shield/diamond_shield_effect.png
new file mode 100644
index 0000000..f6eba6d
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/diamond_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/emerald_shield_effect.png b/bin/assets/tinker/textures/items/shield/emerald_shield_effect.png
new file mode 100644
index 0000000..5a71085
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/emerald_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/flux_shield_effect.png b/bin/assets/tinker/textures/items/shield/flux_shield_effect.png
new file mode 100644
index 0000000..f2b5305
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/flux_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/lapis_shield_effect.png b/bin/assets/tinker/textures/items/shield/lapis_shield_effect.png
new file mode 100644
index 0000000..7251eae
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/lapis_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/lava_shield_effect.png b/bin/assets/tinker/textures/items/shield/lava_shield_effect.png
new file mode 100644
index 0000000..9b5afbc
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/lava_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/moss_shield_effect.png b/bin/assets/tinker/textures/items/shield/moss_shield_effect.png
new file mode 100644
index 0000000..1641d23
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/moss_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/necrotic_shield_effect.png b/bin/assets/tinker/textures/items/shield/necrotic_shield_effect.png
new file mode 100644
index 0000000..b255548
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/necrotic_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/piston_shield_effect.png b/bin/assets/tinker/textures/items/shield/piston_shield_effect.png
new file mode 100644
index 0000000..bb64e1d
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/piston_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/quartz_shield_effect.png b/bin/assets/tinker/textures/items/shield/quartz_shield_effect.png
new file mode 100644
index 0000000..b4c9981
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/quartz_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/redstone_shield_effect.png b/bin/assets/tinker/textures/items/shield/redstone_shield_effect.png
new file mode 100644
index 0000000..b2bdc2c
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/redstone_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/reinforced_shield_effect.png b/bin/assets/tinker/textures/items/shield/reinforced_shield_effect.png
new file mode 100644
index 0000000..973ee52
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/reinforced_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/silk_shield_effect.png b/bin/assets/tinker/textures/items/shield/silk_shield_effect.png
new file mode 100644
index 0000000..70d542a
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/silk_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/smite_shield_effect.png b/bin/assets/tinker/textures/items/shield/smite_shield_effect.png
new file mode 100644
index 0000000..e8d632c
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/smite_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/spider_shield_effect.png b/bin/assets/tinker/textures/items/shield/spider_shield_effect.png
new file mode 100644
index 0000000..55f0bdd
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/spider_shield_effect.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/steel_shield_boss.png b/bin/assets/tinker/textures/items/shield/steel_shield_boss.png
new file mode 100644
index 0000000..0b68181
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/steel_shield_boss.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/steel_shield_edge.png b/bin/assets/tinker/textures/items/shield/steel_shield_edge.png
new file mode 100644
index 0000000..79bdcaa
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/steel_shield_edge.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/wood_shield_boss.png b/bin/assets/tinker/textures/items/shield/wood_shield_boss.png
new file mode 100644
index 0000000..acbd23d
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/wood_shield_boss.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/wood_shield_edge.png b/bin/assets/tinker/textures/items/shield/wood_shield_edge.png
new file mode 100644
index 0000000..6464b86
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/wood_shield_edge.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/wood_shield_face.png b/bin/assets/tinker/textures/items/shield/wood_shield_face.png
new file mode 100644
index 0000000..96ab1c9
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/wood_shield_face.png
Binary files differ
diff --git a/bin/assets/tinker/textures/items/shield/wood_shield_face_broken.png b/bin/assets/tinker/textures/items/shield/wood_shield_face_broken.png
new file mode 100644
index 0000000..188228a
--- /dev/null
+++ b/bin/assets/tinker/textures/items/shield/wood_shield_face_broken.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/lang/en_US.lang b/bin/assets/tinkersdefense/lang/en_US.lang
new file mode 100644
index 0000000..1bddce3
--- /dev/null
+++ b/bin/assets/tinkersdefense/lang/en_US.lang
@@ -0,0 +1,20 @@
+itemGroup.tabName=Tinkers' Defense
+item.AeonSteelIngot.name=Aeon Steel Ingot
+tile.AeonSteelBlock.name=Aeon Steel Block
+tile.MoltenAeonSteel.name=Molten Aeon Steel
+material.aeonsteel=Aeon Steel
+
+item.QueensGoldIngot.name=Queen's Gold Ingot
+tile.QueensGoldBlock.name=Queen's Gold Block
+tile.MoltenQueensGold.name=Molten Queen's Gold
+material.queensgold=Queen's Gold
+
+item.DogbeariumIngot.name=Dogbearium Ingot
+tile.DogbeariumBlock.name=Dogbearium Block
+tile.MoltenDogbearium.name=Molten Dogbearium
+material.dogbearium=Dogbearium
+material.dogbearium.ability=Serrated
+
+tool.roundshield=Round Shield
+tool.heatershield=Heater Shield
+
diff --git a/bin/assets/tinkersdefense/textures/armor/TinkerArmor.png b/bin/assets/tinkersdefense/textures/armor/TinkerArmor.png
new file mode 100644
index 0000000..e054750
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/armor/TinkerArmor.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/armor/TinkerArmor.tcn b/bin/assets/tinkersdefense/textures/armor/TinkerArmor.tcn
new file mode 100644
index 0000000..f967b25
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/armor/TinkerArmor.tcn
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/armor/TinkerArmor2.png b/bin/assets/tinkersdefense/textures/armor/TinkerArmor2.png
new file mode 100644
index 0000000..706a34a
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/armor/TinkerArmor2.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/armor/TinkerHelm.png b/bin/assets/tinkersdefense/textures/armor/TinkerHelm.png
new file mode 100644
index 0000000..847df01
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/armor/TinkerHelm.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/blocks/AeonSteelBlock.png b/bin/assets/tinkersdefense/textures/blocks/AeonSteelBlock.png
new file mode 100644
index 0000000..c18030c
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/AeonSteelBlock.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/blocks/CrestMount.png b/bin/assets/tinkersdefense/textures/blocks/CrestMount.png
new file mode 100644
index 0000000..61d6936
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/CrestMount.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/blocks/DogbeariumBlock.png b/bin/assets/tinkersdefense/textures/blocks/DogbeariumBlock.png
new file mode 100644
index 0000000..462809c
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/DogbeariumBlock.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/blocks/QueensGoldBlock.png b/bin/assets/tinkersdefense/textures/blocks/QueensGoldBlock.png
new file mode 100644
index 0000000..8b091e2
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/QueensGoldBlock.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png b/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png
new file mode 100644
index 0000000..9fbe94b
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png.mcmeta b/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png.mcmeta
new file mode 100644
index 0000000..0486765
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png.mcmeta
@@ -0,0 +1,45 @@
+{
+ "animation": {
+ "frametime": 2,
+ "frames": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 18,
+ 17,
+ 16,
+ 15,
+ 14,
+ 13,
+ 12,
+ 11,
+ 10,
+ 9,
+ 8,
+ 7,
+ 6,
+ 5,
+ 4,
+ 3,
+ 2,
+ 1
+ ]
+ }
+}
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png b/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png
new file mode 100644
index 0000000..8e3f30c
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png.mcmeta b/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png.mcmeta
new file mode 100644
index 0000000..8e55e43
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png.mcmeta
@@ -0,0 +1,5 @@
+{
+ "animation": {
+ "frametime": 3
+ }
+}
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png b/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png
new file mode 100644
index 0000000..e8fd8f2
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png.mcmeta b/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png.mcmeta
new file mode 100644
index 0000000..0486765
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png.mcmeta
@@ -0,0 +1,45 @@
+{
+ "animation": {
+ "frametime": 2,
+ "frames": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 18,
+ 17,
+ 16,
+ 15,
+ 14,
+ 13,
+ 12,
+ 11,
+ 10,
+ 9,
+ 8,
+ 7,
+ 6,
+ 5,
+ 4,
+ 3,
+ 2,
+ 1
+ ]
+ }
+}
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png b/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png
new file mode 100644
index 0000000..b7d3593
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png.mcmeta b/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png.mcmeta
new file mode 100644
index 0000000..8e55e43
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png.mcmeta
@@ -0,0 +1,5 @@
+{
+ "animation": {
+ "frametime": 3
+ }
+}
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold.png b/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold.png
new file mode 100644
index 0000000..934642d
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold.png.mcmeta b/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold.png.mcmeta
new file mode 100644
index 0000000..0486765
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold.png.mcmeta
@@ -0,0 +1,45 @@
+{
+ "animation": {
+ "frametime": 2,
+ "frames": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 18,
+ 17,
+ 16,
+ 15,
+ 14,
+ 13,
+ 12,
+ 11,
+ 10,
+ 9,
+ 8,
+ 7,
+ 6,
+ 5,
+ 4,
+ 3,
+ 2,
+ 1
+ ]
+ }
+}
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png b/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png
new file mode 100644
index 0000000..4067d8e
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png.mcmeta b/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png.mcmeta
new file mode 100644
index 0000000..8e55e43
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png.mcmeta
@@ -0,0 +1,5 @@
+{
+ "animation": {
+ "frametime": 3
+ }
+}
diff --git a/bin/assets/tinkersdefense/textures/gui/icons.png b/bin/assets/tinkersdefense/textures/gui/icons.png
new file mode 100644
index 0000000..28b7662
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/gui/icons.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/items/AeonSteelIngot.png b/bin/assets/tinkersdefense/textures/items/AeonSteelIngot.png
new file mode 100644
index 0000000..950ef67
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/items/AeonSteelIngot.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/items/DogbeariumIngot.png b/bin/assets/tinkersdefense/textures/items/DogbeariumIngot.png
new file mode 100644
index 0000000..f24049a
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/items/DogbeariumIngot.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/items/QueensGoldIngot.png b/bin/assets/tinkersdefense/textures/items/QueensGoldIngot.png
new file mode 100644
index 0000000..ccd3054
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/items/QueensGoldIngot.png
Binary files differ
diff --git a/bin/assets/tinkersdefense/textures/items/longsword/queensgold_longsword_accessory.png b/bin/assets/tinkersdefense/textures/items/longsword/queensgold_longsword_accessory.png
new file mode 100644
index 0000000..38cf81c
--- /dev/null
+++ b/bin/assets/tinkersdefense/textures/items/longsword/queensgold_longsword_accessory.png
Binary files differ
diff --git a/bin/gmail/Lance5057/items/TinkerHelm.tcn b/bin/gmail/Lance5057/items/TinkerHelm.tcn
new file mode 100644
index 0000000..4344f18
--- /dev/null
+++ b/bin/gmail/Lance5057/items/TinkerHelm.tcn
Binary files differ
diff --git a/bin/mcmod.info b/bin/mcmod.info
new file mode 100644
index 0000000..f989c30
--- /dev/null
+++ b/bin/mcmod.info
@@ -0,0 +1,14 @@
+[
+{
+"modid": "tinkersdefense",
+"name": "Tinkers' Defense",
+"description": "An inbetween mod for Tinkers Construct and Mine and Blade 2 that adds new shields made using tinker parts",
+"version": "1.0",
+"mcversion": "1.7.10",
+"url": "",
+"authorList": ["Sir Lance"],
+"requiredMods": [ "Forge", "TConstruct","battlegear2" ],
+"dependencies": ["TConstruct","battlegear2"],
+"useDependencyInformation": "true"
+}
+] \ No newline at end of file
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..9fca14a
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,39 @@
+ buildscript {
+repositories
+{
+mavenCentral()
+maven {
+name = "forge"
+url = "http://files.minecraftforge.net/maven"
+}
+maven {
+name = "sonatype"
+url = "https://oss.sonatype.org/content/repositories/snapshots/"
+}
+}
+dependencies
+{
+classpath "net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT"
+}
+}
+
+apply plugin: "forge"
+
+sourceSets
+{
+main
+{
+java { srcDirs = ["$projectDir/src/main/java"] }
+resources { srcDirs = ["$projectDir/src/main/resources"] }
+}
+}
+
+archivesBaseName = "1.7.10"
+version = "in_development"
+minecraft.version = "1.7.10-10.13.2.1277"
+
+dependencies {
+compile files (
+"TConstruct-1.7.10-1.7.1.DEV.GITBORK-deobf.jar"
+)
+} \ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..678d9d8
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Jul 02 15:54:47 CDT 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-bin.zip
diff --git a/gradlew b/gradlew
new file mode 100644
index 0000000..91a7e26
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..8a0b282
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/src/api/java/cofh/api/energy/IEnergyContainerItem.java b/src/api/java/cofh/api/energy/IEnergyContainerItem.java
new file mode 100644
index 0000000..0bcfda6
--- /dev/null
+++ b/src/api/java/cofh/api/energy/IEnergyContainerItem.java
@@ -0,0 +1,52 @@
+package cofh.api.energy;
+
+import net.minecraft.item.ItemStack;
+
+/**
+ * Implement this interface on Item classes that support external manipulation of their internal energy storages.
+ *
+ * A reference implementation is provided {@link ItemEnergyContainer}.
+ *
+ * @author King Lemming
+ *
+ */
+public interface IEnergyContainerItem {
+
+ /**
+ * Adds energy to a container item. Returns the quantity of energy that was accepted. This should always return 0 if the item cannot be externally charged.
+ *
+ * @param container
+ * ItemStack to be charged.
+ * @param maxReceive
+ * Maximum amount of energy to be sent into the item.
+ * @param simulate
+ * If TRUE, the charge will only be simulated.
+ * @return Amount of energy that was (or would have been, if simulated) received by the item.
+ */
+ int receiveEnergy(ItemStack container, int maxReceive, boolean simulate);
+
+ /**
+ * Removes energy from a container item. Returns the quantity of energy that was removed. This should always return 0 if the item cannot be externally
+ * discharged.
+ *
+ * @param container
+ * ItemStack to be discharged.
+ * @param maxExtract
+ * Maximum amount of energy to be extracted from the item.
+ * @param simulate
+ * If TRUE, the discharge will only be simulated.
+ * @return Amount of energy that was (or would have been, if simulated) extracted from the item.
+ */
+ int extractEnergy(ItemStack container, int maxExtract, boolean simulate);
+
+ /**
+ * Get the amount of energy currently stored in the container item.
+ */
+ int getEnergyStored(ItemStack container);
+
+ /**
+ * Get the max amount of energy that can be stored in the container item.
+ */
+ int getMaxEnergyStored(ItemStack container);
+
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaBlock.java b/src/api/java/mcp/mobius/waila/api/IWailaBlock.java
new file mode 100644
index 0000000..8b4dd13
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaBlock.java
@@ -0,0 +1,34 @@
+package mcp.mobius.waila.api;
+
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+
+@Deprecated
+public interface IWailaBlock {
+ /*
+ * Use this method to return an item stack in case the default lookup system fails.
+ * Return null if you want to use the default lookup system.
+ * You get the world, the player and the location of the block. With that, it is easy to gather information & tile entities
+ */
+ ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config);
+
+ /* Waila HUD is divided into 3 zones. The head corresponds to the item name,
+ * body to where you mostly want to put informations, and I reserve the tail for modname display
+ */
+
+ /* Those 2 methods works exactly the same way, except they are related to a different zone in Waila HUD.
+ * You get in input world, player and the block location. You also get the itemstack as returned by the default lookup system or getWailaStack().
+ * ConfigHandler provides the current Waila config state so you can show/hide elements depending on the configuration. Refer the ConfigHandler class for more info.
+ * currenttip represents the current list of text lines in the tooltip zone.
+ * For example, getWailaHead() will have the current item name as currenttip.
+ * You can modify the tips, add more, remove some, etc.
+ * When you are done, just returns the currenttip and it will display in Waila.
+ *
+ * Always return the currenttip is you don't want to modify the current zone.
+ */
+
+ List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaBlockDecorator.java b/src/api/java/mcp/mobius/waila/api/IWailaBlockDecorator.java
new file mode 100644
index 0000000..935d475
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaBlockDecorator.java
@@ -0,0 +1,9 @@
+package mcp.mobius.waila.api;
+
+import net.minecraft.item.ItemStack;
+
+public interface IWailaBlockDecorator {
+
+ void decorateBlock(ItemStack itemStack, IWailaDataAccessor accessor, IWailaConfigHandler config);
+
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaConfigHandler.java b/src/api/java/mcp/mobius/waila/api/IWailaConfigHandler.java
new file mode 100644
index 0000000..faede63
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaConfigHandler.java
@@ -0,0 +1,28 @@
+package mcp.mobius.waila.api;
+
+import java.util.HashMap;
+import java.util.Set;
+
+public interface IWailaConfigHandler {
+ /* Returns a set of all the currently loaded modules in the config handler */
+ public Set<String> getModuleNames();
+
+ /* Returns all the currently available options for a given module */
+ public HashMap<String, String> getConfigKeys(String modName);
+
+ /* Add a new option to a given module
+ *
+ * modName is the name of the module to add the option to (ie : Buildcraft, IndustrialCraft2, etc)
+ * key is the config key (ie : bc.tankcontent, ic2.inputvalue)
+ * name is the human readable name of the option (ie : "Tank content", "Max EU Input")
+ * */
+ //public void addConfig(String modName, String key, String name);
+
+ /* Returns the current value of an option (true/false) with a default value defvalue if not set*/
+ public boolean getConfig(String key, boolean defvalue);
+
+ /* Returns the current value of an option (true/false) with a default value true if not set*/
+ public boolean getConfig(String key);
+
+ //public void setConfig(String key, boolean value);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaDataAccessor.java b/src/api/java/mcp/mobius/waila/api/IWailaDataAccessor.java
new file mode 100644
index 0000000..0288624
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaDataAccessor.java
@@ -0,0 +1,33 @@
+package mcp.mobius.waila.api;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.util.Vec3;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+/* The Accessor is used to get some basic data out of the game without having to request
+ * direct access to the game engine.
+ * It will also return things that are unmodified by the overriding systems (like getWailaStack).
+ */
+
+public interface IWailaDataAccessor {
+
+ World getWorld();
+ EntityPlayer getPlayer();
+ Block getBlock();
+ int getBlockID();
+ int getMetadata();
+ TileEntity getTileEntity();
+ MovingObjectPosition getPosition();
+ Vec3 getRenderingPosition();
+ NBTTagCompound getNBTData();
+ int getNBTInteger(NBTTagCompound tag, String keyname);
+ double getPartialFrame();
+ ForgeDirection getSide();
+ ItemStack getStack();
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaDataProvider.java b/src/api/java/mcp/mobius/waila/api/IWailaDataProvider.java
new file mode 100644
index 0000000..4859d9c
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaDataProvider.java
@@ -0,0 +1,33 @@
+package mcp.mobius.waila.api;
+
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+
+public interface IWailaDataProvider{
+ /*
+ * Use this method to return an item stack in case the default lookup system fails.
+ * Return null if you want to use the default lookup system.
+ * You get the world, the player and the location of the block. With that, it is easy to gather information & tile entities
+ */
+ ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config);
+
+ /* Waila HUD is divided into 3 zones. The head corresponds to the item name,
+ * body to where you mostly want to put informations, and I reserve the tail for modname display
+ */
+
+ /* Those 2 methods works exactly the same way, except they are related to a different zone in Waila HUD.
+ * You get in input world, player and the block location. You also get the itemstack as returned by the default lookup system or getWailaStack().
+ * ConfigHandler provides the current Waila config state so you can show/hide elements depending on the configuration. Refer the ConfigHandler class for more info.
+ * currenttip represents the current list of text lines in the tooltip zone.
+ * For example, getWailaHead() will have the current item name as currenttip.
+ * You can modify the tips, add more, remove some, etc.
+ * When you are done, just returns the currenttip and it will display in Waila.
+ *
+ * Always return the currenttip is you don't want to modify the current zone.
+ */
+
+ List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaEntityAccessor.java b/src/api/java/mcp/mobius/waila/api/IWailaEntityAccessor.java
new file mode 100644
index 0000000..788067a
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaEntityAccessor.java
@@ -0,0 +1,24 @@
+package mcp.mobius.waila.api;
+
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.util.Vec3;
+import net.minecraft.world.World;
+
+/* The Accessor is used to get some basic data out of the game without having to request
+ * direct access to the game engine.
+ * It will also return things that are unmodified by the overriding systems (like getWailaStack).
+ */
+
+public interface IWailaEntityAccessor {
+ World getWorld();
+ EntityPlayer getPlayer();
+ Entity getEntity();
+ MovingObjectPosition getPosition();
+ Vec3 getRenderingPosition();
+ NBTTagCompound getNBTData();
+ int getNBTInteger(NBTTagCompound tag, String keyname);
+ double getPartialFrame();
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaEntityProvider.java b/src/api/java/mcp/mobius/waila/api/IWailaEntityProvider.java
new file mode 100644
index 0000000..9548289
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaEntityProvider.java
@@ -0,0 +1,16 @@
+package mcp.mobius.waila.api;
+
+import java.util.List;
+
+import net.minecraft.entity.Entity;
+
+public interface IWailaEntityProvider {
+
+ /* A way to get an override on the entity returned by the raytracing */
+ Entity getWailaOverride(IWailaEntityAccessor accessor, IWailaConfigHandler config);
+
+ /* The classical HEAD/BODY/TAIL text getters */
+ List<String> getWailaHead(Entity entity, List<String> currenttip, IWailaEntityAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaBody(Entity entity, List<String> currenttip, IWailaEntityAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaTail(Entity entity, List<String> currenttip, IWailaEntityAccessor accessor, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaFMPAccessor.java b/src/api/java/mcp/mobius/waila/api/IWailaFMPAccessor.java
new file mode 100644
index 0000000..19e01fa
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaFMPAccessor.java
@@ -0,0 +1,27 @@
+package mcp.mobius.waila.api;
+
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.util.Vec3;
+import net.minecraft.world.World;
+
+/* The Accessor is used to get some basic data out of the game without having to request
+ * direct access to the game engine.
+ * It will also return things that are unmodified by the overriding systems (like getWailaStack).
+ */
+
+public interface IWailaFMPAccessor {
+ World getWorld();
+ EntityPlayer getPlayer();
+ TileEntity getTileEntity();
+ MovingObjectPosition getPosition();
+ NBTTagCompound getNBTData();
+ NBTTagCompound getFullNBTData();
+ int getNBTInteger(NBTTagCompound tag, String keyname);
+ double getPartialFrame();
+ Vec3 getRenderingPosition();
+ String getID();
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaFMPDecorator.java b/src/api/java/mcp/mobius/waila/api/IWailaFMPDecorator.java
new file mode 100644
index 0000000..839af31
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaFMPDecorator.java
@@ -0,0 +1,7 @@
+package mcp.mobius.waila.api;
+
+import net.minecraft.item.ItemStack;
+
+public interface IWailaFMPDecorator {
+ void decorateBlock(ItemStack itemStack, IWailaFMPAccessor accessor, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaFMPProvider.java b/src/api/java/mcp/mobius/waila/api/IWailaFMPProvider.java
new file mode 100644
index 0000000..232c83e
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaFMPProvider.java
@@ -0,0 +1,12 @@
+package mcp.mobius.waila.api;
+
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+
+public interface IWailaFMPProvider {
+ /* The classical HEAD/BODY/TAIL text getters */
+ List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaFMPAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaFMPAccessor accessor, IWailaConfigHandler config);
+ List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaFMPAccessor accessor, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaRegistrar.java b/src/api/java/mcp/mobius/waila/api/IWailaRegistrar.java
new file mode 100644
index 0000000..162aeb6
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaRegistrar.java
@@ -0,0 +1,44 @@
+package mcp.mobius.waila.api;
+
+public interface IWailaRegistrar {
+ /* Add a config option in the section modname with displayed text configtext and access key keyname */
+ public void addConfig(String modname, String keyname, String configtext);
+ public void addConfigRemote(String modname, String keyname, String configtext);
+ public void addConfig(String modname, String keyname);
+ public void addConfigRemote(String modname, String keyname);
+
+ /* Register a stack overrider for the given blockID */
+ public void registerStackProvider(IWailaDataProvider dataProvider, Class block);
+
+ /* Same thing, but works on a class hierarchy instead */
+ public void registerHeadProvider (IWailaDataProvider dataProvider, Class block);
+ public void registerBodyProvider (IWailaDataProvider dataProvider, Class block);
+ public void registerTailProvider (IWailaDataProvider dataProvider, Class block);
+
+ /* Entity text registration methods */
+ public void registerHeadProvider (IWailaEntityProvider dataProvider, Class entity);
+ public void registerBodyProvider (IWailaEntityProvider dataProvider, Class entity);
+ public void registerTailProvider (IWailaEntityProvider dataProvider, Class entity);
+ public void registerOverrideEntityProvider (IWailaEntityProvider dataProvider, Class entity);
+
+ /* FMP Providers */
+ public void registerHeadProvider(IWailaFMPProvider dataProvider, String name);
+ public void registerBodyProvider(IWailaFMPProvider dataProvider, String name);
+ public void registerTailProvider(IWailaFMPProvider dataProvider, String name);
+
+ /* The block decorators */
+ public void registerDecorator (IWailaBlockDecorator decorator, Class block);
+ public void registerDecorator (IWailaFMPDecorator decorator, String name);
+
+ /* Selective NBT key syncing. Will register a key to sync over the network for the given class (block, te or ent).
+ * Accept * as a ending wildcard
+ * registerNBTKey("bob.*", MyBlock.class)
+ * registerNBTKey("data.life", MyEntity.class)
+ * registerNBTKey("*", MyTileEntity.class) will reproduce the full tag syncing from 1.4.5
+ * */
+ public void registerSyncedNBTKey(String key, Class target);
+
+ /* UNUSED FOR NOW (Will be used for the ingame wiki */
+ public void registerDocTextFile (String filename);
+ public void registerShortDataProvider (IWailaSummaryProvider dataProvider, Class item);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/IWailaSummaryProvider.java b/src/api/java/mcp/mobius/waila/api/IWailaSummaryProvider.java
new file mode 100644
index 0000000..f790649
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/IWailaSummaryProvider.java
@@ -0,0 +1,21 @@
+package mcp.mobius.waila.api;
+
+import java.util.LinkedHashMap;
+
+import net.minecraft.item.ItemStack;
+
+public interface IWailaSummaryProvider {
+ /* This interface is used to control the display data in the description screen */
+
+ /* BASIC TOOLS & ITEMS DATA */
+ //EnumToolMaterial getMaterial(ItemStack stack);
+ //String getMaterialName(ItemStack stack);
+ //String getEffectiveBlock(ItemStack stack);
+ //int getHarvestLevel(ItemStack stack);
+ //float getEfficiencyOnProperMaterial(ItemStack stack);
+ //int getEnchantability(ItemStack stack);
+ //int getDamageVsEntity(ItemStack stack);
+ //int getDurability(ItemStack stack);
+
+ LinkedHashMap<String, String> getSummary(ItemStack stack, LinkedHashMap<String, String> currentSummary, IWailaConfigHandler config);
+}
diff --git a/src/api/java/mcp/mobius/waila/api/SpecialChars.java b/src/api/java/mcp/mobius/waila/api/SpecialChars.java
new file mode 100644
index 0000000..5bd92a8
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/SpecialChars.java
@@ -0,0 +1,40 @@
+package mcp.mobius.waila.api;
+
+public class SpecialChars {
+
+ public static String MCStyle = "\u00A7";
+
+ public static String BLACK = MCStyle + "0";
+ public static String DBLUE = MCStyle + "1";
+ public static String DGREEN = MCStyle + "2";
+ public static String DAQUA = MCStyle + "3";
+ public static String DRED = MCStyle + "4";
+ public static String DPURPLE = MCStyle + "5";
+ public static String GOLD = MCStyle + "6";
+ public static String GRAY = MCStyle + "7";
+ public static String DGRAY = MCStyle + "8";
+ public static String BLUE = MCStyle + "9";
+ public static String GREEN = MCStyle + "a";
+ public static String AQUA = MCStyle + "b";
+ public static String RED = MCStyle + "c";
+ public static String LPURPLE = MCStyle + "d";
+ public static String YELLOW = MCStyle + "e";
+ public static String WHITE = MCStyle + "f";
+
+ public static String OBF = MCStyle + "k";
+ public static String BOLD = MCStyle + "l";
+ public static String STRIKE = MCStyle + "m";
+ public static String UNDER = MCStyle + "n";
+ public static String ITALIC = MCStyle + "o";
+ public static String RESET = MCStyle + "r";
+
+ public static String WailaStyle = "\u00A4";
+ public static String WailaIcon = "\u00A5";
+ public static String TAB = WailaStyle + WailaStyle +"a";
+ public static String ALIGNRIGHT = WailaStyle + WailaStyle +"b";
+ public static String ALIGNCENTER = WailaStyle + WailaStyle +"c";
+ public static String HEART = WailaStyle + WailaIcon +"a";
+ public static String HHEART = WailaStyle + WailaIcon +"b";
+ public static String EHEART = WailaStyle + WailaIcon +"c";
+
+}
diff --git a/src/api/java/mcp/mobius/waila/api/package-info.java b/src/api/java/mcp/mobius/waila/api/package-info.java
new file mode 100644
index 0000000..9b5e663
--- /dev/null
+++ b/src/api/java/mcp/mobius/waila/api/package-info.java
@@ -0,0 +1,3 @@
+@API(apiVersion="1.0",owner="Waila",provides="WailaAPI")
+package mcp.mobius.waila.api;
+import cpw.mods.fml.common.API; \ No newline at end of file
diff --git a/src/api/java/morph/api/Ability.java b/src/api/java/morph/api/Ability.java
new file mode 100644
index 0000000..36a75e9
--- /dev/null
+++ b/src/api/java/morph/api/Ability.java
@@ -0,0 +1,208 @@
+package morph.api;
+
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.ResourceLocation;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+/**
+ *
+ * Abstract ability class.
+ * Think of it like the Entity class, extend it to make your own types.
+ * Some abilities may seem more like traits, but let's just call it an ability for simplicity's sake.
+ * Please take note that entities inherit their superclass' abilities.
+ * @author iChun
+ *
+ */
+public abstract class Ability
+{
+ /**
+ * Ability parent field. Will be null for instances used in registration. Ability is then cloned and parent assigned later on.
+ */
+ private EntityLivingBase parent;
+
+ /**
+ * Flag for Ability activity. If true, tick/postRender/kill will notbe called.
+ */
+ public boolean inactive;
+
+ /**
+ * Basic constructor (but you didn't really need me to tell you that ;D )
+ */
+ public Ability()
+ {
+ parent = null;
+ }
+
+ /**
+ * Function for mod mob support, with args.
+ */
+ public Ability parse(String[] args) { return this; }
+
+ /**
+ * Since parent is private it needs a setter.
+ * @param newParent
+ */
+ public void setParent(EntityLivingBase ent)
+ {
+ parent = ent;
+ }
+
+ /**
+ * Get's the parent entity for this ability
+ * @return Entity the ability takes effect on
+ */
+ public EntityLivingBase getParent()
+ {
+ return parent;
+ }
+
+ /**
+ * Each ability has to return a String type.
+ * This is used for comparison, saving, as well as construction/loading of Ability.
+ * Think of it like the way Minecraft registers entities.
+ * @return Ability type
+ */
+ public abstract String getType();
+
+ /**
+ * Ticks every world tick, basically an ability onUpdate, similar to Entity's onUpdate.
+ * Will only tick if getParent() is not null.
+ * Please remember that getParent is not necessarily a player.
+ */
+ public abstract void tick();
+
+ /**
+ * Called when the ability is finally removed when the parent demorphs or morphs into a state that does not have this ability type.
+ * This will NOT be called if the parent morphs into another morph that has this type of ability.
+ */
+ public abstract void kill();
+
+ /**
+ * Creates a copy of this ability for use with parents.
+ * As previously stated before the ability instance used during registration is a base so it needs to be cloned for use with parents.
+ */
+ public abstract Ability clone();
+
+ /**
+ * Return true for this if you need an inactive copy of this morph in-between morph states (abilities of the next morph are only swapped over when morph is complete)
+ * Currently used for AbilitySwim to adjust the fog render.
+ * @return requiresInactiveClone
+ */
+ public boolean requiresInactiveClone()
+ {
+ return false;
+ }
+
+ /**
+ * Saving of ability to NBTTagCompound.
+ * Mainly used for synching Abilities between the client-server for mod mobs which do not use the API to add abilities.
+ * The ability type (getType()) is appended to nbt before function is called.
+ * Not actually used.
+ * @param NBTTagCompound saveData
+ */
+ public abstract void save(NBTTagCompound tag);
+
+ /**
+ * Loading of ability from NBTTagCompound.
+ * Mainly used to load custom fields from NBT.
+ * Not actually used.
+ * @param NBTTagCompound saveData
+ */
+ public abstract void load(NBTTagCompound tag);
+
+ /**
+ * Rendering to be done post-render.
+ * EG: Used by AbilitySwim to render air bubbles whilst on land.
+ */
+ @SideOnly(Side.CLIENT)
+ public abstract void postRender();
+
+ /**
+ * Icon location for ability. Can be null.
+ * Mod's default icons are 32x32. Can be any resolution though.
+ * @return resourcelocation for icon
+ */
+ @SideOnly(Side.CLIENT)
+ public abstract ResourceLocation getIcon();
+
+ @SideOnly(Side.CLIENT)
+ public boolean entityHasAbility(EntityLivingBase living)
+ {
+ return true;
+ }
+
+ /**
+ * Registers the ability so the mod can look up the class when attempting to load Ability save data.
+ * Call this no later than PostInit.
+ * @param ability type
+ * @param AbilityClass
+ */
+ public static void registerAbility(String name, Class<? extends Ability> clz)
+ {
+ try {
+ Class.forName("morph.common.ability.AbilityHandler").getDeclaredMethod("registerAbility", String.class, Class.class).invoke(null, name, clz);
+ } catch (Exception e) {
+ }
+ }
+
+ /**
+ * Maps abilities to an Entity.
+ * Adds on to the previous ability list, so this allows you to add abilities to Entity classes which already have abilities mapped.
+ * However, only one ability of the same type is allowed for each entity. This method will overwrite abilities of the same type that were already mapped.
+ * This will also register new abilities which were not registered before (just in case).
+ * Call this no later than PostInit.
+ * @param entClass
+ * @param abilities
+ */
+ public static void mapAbilities(Class<? extends EntityLivingBase> entClass, Ability...abilities)
+ {
+ try {
+ Class.forName("morph.common.ability.AbilityHandler").getDeclaredMethod("mapAbilities", Class.class, Ability[].class).invoke(null, entClass, abilities);
+ } catch (Exception e) {
+ }
+ }
+
+ /**
+ * Superman's kryptonite.
+ * @param Entity class to remove ability from
+ * @param Ability type
+ */
+ public static void removeAbility(Class<? extends EntityLivingBase> entClass, String type)
+ {
+ try {
+ Class.forName("morph.common.ability.AbilityHandler").getDeclaredMethod("removeAbility", Class.class, String.class).invoke(null, entClass, type);
+ } catch (Exception e) {
+ }
+ }
+
+ /**
+ * Checks to see if the entity class has a mapped ability type.
+ * @param entClass
+ * @param Ability type
+ * @return Entity class has ability type
+ */
+ public static boolean hasAbility(Class<? extends EntityLivingBase> entClass, String type)
+ {
+ try {
+ return (Boolean)Class.forName("morph.common.ability.AbilityHandler").getDeclaredMethod("hasAbility", Class.class, String.class).invoke(null, entClass, type);
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+ /**
+ * Creates an ability by type.
+ * Check out AbilityHandler to see each Ability type and the parse function in their respective classes for the arguments.
+ * @return
+ */
+ public static Ability createNewAbilityByType(String type, String[] arguments)
+ {
+ try {
+ return (Ability)Class.forName("morph.common.ability.AbilityHandler").getDeclaredMethod("createNewAbilityByType", String.class, String[].class).invoke(null, type, arguments);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+}
diff --git a/src/api/java/morph/api/Api.java b/src/api/java/morph/api/Api.java
new file mode 100644
index 0000000..1cfb49d
--- /dev/null
+++ b/src/api/java/morph/api/Api.java
@@ -0,0 +1,170 @@
+package morph.api;
+
+import net.minecraft.client.entity.AbstractClientPlayer;
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.model.ModelRenderer;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.util.ResourceLocation;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+public final class Api
+{
+ /**
+ * Returns if a player is has a morph. If morph progress < 1.0F, player is mid-morphing.
+ * Players demorphing are considered as a player with a morph until the demorph is complete.
+ * @param Player Username
+ * @param Clientside (false for Serverside)
+ */
+ public static boolean hasMorph(String playerName, boolean isClient)
+ {
+ try {
+ return (Boolean)Class.forName("morph.common.core.ApiHandler").getDeclaredMethod("hasMorph", String.class, boolean.class).invoke(null, playerName, isClient);
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+ /**
+ * Returns morph progression of a player. Time per morph is 80 ticks.
+ * If player does not have a morph, 1.0F will be returned.
+ * @param Player Username
+ * @param Clientside (false for Serverside)
+ */
+ public static float morphProgress(String playerName, boolean isClient)
+ {
+ try {
+ return (Float)Class.forName("morph.common.core.ApiHandler").getDeclaredMethod("morphProgress", String.class, boolean.class).invoke(null, playerName, isClient);
+ } catch (Exception e) {
+ return 1.0F;
+ }
+ }
+
+ /**
+ * Returns previous entity instance used to render the morph.
+ * If player does not have a previous morph state, null will be returned.
+ * @param Player Username
+ * @param Clientside (false for Serverside)
+ */
+ public static EntityLivingBase getPrevMorphEntity(String playerName, boolean isClient)
+ {
+ try {
+ return (EntityLivingBase)Class.forName("morph.common.core.ApiHandler").getDeclaredMethod("getPrevMorphEntity", String.class, boolean.class).invoke(null, playerName, isClient);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ /**
+ * Returns entity instance used to render the morph.
+ * If player does not have a morph, null will be returned.
+ * @param Player Username
+ * @param Clientside (false for Serverside)
+ */
+ public static EntityLivingBase getMorphEntity(String playerName, boolean isClient)
+ {
+ try {
+ return (EntityLivingBase)Class.forName("morph.common.core.ApiHandler").getDeclaredMethod("getMorphEntity", String.class, boolean.class).invoke(null, playerName, isClient);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ /**
+ * Blacklists an entity from being morphed into.
+ * Previously saved morphs of the classtype will not be removed.
+ * @param Class (extends EntityLivingBase)
+ */
+ public static void blacklistEntity(Class<? extends EntityLivingBase> clz)
+ {
+ try {
+ Class.forName("morph.common.core.ApiHandler").getDeclaredMethod("blacklistEntity", Class.class).invoke(null, clz);
+ } catch (Exception e) {
+ }
+ }
+
+ /**
+ * Forces a player to morph into an EntityLivingBase, also adds said entity to the morph list.
+ * Called Serverside only.
+ * @param player
+ * @param living
+ * @return morphSuccessful
+ */
+ public static boolean forceMorph(EntityPlayerMP player, EntityLivingBase living)
+ {
+ try {
+ return (Boolean)Class.forName("morph.common.core.ApiHandler").getDeclaredMethod("forceMorph", EntityPlayerMP.class, EntityLivingBase.class).invoke(null, player, living);
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+ /**
+ * Forces a player to demorph.
+ * Called Serverside only.
+ * @param player
+ */
+ public static void forceDemorph(EntityPlayerMP player)
+ {
+ try {
+ Class.forName("morph.common.core.ApiHandler").getDeclaredMethod("forceDemorph", EntityPlayerMP.class).invoke(null, player);
+ } catch (Exception e) {
+ }
+ }
+
+ /**
+ * Checks if the entity passed on is a Morph.
+ * If it is, the player name will be passed, else null.
+ * @param EntityLivingBase instance
+ * @param Clientside (false for Serverside)
+ */
+ public static String isEntityAMorph(EntityLivingBase living, boolean isClient)
+ {
+ try {
+ return (String)Class.forName("morph.common.core.ApiHandler").getDeclaredMethod("isEntityAMorph", EntityLivingBase.class, boolean.class).invoke(null, living, isClient);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ /**
+ * Allows the rendering of the next player rendered.
+ * Prevents Morph from cancelling the player render event to render the morphed entity.
+ */
+ public static void allowNextPlayerRender()
+ {
+ try {
+ Class.forName("morph.common.core.ApiHandler").getDeclaredMethod("allowNextPlayerRender").invoke(null);
+ } catch (Exception e) {
+ }
+ }
+
+ /**
+ * Returns the black grainy morph skin that overlays the player when the player is morphing
+ * @return Morph Skin Resource Location
+ */
+ @SideOnly(Side.CLIENT)
+ public static ResourceLocation getMorphSkinTexture()
+ {
+ try {
+ return (ResourceLocation)Class.forName("morph.common.core.ApiHandler").getDeclaredMethod("getMorphSkinTexture").invoke(null);
+ } catch (Exception e) {
+ return AbstractClientPlayer.locationStevePng;
+ }
+ }
+
+ /**
+ * Assign a specific arm to a model for rendering in First Person.
+ * @param model Model which arm you are registering for
+ * @param arm The arm in a ModelRenderer form.
+ */
+ @SideOnly(Side.CLIENT)
+ public static void registerArmForModel(ModelBase model, ModelRenderer arm)
+ {
+ try {
+ Class.forName("morph.common.core.ApiHandler").getDeclaredMethod("registerArmForModel", ModelBase.class, ModelRenderer.class).invoke(null, model, arm);
+ } catch (Exception e) {
+ }
+ }
+}
diff --git a/src/api/java/powercrystals/minefactoryreloaded/api/FactoryRegistry.java b/src/api/java/powercrystals/minefactoryreloaded/api/FactoryRegistry.java
new file mode 100644
index 0000000..8eff88d
--- /dev/null
+++ b/src/api/java/powercrystals/minefactoryreloaded/api/FactoryRegistry.java
@@ -0,0 +1,113 @@
+package powercrystals.minefactoryreloaded.api;
+
+import cpw.mods.fml.common.Loader;
+import cpw.mods.fml.common.event.FMLInterModComms;
+import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+
+/**
+ * @author PowerCrystals
+ *
+ * Class used to register plants and other farming-related things with MFR. Will do nothing if MFR does not exist.
+ *
+ */
+public class FactoryRegistry
+{
+ /*
+ * This may be called at any time during pre-init, init or post-init, assuming all blocks and items
+ * that are being accessed from the registry have been appropriately registered.
+ * Possible messages:
+ *
+ * // Registration:
+ * addLaserPreferredOre | NBTTag with an ItemStack saved on it, with the color on the "value" attribute,
+ * | A ValuedItem with item and value set.
+ * registerAutoSpawnerBlacklist | The String identifier of an entity,
+ * | A subclass of EntityLivingBase.
+ * registerFertilizable | An instance of IFactoryFertilizable.
+ * registerFertilizer | An instance of IFactoryFertilizer.
+ * registerFruitLog | The String identifier of a block.
+ * registerGrindable | An instance of IFactoryGrindable.
+ * registerGrinderBlacklist | A subclass of EntityLivingBase.
+ * registerHarvestable | An instance of IFactoryHarvestable.
+ * registerLaserOre | NBTTag with an ItemStack saved on it, with the weight on the "value" attribute,
+ * | A ValuedItem with item and value set.
+ * registerLiquidDrinkHandler | A ValuedItem with key and object set; ILiquidDrinkHandler expected.
+ * registerMobEggHandler | An instance of IMobEggHandler.
+ * registerPickableFruit | An instance of IFactoryFruit.
+ * registerPlantable | An instance of IFactoryPlantable.
+ * registerRanchable | An instance of IFactoryRanchable.
+ * registerRedNetLogicCircuit | An instance of IRedNetLogicCircuit.
+ * registerRubberTreeBiome | The biomeName field of a biome to white list for rubber trees to spawn in.
+ * registerSafariNetBlacklist | A subclass of EntityLivingBase.
+ * registerSafariNetHandler | An instance of ISafariNetHandler.
+ * registerSludgeDrop | NBTTag with an ItemStack saved on it, with the weight on the "value" attribute,
+ * | A ValuedItem with item and value set.
+ * registerSpawnHandler | An instance of IMobSpawnHandler.
+ * registerVillagerTradeMob | An instance of IRandomMobProvider.
+ *
+ * // Simple implementations:
+ * { Harvestables
+ * registerHarvestable_Standard | The String identifier of a block.
+ * registerHarvestable_Log | The String identifier of a block.
+ * registerHarvestable_Leaves | The String identifier of a block.
+ * registerHarvestable_Vine | The String identifier of a block.
+ * registerHarvestable_Shrub | The String identifier of a block.
+ * registerHarvestable_Mushroom | The String identifier of a block.
+ * registerHarvestable_Crop | An ItemStack of a block, with a damage value indicating the meta value to harvest at.
+ * | A ValuedItem with value and object set; Block expected.
+ * registerHarvestable_Gourd | An NBTTag with the stem and fruit attributes, both String identifiers of blocks.
+ * }
+ * { Plantables
+ * registerPlantable_Standard | An NBTTag with the seed (Item, String identifier), and
+ * crop (Block, String identifier) attributes set, optionally
+ * also having the meta (Integer, placed metadata value) attribute set.
+ * No special checks for location, just sustainability.
+ * registerPlantable_Crop | An NBTTag with the seed (Item, String identifier), and
+ * crop (Block, String identifier) attributes set, optionally
+ * also having the meta (Integer, placed metadata value) attribute set.
+ * Will automatically hoe dirt and grass into farmland when planting.
+ * registerPlantable_Sapling | An NBTTag with the sapling (Block, String identifier), and optionally
+ * the seed (Item, String identifier) attributes set.
+ * }
+ * { Fertilizer
+ * registerFertilizer | An NBTTag with the fert (Item, String identifier), meta (Integer), and
+ * type (Integer, index into FertilizerType.values()) attributes set.
+ * }
+ * { Fertilizables
+ * registerFertilizable_Grass | The String identifier of a block. Will bonemeal the block and expect
+ * tall grass be planted above and around it, must be IGrowable. Works with
+ * the GrowPlant and Grass type fertilizers, not recommended for crop plants.
+ * registerFertilizable_Gourd | The String identifier of a block. Must be IGrowable, and expects identical
+ * behavior to vanilla stems. Works with the GrowPlant fertilizers.
+ * registerFertilizable_Crop | An NBTTag with the plant (Block, String identifier, IGrowable), and
+ * meta (Integer, max growth phase) attributes set, optionally also having
+ * the type (Integer, index into FertilizerType) attribute set.
+ * registerFertilizable_Cocoa | An NBTTag with the plant (Block, String identifier), and optionally also
+ * the type (Integer, index into FertilizerType) attributes set.
+ * Expects metadata of the block to exactly match cocoa pods.
+ * registerFertilizable_Standard | An NBTTag with the plant (Block, String identifier, IGrowable), and
+ * optionally also the type (Integer, index into FertilizerType) attributes set.
+ * Expects the block to change when successfully grown (e.g., saplings).
+ * }
+ */
+ public static void sendMessage(String message, Object value)
+ {
+ if (!Loader.isModLoaded("MineFactoryReloaded") ||
+ Loader.instance().activeModContainer() == null)
+ return;
+ try
+ {
+ Method m = FMLInterModComms.class.getDeclaredMethod("enqueueMessage", Object.class, String.class, IMCMessage.class);
+ m.setAccessible(true);
+ Constructor<IMCMessage> c = IMCMessage.class.getDeclaredConstructor(String.class, Object.class);
+ c.setAccessible(true);
+ m.invoke(null, Loader.instance().activeModContainer(), "MineFactoryReloaded", c.newInstance(message, value));
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/api/java/powercrystals/minefactoryreloaded/api/HarvestType.java b/src/api/java/powercrystals/minefactoryreloaded/api/HarvestType.java
new file mode 100644
index 0000000..a56208e
--- /dev/null
+++ b/src/api/java/powercrystals/minefactoryreloaded/api/HarvestType.java
@@ -0,0 +1,44 @@
+package powercrystals.minefactoryreloaded.api;
+
+/**
+ * @author PowerCrystals
+ *
+ * Determines what algorithm the Harvester uses when it encounters this IFactoryHarvestable in the world.
+ */
+public enum HarvestType
+{
+ /**
+ * Just break the single block - no special action needed. e.g. Carrots, flowers, wheat.
+ */
+ Normal,
+ /**
+ * Search for harvestable blocks adjacent to this block but leave this block. e.g. Pumpkin, melon
+ */
+ Gourd,
+ /**
+ * Search for identical blocks above.
+ */
+ Column,
+ /**
+ * Search for identical blocks above but leave the bottom one for the future. e.g. Cactus, sugarcane.
+ */
+ LeaveBottom,
+ /**
+ * This block is the base of a tree and the harvester should enter tree-cutting mode.
+ */
+ Tree,
+ /**
+ * This block is the base of the tree and the harvester should enter tree-cutting mode.
+ * The tree is searched for in the negative y axis instead.
+ */
+ TreeFlipped,
+ /**
+ * This block is part of a tree as above.
+ */
+ TreeLeaf,
+ /**
+ * This block is part of a tree as above, but fruits are cut before logs. e.g. cocoa
+ * The tree is not searched for.
+ */
+ TreeFruit
+}
diff --git a/src/api/java/powercrystals/minefactoryreloaded/api/IFactoryGrindable.java b/src/api/java/powercrystals/minefactoryreloaded/api/IFactoryGrindable.java
new file mode 100644
index 0000000..edfb8c9
--- /dev/null
+++ b/src/api/java/powercrystals/minefactoryreloaded/api/IFactoryGrindable.java
@@ -0,0 +1,35 @@
+package powercrystals.minefactoryreloaded.api;
+
+import java.util.List;
+import java.util.Random;
+
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.world.World;
+
+/**
+ * @author PowerCrystals
+ *
+ * Defines a grindable entity for the Grinder.
+ */
+public interface IFactoryGrindable
+{
+ /**
+ * @return The class that this grindable instance is handling. This must be a subtype of EntityLivingBase or the entity will never
+ * be noticed by the Grinder.
+ */
+ public Class<? extends EntityLivingBase> getGrindableEntity();
+
+ /**
+ * @param world The world this entity is in.
+ * @param entity The entity instance being ground.
+ * @param random A Random instance.
+ * @return The drops generated when this entity is killed.
+ */
+ public List<MobDrop> grind(World world, EntityLivingBase entity, Random random);
+
+ /**
+ * @param entity The entity instance being ground.
+ * @return Whether this entity has been fully processed or not.
+ */
+ public boolean processEntity(EntityLivingBase entity);
+}
diff --git a/src/api/java/powercrystals/minefactoryreloaded/api/IFactoryHarvestable.java b/src/api/java/powercrystals/minefactoryreloaded/api/IFactoryHarvestable.java
new file mode 100644
index 0000000..d4e620a
--- /dev/null
+++ b/src/api/java/powercrystals/minefactoryreloaded/api/IFactoryHarvestable.java
@@ -0,0 +1,71 @@
+package powercrystals.minefactoryreloaded.api;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+
+import net.minecraft.block.Block;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+
+/**
+ * @author PowerCrystals
+ *
+ * Defines a harvestable block for the Harvester.
+ */
+public interface IFactoryHarvestable
+{
+ /**
+ * @return The block this harvestable instance is managing.
+ */
+ public Block getPlant();
+
+ /**
+ * @return The type of harvest the Harvester should perform on this block.
+ */
+ public HarvestType getHarvestType();
+
+ /**
+ * @return Whether or not the Harvester should break the block when harvesting. If false, no changes will be performed by the Harvester itself.
+ */
+ public boolean breakBlock();
+
+ /**
+ * @param world The world this block is in.
+ * @param harvesterSettings The harvester's current settings. Do not modify these.
+ * @param x The X coordinate of the block being harvested.
+ * @param y The Y coordinate of the block being harvested.
+ * @param z The Z coordinate of the block being harvested.
+ * @return True if this block can be harvested.
+ */
+ public boolean canBeHarvested(World world, Map<String, Boolean> harvesterSettings, int x, int y, int z);
+
+ /**
+ * @param world The world this block is in.
+ * @param rand A Random instance to use when generating drops.
+ * @param harvesterSettings The harvester's current settings. Do not modify these.
+ * @param x The X coordinate of the block being harvested.
+ * @param y The Y coordinate of the block being harvested.
+ * @param z The Z coordinate of the block being harvested.
+ * @return The drops generated by breaking this block. For a default implementation, calling Block.getBlockDropped() is usually sufficient.
+ */
+ public List<ItemStack> getDrops(World world, Random rand, Map<String, Boolean> harvesterSettings, int x, int y, int z);
+
+ /**
+ * Called before the block is going to be harvested. Usually empty.
+ * @param world The world this block is in.
+ * @param x The X coordinate of the block being harvested.
+ * @param y The Y coordinate of the block being harvested.
+ * @param z The Z coordinate of the block being harvested.
+ */
+ public void preHarvest(World world, int x, int y, int z);
+
+ /**
+ * Called after the block is going to be harvested. Used to re-till soil, for example.
+ * @param world The world this block is in.
+ * @param x The X coordinate of the block being harvested.
+ * @param y The Y coordinate of the block being harvested.
+ * @param z The Z coordinate of the block being harvested.
+ */
+ public void postHarvest(World world, int x, int y, int z);
+}
diff --git a/src/api/java/powercrystals/minefactoryreloaded/api/ILiquidDrinkHandler.java b/src/api/java/powercrystals/minefactoryreloaded/api/ILiquidDrinkHandler.java
new file mode 100644
index 0000000..31eba00
--- /dev/null
+++ b/src/api/java/powercrystals/minefactoryreloaded/api/ILiquidDrinkHandler.java
@@ -0,0 +1,8 @@
+package powercrystals.minefactoryreloaded.api;
+
+import net.minecraft.entity.EntityLivingBase;
+
+public interface ILiquidDrinkHandler
+{
+ public void onDrink(EntityLivingBase player);
+}
diff --git a/src/api/java/powercrystals/minefactoryreloaded/api/MobDrop.java b/src/api/java/powercrystals/minefactoryreloaded/api/MobDrop.java
new file mode 100644
index 0000000..7f5dd7c
--- /dev/null
+++ b/src/api/java/powercrystals/minefactoryreloaded/api/MobDrop.java
@@ -0,0 +1,21 @@
+package powercrystals.minefactoryreloaded.api;
+
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.WeightedRandom;
+
+public class MobDrop extends WeightedRandom.Item
+{
+ private ItemStack _stack;
+
+ public MobDrop(int weight, ItemStack stack)
+ {
+ super(weight);
+ _stack = stack;
+ }
+
+ public ItemStack getStack()
+ {
+ if(_stack == null) return null;
+ return _stack.copy();
+ }
+}
diff --git a/src/api/java/powercrystals/minefactoryreloaded/api/ValuedItem.java b/src/api/java/powercrystals/minefactoryreloaded/api/ValuedItem.java
new file mode 100644
index 0000000..3d075fa
--- /dev/null
+++ b/src/api/java/powercrystals/minefactoryreloaded/api/ValuedItem.java
@@ -0,0 +1,72 @@
+package powercrystals.minefactoryreloaded.api;
+
+import net.minecraft.item.ItemStack;
+
+public class ValuedItem
+{
+ public final int value;
+ public final ItemStack item;
+ public final String key;
+ public final Object object;
+
+ public ValuedItem(int v, ItemStack i)
+ {
+ value = v;
+ item = i;
+ key = null;
+ object = null;
+ }
+
+ public ValuedItem(String v, Object i)
+ {
+ value = -1;
+ item = null;
+ key = v;
+ object = i;
+ }
+
+ /**
+ * Presently unused but included so that if they do get used in the future,
+ * people including this in their jar and loading before MFR don't destroy everyone
+ */
+
+ public ValuedItem(int v, Object i)
+ {
+ value = v;
+ item = null;
+ key = null;
+ object = i;
+ }
+
+ public ValuedItem(String v, ItemStack i)
+ {
+ value = -1;
+ item = i;
+ key = v;
+ object = null;
+ }
+
+ public ValuedItem(int v, String k, ItemStack i)
+ {
+ value = v;
+ item = i;
+ key = k;
+ object = null;
+ }
+
+ public ValuedItem(int v, String k, Object i)
+ {
+ value = v;
+ item = null;
+ key = k;
+ object = i;
+ }
+
+ public ValuedItem(int v, String k, ItemStack i, Object o)
+ {
+ value = v;
+ item = i;
+ key = k;
+ object = o;
+ }
+}
diff --git a/src/api/java/thaumcraft/api/IGoggles.java b/src/api/java/thaumcraft/api/IGoggles.java
new file mode 100644
index 0000000..2f53d81
--- /dev/null
+++ b/src/api/java/thaumcraft/api/IGoggles.java
@@ -0,0 +1,22 @@
+package thaumcraft.api;
+
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.item.ItemStack;
+
+/**
+ *
+ * @author Azanor
+ *
+ * Equipped head slot items that extend this class will be able to perform most functions that
+ * goggles of revealing can apart from view nodes which is handled by IRevealer.
+ *
+ */
+
+public interface IGoggles {
+
+ /*
+ * If this method returns true things like block essentia contents will be shown.
+ */
+ public boolean showIngamePopups(ItemStack itemstack, EntityLivingBase player);
+
+}
diff --git a/src/main/java/gmail/Lance5057/blocks/AeonSteelBlock.java b/src/main/java/gmail/Lance5057/blocks/AeonSteelBlock.java
new file mode 100644
index 0000000..259132a
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/AeonSteelBlock.java
@@ -0,0 +1,15 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+
+public class AeonSteelBlock extends Block
+{
+
+ public AeonSteelBlock (Material material)
+ {
+ super(material);
+ setHarvestLevel("pickaxe",2);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/blocks/CrestMount.java b/src/main/java/gmail/Lance5057/blocks/CrestMount.java
new file mode 100644
index 0000000..a318c77
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/CrestMount.java
@@ -0,0 +1,43 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.block.BlockContainer;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+
+public class CrestMount extends BlockContainer {
+ //Treat it like a normal block here. The Block Bounds are a good idea - the first three are X Y and Z of the botton-left corner,
+ //And the second three are the top-right corner.
+ public CrestMount() {
+ super(Material.iron);
+ this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
+ }
+
+ //You don't want the normal render type, or it wont render properly.
+ @Override
+ public int getRenderType() {
+ return -1;
+ }
+
+ //It's not an opaque cube, so you need this.
+ @Override
+ public boolean isOpaqueCube() {
+ return false;
+ }
+
+ //It's not a normal block, so you need this too.
+ public boolean renderAsNormalBlock() {
+ return false;
+ }
+
+ //This is the icon to use for showing the block in your hand.
+ public void registerIcons(IIconRegister icon) {
+ this.blockIcon = icon.registerIcon("tinkersdefense:textures/items/QueensGoldIngot.png");
+ }
+
+ @Override
+ public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
+ return new TileEntity_CrestMount();
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/blocks/DogbeariumBlock.java b/src/main/java/gmail/Lance5057/blocks/DogbeariumBlock.java
new file mode 100644
index 0000000..b7f5c79
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/DogbeariumBlock.java
@@ -0,0 +1,15 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+
+public class DogbeariumBlock extends Block
+{
+
+ public DogbeariumBlock (Material material)
+ {
+ super(material);
+ setHarvestLevel("pickaxe",2);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java b/src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java
new file mode 100644
index 0000000..5a5759d
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/ModelCrestMount.java
@@ -0,0 +1,87 @@
+// Date: 1/18/2015 9:46:49 PM
+// Template version 1.1
+// Java generated by Techne
+// Keep in mind that you still need to fill in some blanks
+// - ZeuX
+
+
+
+
+
+
+package gmail.Lance5057.blocks;
+
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.model.ModelRenderer;
+import net.minecraft.entity.Entity;
+
+public class ModelCrestMount extends ModelBase
+{
+ //fields
+ ModelRenderer ShieldMount;
+ ModelRenderer Base;
+ ModelRenderer SwordMount1;
+ ModelRenderer SwordMount2;
+ ModelRenderer SwordMount3;
+
+ public ModelCrestMount()
+ {
+ textureWidth = 32;
+ textureHeight = 32;
+
+ ShieldMount = new ModelRenderer(this, 20, 6);
+ ShieldMount.addBox(0F, 0F, 0F, 2, 7, 2);
+ ShieldMount.setRotationPoint(-1F, 17F, -1F);
+ ShieldMount.setTextureSize(32, 32);
+ ShieldMount.mirror = true;
+ setRotation(ShieldMount, 0F, 0F, 0F);
+ Base = new ModelRenderer(this, 0, 6);
+ Base.addBox(0F, 0F, 0F, 4, 4, 4);
+ Base.setRotationPoint(-2F, 20F, -2F);
+ Base.setTextureSize(32, 32);
+ Base.mirror = true;
+ setRotation(Base, 0F, 0F, 0F);
+ SwordMount1 = new ModelRenderer(this, 0, 0);
+ SwordMount1.addBox(-5F, 0F, -2F, 10, 2, 4);
+ SwordMount1.setRotationPoint(0F, 22F, 0F);
+ SwordMount1.setTextureSize(32, 32);
+ SwordMount1.mirror = true;
+ setRotation(SwordMount1, 0F, 0.7853982F, 0F);
+ SwordMount2 = new ModelRenderer(this, 0, 0);
+ SwordMount2.addBox(-5F, 0F, -2F, 10, 2, 4);
+ SwordMount2.setRotationPoint(0F, 22F, 0F);
+ SwordMount2.setTextureSize(32, 32);
+ SwordMount2.mirror = true;
+ setRotation(SwordMount2, 0F, -0.7853982F, 0F);
+ SwordMount3 = new ModelRenderer(this, 0, 0);
+ SwordMount3.addBox(-5F, 0F, -2F, 10, 2, 4);
+ SwordMount3.setRotationPoint(0F, 21.9F, 0F);
+ SwordMount3.setTextureSize(32, 32);
+ SwordMount3.mirror = true;
+ setRotation(SwordMount3, 0F, 1.570796F, 0F);
+ }
+
+ public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
+ {
+ super.render(entity, f, f1, f2, f3, f4, f5);
+ setRotationAngles(f, f1, f2, f3, f4, f5, entity);
+ ShieldMount.render(f5);
+ Base.render(f5);
+ SwordMount1.render(f5);
+ SwordMount2.render(f5);
+ SwordMount3.render(f5);
+ }
+
+ private void setRotation(ModelRenderer model, float x, float y, float z)
+ {
+ model.rotateAngleX = x;
+ model.rotateAngleY = y;
+ model.rotateAngleZ = z;
+ }
+
+ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
+ {
+ super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
+ }
+
+}
diff --git a/src/main/java/gmail/Lance5057/blocks/QueensGoldBlock.java b/src/main/java/gmail/Lance5057/blocks/QueensGoldBlock.java
new file mode 100644
index 0000000..0ad2376
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/QueensGoldBlock.java
@@ -0,0 +1,15 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+
+public class QueensGoldBlock extends Block
+{
+
+ public QueensGoldBlock (Material material)
+ {
+ super(material);
+ setHarvestLevel("pickaxe",2);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java b/src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java
new file mode 100644
index 0000000..f7a542f
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/Renderer_CrestMount.java
@@ -0,0 +1,60 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.block.Block;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.entity.Entity;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.World;
+
+import org.lwjgl.opengl.GL11;
+
+public class Renderer_CrestMount extends TileEntitySpecialRenderer {
+
+ //The model of your block
+ private final ModelCrestMount model;
+
+ public Renderer_CrestMount() {
+ this.model = new ModelCrestMount();
+ }
+
+ private void adjustRotatePivotViaMeta(World world, int x, int y, int z) {
+ int meta = world.getBlockMetadata(x, y, z);
+ GL11.glPushMatrix();
+ GL11.glRotatef(meta * (-90), 0.0F, 0.0F, 1.0F);
+ GL11.glPopMatrix();
+ }
+
+ @Override
+ public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale) {
+ //The PushMatrix tells the renderer to "start" doing something.
+ GL11.glPushMatrix();
+ //This is setting the initial location.
+ GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
+ //This is the texture of your block. It's pathed to be the same place as your other blocks here.
+ //Outdated bindTextureByName("/mods/roads/textures/blocks/TrafficLightPoleRed.png");
+ //Use in 1.6.2 this
+ ResourceLocation textures = (new ResourceLocation("tinkersdefense:textures/blocks/CrestMount.png"));
+ //the ':' is very important
+ //binding the textures
+ Minecraft.getMinecraft().renderEngine.bindTexture(textures);
+
+ //This rotation part is very important! Without it, your model will render upside-down! And for some reason you DO need PushMatrix again!
+ GL11.glPushMatrix();
+ adjustRotatePivotViaMeta(te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord);//rotation 1
+ GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
+ GL11.glRotatef(90F, 0.5F, 0.0F, 0.0F);
+ GL11.glTranslatef(0, -1, -1);
+
+
+ //A reference to your Model file. Again, very important.
+ this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
+ //Tell it to stop rendering for both the PushMatrix's
+ GL11.glPopMatrix();
+ GL11.glPopMatrix();
+ }
+
+}
diff --git a/src/main/java/gmail/Lance5057/blocks/TileEntity_CrestMount.java b/src/main/java/gmail/Lance5057/blocks/TileEntity_CrestMount.java
new file mode 100644
index 0000000..486689c
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/blocks/TileEntity_CrestMount.java
@@ -0,0 +1,7 @@
+package gmail.Lance5057.blocks;
+
+import net.minecraft.tileentity.TileEntity;
+
+public class TileEntity_CrestMount extends TileEntity {
+
+}
diff --git a/src/main/java/gmail/Lance5057/com/HeaterShield.java b/src/main/java/gmail/Lance5057/com/HeaterShield.java
new file mode 100644
index 0000000..13875bc
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/HeaterShield.java
@@ -0,0 +1,256 @@
+package gmail.Lance5057.com;
+
+import java.util.List;
+import java.util.Random;
+
+import mods.battlegear2.api.ISheathed;
+import mods.battlegear2.api.shield.IArrowCatcher;
+import mods.battlegear2.api.shield.IArrowDisplay;
+import mods.battlegear2.api.shield.IShield;
+import mods.battlegear2.api.shield.ShieldType;
+import mods.battlegear2.utils.BattlegearConfig;
+import cpw.mods.fml.relauncher.*;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.IProjectile;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.projectile.EntityArrow;
+import net.minecraft.item.*;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.potion.*;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent;
+import tconstruct.library.tools.*;
+import tconstruct.tools.TinkerTools;
+public class HeaterShield extends HarvestTool implements IShield, ISheathed, IArrowCatcher, IArrowDisplay
+{
+ int induceDamage = 0;
+public HeaterShield()
+{
+super(0);
+this.setUnlocalizedName("heatershield");
+}
+@Override
+public Item getHeadItem ()
+{
+return TinkerTools.largePlate;
+}
+@Override
+public Item getHandleItem ()
+{
+return TinkerTools.toughRod;
+}
+@Override
+public Item getAccessoryItem ()
+{
+return TinkerTools.largePlate;
+}
+@Override
+public Item getExtraItem ()
+{
+ return TinkerTools.toughBinding;
+}
+@Override
+public int durabilityTypeAccessory ()
+{
+return 2;
+}
+@Override
+public float getRepairCost ()
+{
+return 4.0f;
+}
+@Override
+public float getDurabilityModifier ()
+{
+return 2.5f;
+}
+@Override
+public float breakSpeedModifier ()
+{
+return 0.4f;
+}
+@Override
+public float getDamageModifier ()
+{
+return 1.4f;
+}
+@SideOnly(Side.CLIENT)
+@Override
+public int getRenderPasses (int metadata)
+{
+return 10;
+}
+@Override
+public int getPartAmount ()
+{
+return 4;
+}
+@Override
+public String getIconSuffix (int partType)
+{
+switch (partType)
+{
+case 0:
+return "_shield_face";
+case 1:
+return "_shield_face_broken";
+case 2:
+return "_shield_edge";
+case 3:
+return "_shield_face_other";
+case 4:
+return "_shield_binding";
+default:
+return "";
+}
+}
+@Override
+public String getEffectSuffix ()
+{
+return "_shield_effect";
+}
+@Override
+public String getDefaultFolder ()
+{
+return "heatershield";
+}
+/* tool_TinkerShield specific */
+@Override
+public boolean onLeftClickEntity (ItemStack stack, EntityPlayer player, Entity entity)
+{
+if (AbilityHelper.onLeftClickEntity(stack, player, entity, this))
+{
+entity.hurtResistantTime += 7;
+/*
+* if (entity instanceof EntityLiving) { EntityLiving living =
+* (EntityLiving) entity; if (living.getHealth() <= 0) {
+*
+* } }
+*/
+// if (entity.getHealth() <= 0)
+}
+return true;
+}
+@Override
+public void onUpdate (ItemStack stack, World world, Entity entity, int par4, boolean par5)
+{
+super.onUpdate(stack, world, entity, par4, par5);
+
+}
+
+@Override
+public int getArrowCount(ItemStack stack)
+{
+ if(stack.hasTagCompound() && stack.getTagCompound().hasKey("arrows"))
+ {
+ return stack.getTagCompound().getShort("arrows");
+ }
+ else
+ return 0;
+}
+@Override
+public void setArrowCount(ItemStack stack, int count)
+{
+ if(!stack.hasTagCompound()){
+ stack.setTagCompound(new NBTTagCompound());
+ }
+ //Should never happen, you would need A LOT of arrows for this to happen
+ if(count > Short.MAX_VALUE){
+ count = Short.MAX_VALUE;
+ }
+ stack.getTagCompound().setShort("arrows", (short)count);
+}
+@Override
+public boolean catchArrow(ItemStack shield, EntityPlayer player, IProjectile arrow)
+{
+ if(arrow instanceof EntityArrow)
+ {
+ setArrowCount(shield, getArrowCount(shield)+1);
+ player.setArrowCountInEntity(player.getArrowCountInEntity() - 1);
+ ((EntityArrow)arrow).setDead();
+ return true;
+ }
+ return false;
+}
+@Override
+public boolean sheatheOnBack(ItemStack arg0) {
+ return true;
+}
+@Override
+public void blockAnimation(EntityPlayer player, float dmg)
+{
+ player.worldObj.playSoundAtEntity(player, "battlegear2:shield", 1, 1);
+}
+@Override
+public boolean canBlock(ItemStack shield, DamageSource source) {
+ return !source.isUnblockable();
+}
+@Override
+public int getBashTimer(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 10;
+}
+@Override
+public float getBlockAngle(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 60;
+}
+@Override
+public float getDamageDecayRate(ItemStack shield, float amount)
+{
+ return 0;
+}
+@Override
+public float getDamageReduction(ItemStack arg0, DamageSource arg1) {
+ return 1f;
+}
+@Override
+public float getDecayRate(ItemStack stack)
+{
+ NBTTagCompound tags = stack.getTagCompound();
+ float recovery = tags.getCompoundTag("InfiTool").getInteger("MiningSpeed") / 1.5f;
+ return 10f / recovery;
+}
+@Override
+public float getRecoveryRate(ItemStack stack)
+{
+ NBTTagCompound tags = stack.getTagCompound();
+ float recovery = tags.getCompoundTag("InfiTool").getInteger("MiningSpeed") / 1.5f;
+ return 10f / recovery;
+}
+
+@Override
+@SideOnly(Side.CLIENT)
+public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
+{
+ NBTTagCompound tags = par1ItemStack.getTagCompound();
+ super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4);
+ par3List.add("");
+ par3List.add(EnumChatFormatting.DARK_GREEN+
+ ItemStack.field_111284_a.format( 1F / (10f / (tags.getCompoundTag("InfiTool").getInteger("MiningSpeed")/1.5f)) / 20F)+
+ StatCollector.translateToLocal("attribute.shield.block.time"));
+ int arrowCount = getArrowCount(par1ItemStack);
+ if(arrowCount > 0)
+ {
+ par3List.add(String.format("%s%s %s", EnumChatFormatting.GOLD, arrowCount, StatCollector.translateToLocal("attribute.shield.arrow.count")));
+ }
+}
+@Override
+protected Material[] getEffectiveMaterials ()
+{
+ return materials;
+}
+ static Material[] materials = new Material[] { Material.rock, Material.iron, Material.ice, Material.glass, Material.piston, Material.anvil, Material.circuits };
+
+@Override
+protected String getHarvestType() {
+ // TODO Auto-generated method stub
+ return "pickaxe";
+}
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/com/RoundShield.java b/src/main/java/gmail/Lance5057/com/RoundShield.java
new file mode 100644
index 0000000..9588542
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/RoundShield.java
@@ -0,0 +1,249 @@
+package gmail.Lance5057.com;
+
+import java.util.List;
+import java.util.Random;
+
+import mods.battlegear2.api.ISheathed;
+import mods.battlegear2.api.shield.IArrowCatcher;
+import mods.battlegear2.api.shield.IArrowDisplay;
+import mods.battlegear2.api.shield.IShield;
+import mods.battlegear2.api.shield.ShieldType;
+import mods.battlegear2.utils.BattlegearConfig;
+import cpw.mods.fml.relauncher.*;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.IProjectile;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.projectile.EntityArrow;
+import net.minecraft.item.*;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.potion.*;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent;
+import tconstruct.library.tools.*;
+import tconstruct.tools.TinkerTools;
+public class RoundShield extends HarvestTool implements IShield, ISheathed, IArrowCatcher, IArrowDisplay
+{
+ int induceDamage = 0;
+public RoundShield()
+{
+super(0);
+this.setUnlocalizedName("roundshield");
+}
+@Override
+public Item getHeadItem ()
+{
+return TinkerTools.largePlate;
+}
+@Override
+public Item getHandleItem ()
+{
+return TinkerTools.toolRod;
+}
+@Override
+public Item getAccessoryItem ()
+{
+return TinkerTools.frypanHead;
+}
+@Override
+public int durabilityTypeAccessory ()
+{
+return 2;
+}
+@Override
+public float getRepairCost ()
+{
+return 4.0f;
+}
+@Override
+public float getDurabilityModifier ()
+{
+return 2.5f;
+}
+@Override
+public float breakSpeedModifier ()
+{
+return 0.4f;
+}
+@Override
+public float getDamageModifier ()
+{
+return 1.4f;
+}
+@SideOnly(Side.CLIENT)
+@Override
+public int getRenderPasses (int metadata)
+{
+return 10;
+}
+@Override
+public int getPartAmount ()
+{
+return 3;
+}
+@Override
+public String getIconSuffix (int partType)
+{
+switch (partType)
+{
+case 0:
+return "_shield_face";
+case 1:
+return "_shield_face_broken";
+case 2:
+return "_shield_edge";
+case 3:
+return "_shield_boss";
+default:
+return "";
+}
+}
+@Override
+public String getEffectSuffix ()
+{
+return "_shield_effect";
+}
+@Override
+public String getDefaultFolder ()
+{
+return "shield";
+}
+/* tool_TinkerShield specific */
+@Override
+public boolean onLeftClickEntity (ItemStack stack, EntityPlayer player, Entity entity)
+{
+if (AbilityHelper.onLeftClickEntity(stack, player, entity, this))
+{
+entity.hurtResistantTime += 7;
+/*
+* if (entity instanceof EntityLiving) { EntityLiving living =
+* (EntityLiving) entity; if (living.getHealth() <= 0) {
+*
+* } }
+*/
+// if (entity.getHealth() <= 0)
+}
+return true;
+}
+@Override
+public void onUpdate (ItemStack stack, World world, Entity entity, int par4, boolean par5)
+{
+super.onUpdate(stack, world, entity, par4, par5);
+
+}
+
+@Override
+public int getArrowCount(ItemStack stack)
+{
+ if(stack.hasTagCompound() && stack.getTagCompound().hasKey("arrows"))
+ {
+ return stack.getTagCompound().getShort("arrows");
+ }
+ else
+ return 0;
+}
+@Override
+public void setArrowCount(ItemStack stack, int count)
+{
+ if(!stack.hasTagCompound()){
+ stack.setTagCompound(new NBTTagCompound());
+ }
+ //Should never happen, you would need A LOT of arrows for this to happen
+ if(count > Short.MAX_VALUE){
+ count = Short.MAX_VALUE;
+ }
+ stack.getTagCompound().setShort("arrows", (short)count);
+}
+@Override
+public boolean catchArrow(ItemStack shield, EntityPlayer player, IProjectile arrow)
+{
+ if(arrow instanceof EntityArrow)
+ {
+ setArrowCount(shield, getArrowCount(shield)+1);
+ player.setArrowCountInEntity(player.getArrowCountInEntity() - 1);
+ ((EntityArrow)arrow).setDead();
+ return true;
+ }
+ return false;
+}
+@Override
+public boolean sheatheOnBack(ItemStack arg0) {
+ return true;
+}
+@Override
+public void blockAnimation(EntityPlayer player, float dmg)
+{
+ player.worldObj.playSoundAtEntity(player, "battlegear2:shield", 1, 1);
+}
+@Override
+public boolean canBlock(ItemStack shield, DamageSource source) {
+ return !source.isUnblockable();
+}
+@Override
+public int getBashTimer(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 10;
+}
+@Override
+public float getBlockAngle(ItemStack arg0) {
+ // TODO Auto-generated method stub
+ return 60;
+}
+@Override
+public float getDamageDecayRate(ItemStack shield, float amount)
+{
+ return 2;
+}
+@Override
+public float getDamageReduction(ItemStack arg0, DamageSource arg1) {
+ return 1f;
+}
+@Override
+public float getDecayRate(ItemStack stack)
+{
+ NBTTagCompound tags = stack.getTagCompound();
+ float recovery = tags.getCompoundTag("InfiTool").getInteger("MiningSpeed");
+ return 10f / recovery * 2;
+}
+@Override
+public float getRecoveryRate(ItemStack stack)
+{
+ NBTTagCompound tags = stack.getTagCompound();
+ float recovery = tags.getCompoundTag("InfiTool").getInteger("MiningSpeed");
+ return 10f / recovery * 2;
+}
+
+@Override
+@SideOnly(Side.CLIENT)
+public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
+{
+ NBTTagCompound tags = par1ItemStack.getTagCompound();
+ super.addInformation(par1ItemStack, par2EntityPlayer, par3List, par4);
+ par3List.add("");
+ par3List.add(EnumChatFormatting.DARK_GREEN+
+ ItemStack.field_111284_a.format( 1F / (10f / tags.getCompoundTag("InfiTool").getInteger("MiningSpeed") * 2) / 20F)+
+ StatCollector.translateToLocal("attribute.shield.block.time"));
+ int arrowCount = getArrowCount(par1ItemStack);
+ if(arrowCount > 0)
+ {
+ par3List.add(String.format("%s%s %s", EnumChatFormatting.GOLD, arrowCount, StatCollector.translateToLocal("attribute.shield.arrow.count")));
+ }
+}
+@Override
+protected Material[] getEffectiveMaterials ()
+{
+ return materials;
+}
+ static Material[] materials = new Material[] { Material.rock, Material.iron, Material.ice, Material.glass, Material.piston, Material.anvil, Material.circuits };
+
+@Override
+protected String getHarvestType() {
+ // TODO Auto-generated method stub
+ return "pickaxe";
+}
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/com/RoyalGuard.java b/src/main/java/gmail/Lance5057/com/RoyalGuard.java
new file mode 100644
index 0000000..3510c18
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/RoyalGuard.java
@@ -0,0 +1,42 @@
+package gmail.Lance5057.com;
+
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+import tconstruct.library.client.TConstructClientRegistry;
+import tconstruct.library.crafting.ToolBuilder;
+import tconstruct.library.tools.Weapon;
+
+import java.util.List;
+
+public abstract class RoyalGuard extends Weapon {
+ public RoyalGuard() {
+ super(10);
+ }
+
+@Override
+public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) {
+super.addInformation(stack, player, list, par4);
+list.add(EnumChatFormatting.DARK_PURPLE + "Artisan crafted for the royal family");
+}
+@Override
+public void getSubItems(Item id, CreativeTabs tab, List list)
+{
+ super.getSubItems(id, tab, list);
+
+ ItemStack tool = ToolBuilder.instance.buildTool(new ItemStack(getHeadItem(), 1, 2), new ItemStack(getHandleItem(), 1, 6), new ItemStack(getAccessoryItem(), 1, 33), "Royal Guard");
+ NBTTagCompound tags = tool.getTagCompound().getCompoundTag("InfiTool");
+ tags.setInteger("Modifiers", 0);
+ tags.setInteger("Attack", 15);
+ tags.setInteger("TotalDurability", Integer.MAX_VALUE / 100);
+ tags.setInteger("BaseDurability", Integer.MAX_VALUE / 100);
+ tags.setInteger("MiningSpeed", Integer.MAX_VALUE / 100);
+ tags.setInteger("Unbreaking", 10);
+ tags.setBoolean("Built", true);
+ tags.setInteger("Fortune", 450);
+ list.add(tool);
+}
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/com/Shield.java b/src/main/java/gmail/Lance5057/com/Shield.java
new file mode 100644
index 0000000..0cfa33c
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/Shield.java
@@ -0,0 +1,121 @@
+package gmail.Lance5057.com;
+
+import tconstruct.library.tools.ToolCore;
+import cpw.mods.fml.relauncher.*;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.*;
+import net.minecraft.world.World;
+
+public abstract class Shield extends ToolCore
+{
+public Shield(int baseDamage)
+{
+super(baseDamage);
+}
+protected float baseSpeed ()
+{
+return 1.5f;
+}
+protected float effectiveSpeed ()
+{
+return 15f;
+}
+public float breakSpeedModifier ()
+{
+return 1.0f;
+}
+@Override
+public float getDigSpeed (ItemStack stack, Block block, int meta)
+{
+if (stack.getTagCompound().getCompoundTag("InfiTool").getBoolean("Broken"))
+return 0.1f;
+for (int i = 0; i < web.length; i++)
+{
+if (web[i] == block.getMaterial())
+{
+return effectiveSpeed();
+}
+}
+return baseSpeed();
+}
+/**
+* returns the action that specifies what animation to play when the items
+* is being used
+*/
+@Override
+public EnumAction getItemUseAction (ItemStack par1ItemStack)
+{
+return EnumAction.block;
+}
+/**
+* How long it takes to use or consume an item
+*/
+@Override
+public int getMaxItemUseDuration (ItemStack par1ItemStack)
+{
+return 72000;
+}
+/**
+* Called whenever this item is equipped and the right mouse button is
+* pressed. Args: itemStack, world, entityPlayer
+*/
+@Override
+public ItemStack onItemRightClick (ItemStack stack, World world, EntityPlayer player)
+{
+player.setItemInUse(stack, this.getMaxItemUseDuration(stack));
+return stack;
+}
+@Override
+public boolean onItemUse (ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float clickX, float clickY, float clickZ)
+{
+return false;
+}
+/**
+* Returns if the item (tool) can harvest results from the block type.
+*/
+@Override
+public boolean canHarvestBlock (Block block, ItemStack is)
+{
+for (int i = 0; i < web.length; i++)
+{
+if (block.getMaterial() == web[i])
+return true;
+}
+return super.canHarvestBlock(block, is);
+}
+protected Material[] getEffectiveMaterials ()
+{
+return web;
+}
+@Override
+@SideOnly(Side.CLIENT)
+public void onUpdate (ItemStack stack, World world, Entity entity, int par4, boolean par5)
+{
+super.onUpdate(stack, world, entity, par4, par5);
+if (entity instanceof EntityPlayerSP)
+{
+EntityPlayerSP player = (EntityPlayerSP) entity;
+ItemStack usingItem = player.getItemInUse();
+if (usingItem != null && usingItem.getItem() == this)
+{
+player.movementInput.moveForward *= 2.5F;
+player.movementInput.moveStrafe *= 2.5F;
+}
+}
+}
+@Override
+public String[] getTraits ()
+{
+return new String[] { "Shield", "melee" };
+}
+public static Material[] web = new Material[] { Material.web, Material.cloth, Material.coral, Material.cake };
+public static Material[] none = new Material[0];
+protected String getHarvestType() {
+ // TODO Auto-generated method stub
+ return null;
+}
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/com/mod_TinkersDefense.java b/src/main/java/gmail/Lance5057/com/mod_TinkersDefense.java
new file mode 100644
index 0000000..60e4ee1
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/mod_TinkersDefense.java
@@ -0,0 +1,312 @@
+package gmail.Lance5057.com;
+
+
+
+
+import static net.minecraft.util.EnumChatFormatting.DARK_RED;
+import static net.minecraft.util.EnumChatFormatting.GOLD;
+import static net.minecraft.util.EnumChatFormatting.LIGHT_PURPLE;
+import gmail.Lance5057.blocks.AeonSteelBlock;
+import gmail.Lance5057.blocks.CrestMount;
+import gmail.Lance5057.blocks.DogbeariumBlock;
+import gmail.Lance5057.blocks.QueensGoldBlock;
+import gmail.Lance5057.blocks.TileEntity_CrestMount;
+import gmail.Lance5057.items.AeonSteelIngot;
+import gmail.Lance5057.items.DogbeariumIngot;
+import gmail.Lance5057.items.QueensGoldIngot;
+import gmail.Lance5057.items.TinkerArmor;
+import gmail.Lance5057.proxy.CommonProxy;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.init.Items;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemArmor.ArmorMaterial;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidRegistry;
+import net.minecraftforge.fluids.FluidStack;
+import tconstruct.TConstruct;
+import tconstruct.library.TConstructRegistry;
+import tconstruct.library.client.TConstructClientRegistry;
+import tconstruct.library.client.ToolGuiElement;
+import tconstruct.library.crafting.PatternBuilder;
+import tconstruct.library.crafting.Smeltery;
+import tconstruct.library.tools.ToolCore;
+import tconstruct.smeltery.TinkerSmeltery;
+import tconstruct.tools.TinkerTools;
+import cpw.mods.fml.common.Mod;
+import cpw.mods.fml.common.Mod.EventHandler;
+import cpw.mods.fml.common.SidedProxy;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import cpw.mods.fml.common.registry.GameRegistry;
+
+@Mod(modid="tinkersdefense", version="1.0")
+public class mod_TinkersDefense
+{
+public static String MODID = "tinkersdefense";
+public static String VERSION = "1.0";
+
+public static CreativeTabs tabName = new CreativeTabs("tabName")
+{
+public Item getTabIconItem()
+{
+return Items.arrow;
+}
+};
+
+public static Item item_AeonSteelIngot;
+public static Block block_AeonSteelBlock;
+
+public static Fluid moltenAeonsteel;
+public static Block moltenAeonsteelBlock;
+
+public static Item item_QueensGoldIngot;
+public static Block block_QueensGoldBlock;
+
+public static Fluid moltenQueensGold;
+public static Block moltenQueensGoldBlock;
+
+public static Item item_DogbeariumIngot;
+public static Block block_DogbeariumBlock;
+
+public static Fluid moltenDogbearium;
+public static Block moltenDogbeariumBlock;
+
+public static ToolCore tool_roundShield;
+public static ToolCore tool_heaterShield;
+
+public static Block block_CrestMount;
+
+public static Item item_TinkerArmor;
+
+@SidedProxy(clientSide = "gmail.Lance5057.proxy.ClientProxy", serverSide = "gmail.Lance5057.proxy.CommonProxy")
+public static CommonProxy proxy;
+
+@EventHandler
+public void preInit(FMLPreInitializationEvent e)
+{
+ //Renderers
+ proxy.registerRenderers();
+
+ //AeonSteel
+ item_AeonSteelIngot = new AeonSteelIngot()
+ .setCreativeTab(tabName)
+ .setMaxStackSize(64)
+ .setUnlocalizedName("AeonSteelIngot")
+ .setTextureName(MODID+":AeonSteelIngot");
+
+ GameRegistry.registerItem(item_AeonSteelIngot, "AeonSteel Ingot");
+
+ block_AeonSteelBlock = new AeonSteelBlock(Material.iron)
+ .setHardness(4.0F)
+ .setStepSound(Block.soundTypeMetal)
+ .setBlockName("AeonSteelBlock")
+ .setCreativeTab(tabName)
+ .setBlockTextureName(MODID+":AeonSteelBlock");
+
+ GameRegistry.registerBlock(block_AeonSteelBlock, "aeonsteelblock");
+
+ GameRegistry.addShapedRecipe(new ItemStack(block_AeonSteelBlock), new Object[] {"xxx", "xxx","xxx",
+ 'x', item_AeonSteelIngot});
+ GameRegistry.addShapelessRecipe(new ItemStack(item_AeonSteelIngot,9),new Object[] {new ItemStack(block_AeonSteelBlock)});
+
+ moltenAeonsteel = new Fluid("moltenAeonsteel").setLuminosity(15).setDensity(3000).setViscosity(6000).setTemperature(1300);
+ FluidRegistry.registerFluid(moltenAeonsteel);
+
+ moltenAeonsteelFluid moltenAeonsteelBlock = new moltenAeonsteelFluid(moltenAeonsteel);
+
+ GameRegistry.registerBlock(moltenAeonsteelBlock, "moltenaeonsteel");
+
+ //Queen's Gold
+ item_QueensGoldIngot = new QueensGoldIngot()
+ .setCreativeTab(tabName)
+ .setMaxStackSize(64)
+ .setUnlocalizedName("QueensGoldIngot")
+ .setTextureName(MODID+":QueensGoldIngot");
+
+ GameRegistry.registerItem(item_QueensGoldIngot, "Queen's Gold Ingot");
+
+ block_QueensGoldBlock = new QueensGoldBlock(Material.iron)
+ .setHardness(4.0F)
+ .setStepSound(Block.soundTypeMetal)
+ .setBlockName("QueensGoldBlock")
+ .setCreativeTab(tabName)
+ .setBlockTextureName(MODID+":QueensGoldBlock");
+
+ GameRegistry.registerBlock(block_QueensGoldBlock, "QueensGoldblock");
+
+ GameRegistry.addShapedRecipe(new ItemStack(block_QueensGoldBlock), new Object[] {"xxx", "xxx","xxx",
+ 'x', item_QueensGoldIngot});
+ GameRegistry.addShapelessRecipe(new ItemStack(item_QueensGoldIngot,9),new Object[] {new ItemStack(block_QueensGoldBlock)});
+
+
+ moltenQueensGold = new Fluid("moltenQueensGold").setLuminosity(15).setDensity(3000).setViscosity(6000).setTemperature(1300);
+ FluidRegistry.registerFluid(moltenQueensGold);
+
+ moltenQueensGoldFluid moltenQueensGoldBlock = new moltenQueensGoldFluid(moltenQueensGold);
+
+ GameRegistry.registerBlock(moltenQueensGoldBlock, "moltenQueensGold");
+
+ //Dogbearium
+ item_DogbeariumIngot = new DogbeariumIngot()
+ .setCreativeTab(tabName)
+ .setMaxStackSize(64)
+ .setUnlocalizedName("DogbeariumIngot")
+ .setTextureName(MODID+":DogbeariumIngot");
+
+ GameRegistry.registerItem(item_DogbeariumIngot, "DogbeariumIngot");
+
+ block_DogbeariumBlock = new DogbeariumBlock(Material.iron)
+ .setHardness(4.0F)
+ .setStepSound(Block.soundTypeMetal)
+ .setBlockName("DogbeariumBlock")
+ .setCreativeTab(tabName)
+ .setBlockTextureName(MODID+":DogbeariumBlock");
+
+ GameRegistry.registerBlock(block_DogbeariumBlock, "Dogbeariumblock");
+
+ GameRegistry.addShapedRecipe(new ItemStack(block_DogbeariumBlock), new Object[] {"xxx", "xxx","xxx",
+ 'x', item_DogbeariumIngot});
+ GameRegistry.addShapelessRecipe(new ItemStack(item_DogbeariumIngot,9),new Object[] {new ItemStack(block_DogbeariumBlock)});
+
+
+ moltenDogbearium = new Fluid("moltenDogbearium").setLuminosity(15).setDensity(3000).setViscosity(6000).setTemperature(1300);
+ FluidRegistry.registerFluid(moltenDogbearium);
+
+ moltenDogbeariumFluid moltenDogbeariumBlock = new moltenDogbeariumFluid(moltenDogbearium);
+
+ GameRegistry.registerBlock(moltenDogbeariumBlock, "moltenDogbearium");
+
+ tool_roundShield = new RoundShield();
+ tool_heaterShield = new HeaterShield();
+
+ GameRegistry.registerItem(tool_roundShield, "Round Shield");
+ GameRegistry.registerItem(tool_heaterShield, "Heater Shield");
+ TConstructRegistry.addItemToDirectory("Round Shield", tool_roundShield);
+ TConstructRegistry.addItemToDirectory("Heater Shield", tool_heaterShield);
+
+ block_CrestMount = new CrestMount()
+ .setHardness(4.0F)
+ .setStepSound(Block.soundTypeMetal)
+ .setBlockName("CrestMount")
+ .setCreativeTab(tabName);
+
+ GameRegistry.registerTileEntity(TileEntity_CrestMount.class, "Tile_CrestMount");
+ GameRegistry.registerBlock(block_CrestMount, "Block_CrestMount");
+
+ item_TinkerArmor = new TinkerArmor(ArmorMaterial.IRON, 4, 1).setUnlocalizedName("Tinker_Armor");
+ GameRegistry.registerItem(item_TinkerArmor,"Tinker Armor");
+}
+
+@EventHandler
+public void init(FMLInitializationEvent e)
+{
+ System.out.print(MODID);
+ PatternBuilder pb = PatternBuilder.instance;
+ pb.registerMaterialSet("AeonSteel", new ItemStack(TinkerTools.toolShard, 1, 10), new ItemStack(TinkerTools.toolRod, 1, 10), 10);
+ // Tool Materials: id, name, harvestlevel, durability, speed, damage, handlemodifier, reinforced, shoddy, style color, primary color for block use
+ //Aeonsteel
+ TConstructClientRegistry.addMaterialRenderMapping(201, "tinker", "aeonsteel", true);
+ TConstructRegistry.addToolMaterial(201, "AeonSteel", 4, 822, 1100, 3, 1.6F, 2, 0f, LIGHT_PURPLE.toString(), 0xb565e6);
+ TinkerTools.registerPatternMaterial("AeonSteelIngot", 2, "AeonSteel");
+ TConstructRegistry.addDefaultToolPartMaterial(201);
+
+ Smeltery.addMelting(new ItemStack(item_AeonSteelIngot, 1, 0), block_AeonSteelBlock, 0, 500, new FluidStack(moltenAeonsteel, TConstruct.ingotLiquidValue));
+ Smeltery.addMelting(block_AeonSteelBlock, 0, 500, new FluidStack(moltenAeonsteel, TConstruct.ingotLiquidValue*9));
+
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(item_AeonSteelIngot, 1, 0), new FluidStack(moltenAeonsteel, TConstruct.ingotLiquidValue), TConstructRegistry.getItemStack("ingotCast"), false, 50);
+
+ TConstructRegistry.instance.getBasinCasting().addCastingRecipe(new ItemStack(block_AeonSteelBlock, 1, 0), new FluidStack(moltenAeonsteel, TConstruct.ingotLiquidValue*9), 100);
+
+ castMolten(moltenAeonsteel, 201);
+
+ PatternBuilder.instance.registerFullMaterial(new ItemStack(item_AeonSteelIngot, 1, 0), 2, "Aeonsteel", new ItemStack(TinkerTools.toolShard, 1, 201), new ItemStack(TinkerTools.toolRod, 1, 201), 201);
+
+ Smeltery.addAlloyMixing(new FluidStack(moltenAeonsteel, 144), new FluidStack[] { new FluidStack(TinkerSmeltery.moltenAlumiteFluid, 144), new FluidStack(TinkerSmeltery.moltenCobaltFluid, 144) });
+ //Queen's Gold
+ TConstructClientRegistry.addMaterialRenderMapping(202, "tinker", "queensgold", true);
+ TConstructRegistry.addToolMaterial(202, "QueensGold", 3, 100, 500, 2, 1.0F, 0, 0f, GOLD.toString(), 0xeaee57);
+ TinkerTools.registerPatternMaterial("QueensGoldIngot", 2, "QueensGold");
+ TConstructRegistry.addDefaultToolPartMaterial(202);
+
+ Smeltery.addMelting(new ItemStack(item_QueensGoldIngot, 1, 0), block_QueensGoldBlock, 0, 500, new FluidStack(moltenQueensGold, TConstruct.ingotLiquidValue));
+ Smeltery.addMelting(block_QueensGoldBlock, 0, 500, new FluidStack(moltenQueensGold, TConstruct.ingotLiquidValue*9));
+
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(item_QueensGoldIngot, 1, 0), new FluidStack(moltenQueensGold, TConstruct.ingotLiquidValue), TConstructRegistry.getItemStack("ingotCast"), false, 50);
+
+ TConstructRegistry.instance.getBasinCasting().addCastingRecipe(new ItemStack(block_QueensGoldBlock, 1, 0), new FluidStack(moltenQueensGold, TConstruct.ingotLiquidValue*9), 100);
+
+ castMolten(moltenQueensGold, 202);
+
+ PatternBuilder.instance.registerFullMaterial(new ItemStack(item_QueensGoldIngot, 1, 0), 2, "QueensGold", new ItemStack(TinkerTools.toolShard, 1, 202), new ItemStack(TinkerTools.toolRod, 1, 202), 202);
+
+ Smeltery.addAlloyMixing(new FluidStack(moltenQueensGold, 144*8), new FluidStack[] { new FluidStack(TinkerSmeltery.moltenGoldFluid, 144*8), new FluidStack(TinkerSmeltery.moltenEmeraldFluid, 80) });
+
+ // Tool Materials: id, name, harvestlevel, durability, speed, damage, handlemodifier, reinforced, shoddy, style color, primary color for block use
+ //Dogbearium
+ TConstructClientRegistry.addMaterialRenderMapping(201, "tinker", "Dogbearium", true);
+ TConstructRegistry.addToolMaterial(203, "Dogbearium", 4, 600, 800, 2, 1.6F, 0, -2f, DARK_RED.toString(), 0x754200);
+ TinkerTools.registerPatternMaterial("DogbeariumIngot", 2, "Dogbearium");
+ TConstructRegistry.addDefaultToolPartMaterial(203);
+
+ Smeltery.addMelting(new ItemStack(item_DogbeariumIngot, 1, 0), block_DogbeariumBlock, 0, 500, new FluidStack(moltenDogbearium, TConstruct.ingotLiquidValue));
+ Smeltery.addMelting(block_DogbeariumBlock, 0, 500, new FluidStack(moltenDogbearium, TConstruct.ingotLiquidValue*9));
+
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(item_DogbeariumIngot, 1, 0), new FluidStack(moltenDogbearium, TConstruct.ingotLiquidValue), TConstructRegistry.getItemStack("ingotCast"), false, 50);
+
+ TConstructRegistry.instance.getBasinCasting().addCastingRecipe(new ItemStack(block_DogbeariumBlock, 1, 0), new FluidStack(moltenDogbearium, TConstruct.ingotLiquidValue*9), 100);
+
+ castMolten(moltenDogbearium, 203);
+
+ PatternBuilder.instance.registerFullMaterial(new ItemStack(item_DogbeariumIngot, 1, 0), 2, "Dogbearium", new ItemStack(TinkerTools.toolShard, 1, 203), new ItemStack(TinkerTools.toolRod, 1, 203), 203);
+
+ Smeltery.addAlloyMixing(new FluidStack(moltenDogbearium, 144*2), new FluidStack[] { new FluidStack(TinkerSmeltery.moltenArditeFluid, 144), new FluidStack(TinkerSmeltery.bloodFluid, 160), new FluidStack(TinkerSmeltery.moltenEnderFluid,250) });
+
+ //Shields
+ TConstructRegistry.addToolRecipe(tool_roundShield, TinkerTools.largePlate, TinkerTools.toolRod, TinkerTools.frypanHead);
+
+ TConstructRegistry.addToolRecipe(tool_heaterShield, TinkerTools.largePlate, TinkerTools.toughRod, TinkerTools.largePlate, TinkerTools.toughBinding);
+}
+
+@EventHandler
+public void postInit(FMLPostInitializationEvent e)
+{
+ TConstructClientRegistry.toolButtons.add(TConstructClientRegistry.toolButtons.size(),
+ new ToolGuiElement(1, 0, 0, new int[] { 9, 0, 4, 0 }, new int[] { 2, 3, 2, 0 }, "Round Shield", "A simple shield with average durability and average defense.", "tinkersdefense", "textures/gui/icons.png"));
+ TConstructClientRegistry.tierTwoButtons.add(TConstructClientRegistry.tierTwoButtons.size(),
+ new ToolGuiElement(5, 0, 0, new int[] { 9, 8, 9, 9 }, new int[] { 2, 3, 2, 3 }, "Heater Shield", "An advanced shield with high durability and high defense.", "tinkersdefense", "textures/gui/icons.png"));
+}
+
+public void castMolten(Fluid fluid, int ID)
+{
+ //.addCastingRecipe(output, fluid, cast, hardeningDelay)
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.toolRod, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("toolRodCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.pickaxeHead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("pickaxeHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.shovelHead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("shovelHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.hatchetHead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("hatchetHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.swordBlade, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("swordBladeCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.fullGuard, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("fullGuardCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.wideGuard, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("wideGuardCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.crossbar, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("crossbarCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.binding, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("bindingCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.handGuard, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("handGuardCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.frypanHead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("frypanHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.signHead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("signHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.knifeBlade, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("knifeBladeCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.chiselHead, 1, ID),new FluidStack(fluid, (int) (144*0.5D)), TConstructRegistry.getItemStack("chiselHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.toughRod, 1, ID),new FluidStack(fluid, (int) (144*3.0D)), TConstructRegistry.getItemStack("toughRodCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.toughBinding, 1, ID),new FluidStack(fluid, (int) (144*3.0D)), TConstructRegistry.getItemStack("toughBindingCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.largePlate, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("largePlateCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.broadAxeHead, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("broadAxeHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.scytheBlade, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("scytheHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.excavatorHead, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("excavatorHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.largeSwordBlade, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("largeBladeCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.hammerHead, 1, ID),new FluidStack(fluid, (int) (144*8.0D)), TConstructRegistry.getItemStack("hammerHeadCast"),50);
+ TConstructRegistry.instance.getTableCasting().addCastingRecipe(new ItemStack(TinkerTools.arrowhead, 1, ID),new FluidStack(fluid, (int) (144*1.0D)), TConstructRegistry.getItemStack("arrowheadCast"),50);
+
+
+}
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/com/moltenAeonsteelFluid.java b/src/main/java/gmail/Lance5057/com/moltenAeonsteelFluid.java
new file mode 100644
index 0000000..b18f981
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/moltenAeonsteelFluid.java
@@ -0,0 +1,59 @@
+package gmail.Lance5057.com;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import java.util.Locale;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.fluids.BlockFluidClassic;
+import net.minecraftforge.fluids.Fluid;
+
+public class moltenAeonsteelFluid
+ extends BlockFluidClassic
+{
+ private IIcon stillIcon;
+ private IIcon flowingIcon;
+ private String stillIconTexture = "molten_Aeonsteel";
+ private String flowIconTexture = "molten_Aeonsteel_flow";
+
+ public moltenAeonsteelFluid(Fluid fluid)
+ {
+ super(fluid, Material.lava);
+ setLightLevel(100.0F);
+ setHardness(1.0F);
+ setBlockName("MoltenAeonSteel");
+
+ this.stillIconTexture = ("tinkersdefense:" + stillIconTexture);
+ this.flowIconTexture = ("tinkersdefense:" + flowIconTexture);
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void func_149651_a(IIconRegister icon)
+ {
+ this.stillIcon = icon.registerIcon(this.stillIconTexture);
+ this.flowingIcon = icon.registerIcon(this.flowIconTexture);
+
+ getFluid().setIcons(this.stillIcon, this.flowingIcon);
+ }
+
+ public IIcon getStillIcon()
+ {
+ return this.stillIcon;
+ }
+
+ public IIcon getFlowingIcon()
+ {
+ return this.flowingIcon;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public IIcon func_149691_a(int side, int meta)
+ {
+ if (side <= 1) {
+ return this.stillIcon;
+ }
+ return this.flowingIcon;
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/com/moltenDogbeariumFluid.java b/src/main/java/gmail/Lance5057/com/moltenDogbeariumFluid.java
new file mode 100644
index 0000000..b9d91af
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/moltenDogbeariumFluid.java
@@ -0,0 +1,59 @@
+package gmail.Lance5057.com;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import java.util.Locale;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.fluids.BlockFluidClassic;
+import net.minecraftforge.fluids.Fluid;
+
+public class moltenDogbeariumFluid
+ extends BlockFluidClassic
+{
+ private IIcon stillIcon;
+ private IIcon flowingIcon;
+ private String stillIconTexture = "molten_Dogbearium";
+ private String flowIconTexture = "molten_Dogbearium_flow";
+
+ public moltenDogbeariumFluid(Fluid fluid)
+ {
+ super(fluid, Material.lava);
+ setLightLevel(100.0F);
+ setHardness(1.0F);
+ setBlockName("MoltenDogbearium");
+
+ this.stillIconTexture = ("tinkersdefense:" + stillIconTexture);
+ this.flowIconTexture = ("tinkersdefense:" + flowIconTexture);
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void func_149651_a(IIconRegister icon)
+ {
+ this.stillIcon = icon.registerIcon(this.stillIconTexture);
+ this.flowingIcon = icon.registerIcon(this.flowIconTexture);
+
+ getFluid().setIcons(this.stillIcon, this.flowingIcon);
+ }
+
+ public IIcon getStillIcon()
+ {
+ return this.stillIcon;
+ }
+
+ public IIcon getFlowingIcon()
+ {
+ return this.flowingIcon;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public IIcon func_149691_a(int side, int meta)
+ {
+ if (side <= 1) {
+ return this.stillIcon;
+ }
+ return this.flowingIcon;
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/com/moltenQueensGoldFluid.java b/src/main/java/gmail/Lance5057/com/moltenQueensGoldFluid.java
new file mode 100644
index 0000000..dc55f19
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/com/moltenQueensGoldFluid.java
@@ -0,0 +1,59 @@
+package gmail.Lance5057.com;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import java.util.Locale;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.fluids.BlockFluidClassic;
+import net.minecraftforge.fluids.Fluid;
+
+public class moltenQueensGoldFluid
+ extends BlockFluidClassic
+{
+ private IIcon stillIcon;
+ private IIcon flowingIcon;
+ private String stillIconTexture = "molten_QueensGold";
+ private String flowIconTexture = "molten_QueensGold_flow";
+
+ public moltenQueensGoldFluid(Fluid fluid)
+ {
+ super(fluid, Material.lava);
+ setLightLevel(100.0F);
+ setHardness(1.0F);
+ setBlockName("MoltenQueensGold");
+
+ this.stillIconTexture = ("tinkersdefense:" + stillIconTexture);
+ this.flowIconTexture = ("tinkersdefense:" + flowIconTexture);
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void func_149651_a(IIconRegister icon)
+ {
+ this.stillIcon = icon.registerIcon(this.stillIconTexture);
+ this.flowingIcon = icon.registerIcon(this.flowIconTexture);
+
+ getFluid().setIcons(this.stillIcon, this.flowingIcon);
+ }
+
+ public IIcon getStillIcon()
+ {
+ return this.stillIcon;
+ }
+
+ public IIcon getFlowingIcon()
+ {
+ return this.flowingIcon;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public IIcon func_149691_a(int side, int meta)
+ {
+ if (side <= 1) {
+ return this.stillIcon;
+ }
+ return this.flowingIcon;
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/items/AeonSteelIngot.java b/src/main/java/gmail/Lance5057/items/AeonSteelIngot.java
new file mode 100644
index 0000000..793507a
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/AeonSteelIngot.java
@@ -0,0 +1,12 @@
+package gmail.Lance5057.items;
+
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+
+public class AeonSteelIngot extends Item
+{
+ public AeonSteelIngot()
+ {
+
+ }
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/items/DogbeariumIngot.java b/src/main/java/gmail/Lance5057/items/DogbeariumIngot.java
new file mode 100644
index 0000000..539dd08
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/DogbeariumIngot.java
@@ -0,0 +1,11 @@
+package gmail.Lance5057.items;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+
+public class DogbeariumIngot extends Item
+{
+ public DogbeariumIngot()
+ {
+
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java b/src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java
new file mode 100644
index 0000000..c205c98
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/ModelTinkerArmor.java
@@ -0,0 +1,109 @@
+// Date: 1/19/2015 11:08:25 PM
+// Template version 1.1
+// Java generated by Techne
+// Keep in mind that you still need to fill in some blanks
+// - ZeuX
+
+package gmail.Lance5057.items;
+
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.client.model.ModelRenderer;
+import net.minecraft.entity.Entity;
+
+public class ModelTinkerArmor extends ModelBiped
+{
+ //fields
+ ModelRenderer BackPlate;
+ ModelRenderer BreastPlate;
+ ModelRenderer Plackart;
+ ModelRenderer PauldronL;
+ ModelRenderer ArmL;
+ ModelRenderer PauldronR;
+ ModelRenderer ArmR;
+
+ public ModelTinkerArmor(float f)
+ {
+ super(f, 0, 64,64);
+ textureWidth = 64;
+ textureHeight = 64;
+
+ BackPlate = new ModelRenderer(this, 0, 56);
+ BackPlate.addBox(-4F, 0F, 1F, 8, 5, 3);
+ BackPlate.setRotationPoint(0F, 0F, 0F);
+ BackPlate.setTextureSize(64, 32);
+ BackPlate.mirror = true;
+ setRotation(BackPlate, -0.0872665F, 0F, 0F);
+ this.bipedBody.addChild(BackPlate);
+
+ BreastPlate = new ModelRenderer(this, 0, 32);
+ BreastPlate.addBox(-4F, -1F, -5F, 8, 6, 4);
+ BreastPlate.setRotationPoint(0F, 0F, 0F);
+ BreastPlate.setTextureSize(64, 32);
+ BreastPlate.mirror = true;
+ setRotation(BreastPlate, 0.4363323F, 0F, 0F);
+ this.bipedBody.addChild(BreastPlate);
+
+ Plackart = new ModelRenderer(this, 0, 42);
+ Plackart.addBox(-4F, 5F, -3F, 8, 7, 6);
+ Plackart.setRotationPoint(0F, 0F, 0F);
+ Plackart.setTextureSize(64, 32);
+ Plackart.mirror = true;
+ setRotation(Plackart, 0F, 0F, 0F);
+ this.bipedBody.addChild(Plackart);
+
+ PauldronL = new ModelRenderer(this, 28, 32);
+ PauldronL.addBox(1F, -2F, -3.5F, 5, 5, 7);
+ PauldronL.setRotationPoint(0F, 0F, 0F);
+ PauldronL.setTextureSize(64, 32);
+ PauldronL.mirror = true;
+ setRotation(PauldronL, 0F, 0F, -0.7853982F);
+ this.bipedLeftArm.addChild(PauldronL);
+
+ ArmL = new ModelRenderer(this, 28, 44);
+ ArmL.addBox(-1F, -2F, -3F, 5, 10, 6);
+ ArmL.setRotationPoint(0F, 0F, 0F);
+ ArmL.setTextureSize(64, 32);
+ ArmL.mirror = true;
+ setRotation(ArmL, 0F, 0F, 0F);
+ this.bipedLeftArm.addChild(ArmL);
+
+ PauldronR = new ModelRenderer(this, 28, 32);
+ PauldronR.mirror = true;
+ PauldronR.addBox(-6F, -2F, -3.5F, 5, 5, 7);
+ PauldronR.setRotationPoint(0F, 0F, 0F);
+ PauldronR.setTextureSize(64, 32);
+ PauldronR.mirror = true;
+ setRotation(PauldronR, 0F, 0F, 0.7853982F);
+ PauldronR.mirror = false;
+ this.bipedRightArm.addChild(PauldronR);
+
+ ArmR = new ModelRenderer(this, 28, 44);
+ ArmR.mirror = true;
+ ArmR.addBox(-4F, -2F, -3F, 5, 10, 6);
+ ArmR.setRotationPoint(0F, 0F, 0F);
+ ArmR.setTextureSize(64, 32);
+ ArmR.mirror = true;
+ setRotation(ArmR, 0F, 0F, 0F);
+ ArmR.mirror = false;
+ this.bipedRightArm.addChild(ArmR);
+ }
+
+ public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
+ {
+ super.render(entity, f, f1, f2, f3, f4, f5);
+ setRotationAngles(f, f1, f2, f3, f4, f5, entity);
+ }
+
+ private void setRotation(ModelRenderer model, float x, float y, float z)
+ {
+ model.rotateAngleX = x;
+ model.rotateAngleY = y;
+ model.rotateAngleZ = z;
+ }
+
+ public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
+ {
+ super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
+ }
+
+}
diff --git a/src/main/java/gmail/Lance5057/items/QueensGoldIngot.java b/src/main/java/gmail/Lance5057/items/QueensGoldIngot.java
new file mode 100644
index 0000000..74c2708
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/QueensGoldIngot.java
@@ -0,0 +1,11 @@
+package gmail.Lance5057.items;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+
+public class QueensGoldIngot extends Item
+{
+ public QueensGoldIngot()
+ {
+
+ }
+}
diff --git a/src/main/java/gmail/Lance5057/items/TinkerArmor.java b/src/main/java/gmail/Lance5057/items/TinkerArmor.java
new file mode 100644
index 0000000..dd632d4
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/TinkerArmor.java
@@ -0,0 +1,76 @@
+package gmail.Lance5057.items;
+
+import gmail.Lance5057.com.mod_TinkersDefense;
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemArmor;
+import net.minecraft.item.ItemStack;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+public class TinkerArmor extends ItemArmor
+{
+ public TinkerArmor(ArmorMaterial par2EnumArmorMaterial, int par3, int par4)
+ {
+ super(par2EnumArmorMaterial, par3, par4);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister par1IconRegister)
+ {
+ String itemName = "tinkersdefense:textures/armor/TinkerArmor.png";
+ this.itemIcon = par1IconRegister.registerIcon(itemName);
+ }
+
+ @Override
+ public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type)
+ {
+ return "tinkersdefense:textures/armor/TinkerArmor.png";
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot)
+ {
+ ModelBiped armorModel = null;
+ if(itemStack != null)
+ {
+ if(itemStack.getItem() instanceof TinkerArmor)
+ {
+ int type = ((ItemArmor)itemStack.getItem()).armorType;
+ if(type == 1 || type == 3)
+ {
+ armorModel = mod_TinkersDefense.proxy.getArmorModel(0);
+ }
+ else
+ {
+ armorModel = mod_TinkersDefense.proxy.getArmorModel(1);
+ }
+
+ }
+ if(armorModel != null)
+ {
+ armorModel.bipedHead.showModel = armorSlot == 0;
+ armorModel.bipedHeadwear.showModel = armorSlot == 0;
+ armorModel.bipedBody.showModel = armorSlot == 1 || armorSlot == 2; armorModel.bipedRightArm.showModel = armorSlot == 1;
+ armorModel.bipedLeftArm.showModel = armorSlot == 1;
+ armorModel.bipedRightLeg.showModel = armorSlot == 2 || armorSlot == 3;
+ armorModel.bipedLeftLeg.showModel = armorSlot == 2 || armorSlot == 3;
+ armorModel.isSneak = entityLiving.isSneaking();
+ armorModel.isRiding = entityLiving.isRiding();
+ armorModel.isChild = entityLiving.isChild();
+ armorModel.heldItemRight = entityLiving.getHeldItem() != null ? 1 :0;
+
+ if(entityLiving instanceof EntityPlayer)
+ {
+ armorModel.aimedBow =((EntityPlayer)entityLiving).getItemInUseDuration() > 2;
+ }
+ return armorModel;
+ }
+ }
+ return armorModel;
+ }
+
+
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/items/TinkerHelm.tcn b/src/main/java/gmail/Lance5057/items/TinkerHelm.tcn
new file mode 100644
index 0000000..4344f18
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/items/TinkerHelm.tcn
Binary files differ
diff --git a/src/main/java/gmail/Lance5057/proxy/ClientProxy.java b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java
new file mode 100644
index 0000000..db933ea
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/proxy/ClientProxy.java
@@ -0,0 +1,36 @@
+package gmail.Lance5057.proxy;
+
+import gmail.Lance5057.blocks.Renderer_CrestMount;
+import gmail.Lance5057.blocks.TileEntity_CrestMount;
+import gmail.Lance5057.proxy.CommonProxy;
+import gmail.Lance5057.items.ModelTinkerArmor;
+import gmail.Lance5057.items.TinkerArmor;
+import net.minecraft.client.model.ModelBiped;
+import cpw.mods.fml.client.registry.ClientRegistry;
+
+
+public class ClientProxy extends CommonProxy {
+ private static final ModelTinkerArmor tutChest = new ModelTinkerArmor(1.0f);
+
+ @Override
+ public void registerRenderers() {
+ // This is for rendering entities and so forth later on
+ ClientRegistry.bindTileEntitySpecialRenderer(TileEntity_CrestMount.class, new Renderer_CrestMount());
+ }
+
+ public void registerTileEntitySpecialRenderer()
+ {
+
+ }
+ @Override
+ public ModelBiped getArmorModel(int id)
+ {
+ switch (id)
+ {
+ case 0: return tutChest;
+ default: break;
+ }
+ return tutChest; //default, if whenever you should have passed on a wrong id
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/gmail/Lance5057/proxy/CommonProxy.java b/src/main/java/gmail/Lance5057/proxy/CommonProxy.java
new file mode 100644
index 0000000..164bf21
--- /dev/null
+++ b/src/main/java/gmail/Lance5057/proxy/CommonProxy.java
@@ -0,0 +1,21 @@
+package gmail.Lance5057.proxy;
+
+import net.minecraft.client.model.ModelBiped;
+
+public class CommonProxy {
+
+ // Client stuff
+ public void registerRenderers() {
+ // Nothing here as the server doesn't render graphics or entities!
+ }
+
+ public void registerTileEntitySpecialRenderer()
+ {
+
+ }
+
+ public ModelBiped getArmorModel(int id)
+ {
+ return null;
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/assets/tinker/lang/en_US.lang b/src/main/resources/assets/tinker/lang/en_US.lang
new file mode 100644
index 0000000..2dff8a7
--- /dev/null
+++ b/src/main/resources/assets/tinker/lang/en_US.lang
@@ -0,0 +1,3 @@
+itemGroup.tabName=Tinkers' Defense
+item.InfiTool.roundshield.name=Round Shield
+tool.roundshield = Round Shield \ No newline at end of file
diff --git a/src/main/resources/assets/tinker/textures/items/AeonSteelIngot.png b/src/main/resources/assets/tinker/textures/items/AeonSteelIngot.png
new file mode 100644
index 0000000..950ef67
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/AeonSteelIngot.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/QueensGoldIngot.png b/src/main/resources/assets/tinker/textures/items/QueensGoldIngot.png
new file mode 100644
index 0000000..ccd3054
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/QueensGoldIngot.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/broadsword/queensgold_broadsword_accessory.png b/src/main/resources/assets/tinker/textures/items/broadsword/queensgold_broadsword_accessory.png
new file mode 100644
index 0000000..142e3a6
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/broadsword/queensgold_broadsword_accessory.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/_shield_binding.png b/src/main/resources/assets/tinker/textures/items/heatershield/_shield_binding.png
new file mode 100644
index 0000000..97438b8
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/_shield_binding.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/_shield_edge.png b/src/main/resources/assets/tinker/textures/items/heatershield/_shield_edge.png
new file mode 100644
index 0000000..49f633b
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/_shield_edge.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/_shield_face.png b/src/main/resources/assets/tinker/textures/items/heatershield/_shield_face.png
new file mode 100644
index 0000000..e002312
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/_shield_face.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/_shield_face_broken.png b/src/main/resources/assets/tinker/textures/items/heatershield/_shield_face_broken.png
new file mode 100644
index 0000000..7e24728
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/_shield_face_broken.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/_shield_face_other.png b/src/main/resources/assets/tinker/textures/items/heatershield/_shield_face_other.png
new file mode 100644
index 0000000..aa2c757
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/_shield_face_other.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/beheading_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/beheading_shield_effect.png
new file mode 100644
index 0000000..e75b706
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/beheading_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/blaze_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/blaze_shield_effect.png
new file mode 100644
index 0000000..8941f8a
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/blaze_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/diamond_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/diamond_shield_effect.png
new file mode 100644
index 0000000..bbd6bf1
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/diamond_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/emerald_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/emerald_shield_effect.png
new file mode 100644
index 0000000..d62a5be
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/emerald_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/flux_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/flux_shield_effect.png
new file mode 100644
index 0000000..8547016
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/flux_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/lapis_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/lapis_shield_effect.png
new file mode 100644
index 0000000..7bce7eb
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/lapis_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/lava_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/lava_shield_effect.png
new file mode 100644
index 0000000..5bf9183
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/lava_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/moss_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/moss_shield_effect.png
new file mode 100644
index 0000000..ba30b4c
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/moss_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/necrotic_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/necrotic_shield_effect.png
new file mode 100644
index 0000000..bcec218
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/necrotic_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/piston_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/piston_shield_effect.png
new file mode 100644
index 0000000..8520d54
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/piston_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/quartz_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/quartz_shield_effect.png
new file mode 100644
index 0000000..10087c2
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/quartz_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/redstone_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/redstone_shield_effect.png
new file mode 100644
index 0000000..34a53d1
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/redstone_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/reinforced_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/reinforced_shield_effect.png
new file mode 100644
index 0000000..9efbbe0
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/reinforced_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/silk_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/silk_shield_effect.png
new file mode 100644
index 0000000..1e8bc7e
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/silk_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/smite_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/smite_shield_effect.png
new file mode 100644
index 0000000..62b34a2
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/smite_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/heatershield/spider_shield_effect.png b/src/main/resources/assets/tinker/textures/items/heatershield/spider_shield_effect.png
new file mode 100644
index 0000000..7c779f1
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/heatershield/spider_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/longsword/queensgold_longsword_accessory.png b/src/main/resources/assets/tinker/textures/items/longsword/queensgold_longsword_accessory.png
new file mode 100644
index 0000000..6a28d07
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/longsword/queensgold_longsword_accessory.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/rapier/queensgold_rapier_accessory.png b/src/main/resources/assets/tinker/textures/items/rapier/queensgold_rapier_accessory.png
new file mode 100644
index 0000000..db4073a
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/rapier/queensgold_rapier_accessory.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/_shield_boss.png b/src/main/resources/assets/tinker/textures/items/shield/_shield_boss.png
new file mode 100644
index 0000000..d9dc41b
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/_shield_boss.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/_shield_edge.png b/src/main/resources/assets/tinker/textures/items/shield/_shield_edge.png
new file mode 100644
index 0000000..9d39ddd
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/_shield_edge.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/_shield_face.png b/src/main/resources/assets/tinker/textures/items/shield/_shield_face.png
new file mode 100644
index 0000000..7a55c4f
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/_shield_face.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/_shield_face_broken.png b/src/main/resources/assets/tinker/textures/items/shield/_shield_face_broken.png
new file mode 100644
index 0000000..f506b2c
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/_shield_face_broken.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/beheading_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/beheading_shield_effect.png
new file mode 100644
index 0000000..5b58489
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/beheading_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/diamond_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/diamond_shield_effect.png
new file mode 100644
index 0000000..f6eba6d
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/diamond_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/emerald_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/emerald_shield_effect.png
new file mode 100644
index 0000000..5a71085
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/emerald_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/flux_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/flux_shield_effect.png
new file mode 100644
index 0000000..f2b5305
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/flux_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/lapis_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/lapis_shield_effect.png
new file mode 100644
index 0000000..7251eae
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/lapis_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/lava_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/lava_shield_effect.png
new file mode 100644
index 0000000..9b5afbc
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/lava_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/moss_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/moss_shield_effect.png
new file mode 100644
index 0000000..1641d23
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/moss_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/necrotic_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/necrotic_shield_effect.png
new file mode 100644
index 0000000..b255548
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/necrotic_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/piston_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/piston_shield_effect.png
new file mode 100644
index 0000000..bb64e1d
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/piston_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/quartz_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/quartz_shield_effect.png
new file mode 100644
index 0000000..b4c9981
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/quartz_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/redstone_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/redstone_shield_effect.png
new file mode 100644
index 0000000..b2bdc2c
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/redstone_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/reinforced_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/reinforced_shield_effect.png
new file mode 100644
index 0000000..973ee52
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/reinforced_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/silk_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/silk_shield_effect.png
new file mode 100644
index 0000000..70d542a
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/silk_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/smite_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/smite_shield_effect.png
new file mode 100644
index 0000000..e8d632c
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/smite_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/spider_shield_effect.png b/src/main/resources/assets/tinker/textures/items/shield/spider_shield_effect.png
new file mode 100644
index 0000000..55f0bdd
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/spider_shield_effect.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/steel_shield_boss.png b/src/main/resources/assets/tinker/textures/items/shield/steel_shield_boss.png
new file mode 100644
index 0000000..0b68181
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/steel_shield_boss.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/steel_shield_edge.png b/src/main/resources/assets/tinker/textures/items/shield/steel_shield_edge.png
new file mode 100644
index 0000000..79bdcaa
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/steel_shield_edge.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/wood_shield_boss.png b/src/main/resources/assets/tinker/textures/items/shield/wood_shield_boss.png
new file mode 100644
index 0000000..acbd23d
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/wood_shield_boss.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/wood_shield_edge.png b/src/main/resources/assets/tinker/textures/items/shield/wood_shield_edge.png
new file mode 100644
index 0000000..6464b86
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/wood_shield_edge.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/wood_shield_face.png b/src/main/resources/assets/tinker/textures/items/shield/wood_shield_face.png
new file mode 100644
index 0000000..96ab1c9
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/wood_shield_face.png
Binary files differ
diff --git a/src/main/resources/assets/tinker/textures/items/shield/wood_shield_face_broken.png b/src/main/resources/assets/tinker/textures/items/shield/wood_shield_face_broken.png
new file mode 100644
index 0000000..188228a
--- /dev/null
+++ b/src/main/resources/assets/tinker/textures/items/shield/wood_shield_face_broken.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/lang/en_US.lang b/src/main/resources/assets/tinkersdefense/lang/en_US.lang
new file mode 100644
index 0000000..1bddce3
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/lang/en_US.lang
@@ -0,0 +1,20 @@
+itemGroup.tabName=Tinkers' Defense
+item.AeonSteelIngot.name=Aeon Steel Ingot
+tile.AeonSteelBlock.name=Aeon Steel Block
+tile.MoltenAeonSteel.name=Molten Aeon Steel
+material.aeonsteel=Aeon Steel
+
+item.QueensGoldIngot.name=Queen's Gold Ingot
+tile.QueensGoldBlock.name=Queen's Gold Block
+tile.MoltenQueensGold.name=Molten Queen's Gold
+material.queensgold=Queen's Gold
+
+item.DogbeariumIngot.name=Dogbearium Ingot
+tile.DogbeariumBlock.name=Dogbearium Block
+tile.MoltenDogbearium.name=Molten Dogbearium
+material.dogbearium=Dogbearium
+material.dogbearium.ability=Serrated
+
+tool.roundshield=Round Shield
+tool.heatershield=Heater Shield
+
diff --git a/src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor.png b/src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor.png
new file mode 100644
index 0000000..e054750
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor.tcn b/src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor.tcn
new file mode 100644
index 0000000..f967b25
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor.tcn
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor2.png b/src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor2.png
new file mode 100644
index 0000000..706a34a
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/armor/TinkerArmor2.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/armor/TinkerHelm.png b/src/main/resources/assets/tinkersdefense/textures/armor/TinkerHelm.png
new file mode 100644
index 0000000..847df01
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/armor/TinkerHelm.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/AeonSteelBlock.png b/src/main/resources/assets/tinkersdefense/textures/blocks/AeonSteelBlock.png
new file mode 100644
index 0000000..c18030c
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/AeonSteelBlock.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/CrestMount.png b/src/main/resources/assets/tinkersdefense/textures/blocks/CrestMount.png
new file mode 100644
index 0000000..61d6936
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/CrestMount.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/DogbeariumBlock.png b/src/main/resources/assets/tinkersdefense/textures/blocks/DogbeariumBlock.png
new file mode 100644
index 0000000..462809c
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/DogbeariumBlock.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/QueensGoldBlock.png b/src/main/resources/assets/tinkersdefense/textures/blocks/QueensGoldBlock.png
new file mode 100644
index 0000000..8b091e2
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/QueensGoldBlock.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png
new file mode 100644
index 0000000..9fbe94b
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png.mcmeta b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png.mcmeta
new file mode 100644
index 0000000..0486765
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel.png.mcmeta
@@ -0,0 +1,45 @@
+{
+ "animation": {
+ "frametime": 2,
+ "frames": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 18,
+ 17,
+ 16,
+ 15,
+ 14,
+ 13,
+ 12,
+ 11,
+ 10,
+ 9,
+ 8,
+ 7,
+ 6,
+ 5,
+ 4,
+ 3,
+ 2,
+ 1
+ ]
+ }
+}
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png
new file mode 100644
index 0000000..8e3f30c
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png.mcmeta b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png.mcmeta
new file mode 100644
index 0000000..8e55e43
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Aeonsteel_flow.png.mcmeta
@@ -0,0 +1,5 @@
+{
+ "animation": {
+ "frametime": 3
+ }
+}
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png
new file mode 100644
index 0000000..e8fd8f2
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png.mcmeta b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png.mcmeta
new file mode 100644
index 0000000..0486765
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium.png.mcmeta
@@ -0,0 +1,45 @@
+{
+ "animation": {
+ "frametime": 2,
+ "frames": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 18,
+ 17,
+ 16,
+ 15,
+ 14,
+ 13,
+ 12,
+ 11,
+ 10,
+ 9,
+ 8,
+ 7,
+ 6,
+ 5,
+ 4,
+ 3,
+ 2,
+ 1
+ ]
+ }
+}
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png
new file mode 100644
index 0000000..b7d3593
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png.mcmeta b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png.mcmeta
new file mode 100644
index 0000000..8e55e43
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_Dogbearium_flow.png.mcmeta
@@ -0,0 +1,5 @@
+{
+ "animation": {
+ "frametime": 3
+ }
+}
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold.png b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold.png
new file mode 100644
index 0000000..934642d
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold.png.mcmeta b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold.png.mcmeta
new file mode 100644
index 0000000..0486765
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold.png.mcmeta
@@ -0,0 +1,45 @@
+{
+ "animation": {
+ "frametime": 2,
+ "frames": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 18,
+ 17,
+ 16,
+ 15,
+ 14,
+ 13,
+ 12,
+ 11,
+ 10,
+ 9,
+ 8,
+ 7,
+ 6,
+ 5,
+ 4,
+ 3,
+ 2,
+ 1
+ ]
+ }
+}
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png
new file mode 100644
index 0000000..4067d8e
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png.mcmeta b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png.mcmeta
new file mode 100644
index 0000000..8e55e43
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/blocks/molten_QueensGold_flow.png.mcmeta
@@ -0,0 +1,5 @@
+{
+ "animation": {
+ "frametime": 3
+ }
+}
diff --git a/src/main/resources/assets/tinkersdefense/textures/gui/icons.png b/src/main/resources/assets/tinkersdefense/textures/gui/icons.png
new file mode 100644
index 0000000..28b7662
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/gui/icons.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/items/AeonSteelIngot.png b/src/main/resources/assets/tinkersdefense/textures/items/AeonSteelIngot.png
new file mode 100644
index 0000000..950ef67
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/items/AeonSteelIngot.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/items/DogbeariumIngot.png b/src/main/resources/assets/tinkersdefense/textures/items/DogbeariumIngot.png
new file mode 100644
index 0000000..f24049a
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/items/DogbeariumIngot.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/items/QueensGoldIngot.png b/src/main/resources/assets/tinkersdefense/textures/items/QueensGoldIngot.png
new file mode 100644
index 0000000..ccd3054
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/items/QueensGoldIngot.png
Binary files differ
diff --git a/src/main/resources/assets/tinkersdefense/textures/items/longsword/queensgold_longsword_accessory.png b/src/main/resources/assets/tinkersdefense/textures/items/longsword/queensgold_longsword_accessory.png
new file mode 100644
index 0000000..38cf81c
--- /dev/null
+++ b/src/main/resources/assets/tinkersdefense/textures/items/longsword/queensgold_longsword_accessory.png
Binary files differ
diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info
new file mode 100644
index 0000000..f989c30
--- /dev/null
+++ b/src/main/resources/mcmod.info
@@ -0,0 +1,14 @@
+[
+{
+"modid": "tinkersdefense",
+"name": "Tinkers' Defense",
+"description": "An inbetween mod for Tinkers Construct and Mine and Blade 2 that adds new shields made using tinker parts",
+"version": "1.0",
+"mcversion": "1.7.10",
+"url": "",
+"authorList": ["Sir Lance"],
+"requiredMods": [ "Forge", "TConstruct","battlegear2" ],
+"dependencies": ["TConstruct","battlegear2"],
+"useDependencyInformation": "true"
+}
+] \ No newline at end of file